ENCYCLOPEDIA VỀ ĐIỆN TỬ TRUYỀN THANH VÀ KỸ THUẬT ĐIỆN Máy nghe nhạc MP3 và Opus. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện / Âm thanh Bài viết này mô tả một trình phát di động tự chế dành cho các tệp nhạc có định dạng phổ biến từ thẻ nhớ microSD. Nó được lắp ráp trên bộ vi điều khiển STM32F407VGT6 trong vỏ của điện thoại di động NOKIA 1100. Sơ đồ người chơi được hiển thị trong Hình. 1. Nó tận dụng tối đa các linh kiện điện tử có sẵn trên bo mạch phát triển STM32F4DISCOVERY, bao gồm bộ vi điều khiển STM32F407VGT6 (DD1), bộ điều chỉnh điện áp tích hợp LD3985M25R (DA1) và LD3985M33R (DA3), CS43L22 (DD2), codec cũng như các bộ giải mã cần thiết thành phần thụ động. Từ điện thoại di động NOKIA 1100, ngoài vỏ và pin, còn có đầu nối để kết nối tai nghe XS3, mặt trước có màn hình LCD HG1, màng cho các nút SB1-SB17 được tạo thành bởi các miếng tiếp xúc đồng tâm trên bảng mạch in và một đầu nối để kết nối pin G1 đã được sử dụng. Ngoài ra, bo mạch đầu phát còn có ngăn chứa thẻ nhớ microSD TFC-WPCE-08 (XS1), nhóm các miếng tiếp xúc để kết nối bộ lập trình Xp1 và đầu nối miniUSB-B 5075BMR-05-SM (XS2).
Các cụm điốt VD1, VD4, VD5, VD6 được sử dụng để bảo vệ các mạch nối với đầu nối XS2 và XS3 khỏi hiện tượng phóng tĩnh điện. Các kết nối còn lại đều nằm bên trong ngăn chứa pin và không cần bảo vệ. Con chip (DA2) là bộ điều khiển sạc cho pin lithium-ion G1 có điện áp tối đa 4,2 V. Điện trở R9 làm giảm hiện tượng sụt áp trên con chip này trong quá trình sạc, khiến nó nóng lên. Điện trở R10 đặt dòng sạc tối đa Iphí.max theo công thức Izap.max = 1000/R10. Với điện trở R10 được chỉ định bằng kilo-ohms, giá trị dòng sạc được tính bằng milliamp. Nên sạc pin lithium-ion có dòng điện không quá 1C, trong đó C là dung lượng pin. Dung lượng pin BL-5C sử dụng vào khoảng 1000 mAh, dòng sạc tối đa cho phép của chip LTC4054ES5-4.2 là 800 mA. Vì quá trình sạc được thực hiện từ bus USB nên khả năng tải của nó (500 mA) cũng phải được tính đến. Do đó, giá trị khuyến nghị cho R10 là 2 kOhm. Ngoài ra, bằng cách đo điện áp trên R10, bạn có thể xác định giá trị hiện tại của dòng sạc pin bằng công thức Izar= 1000 UR10/R10 (dòng điện - tính bằng milliamp, điện áp - tính bằng volt, điện trở - tính bằng kilo-ohms). Khi đầu nối XS2 được kết nối với bus USB, bóng bán dẫn hiệu ứng trường VT1 sẽ ngắt kết nối pin G1 khỏi mạch cấp nguồn của đầu phát. Điện áp 5 V từ chân 1 của đầu nối XS2 mở bóng bán dẫn VT5, điện áp tại cổng của bóng bán dẫn VT3 trở nên âm so với nguồn của nó. Transistor VT3 mở ra, bật máy nghe nhạc. Khi không có điện áp ở chân 1 của đầu nối XS2, điện thế cổng của bóng bán dẫn VT3 gần bằng điện thế nguồn của nó và bóng bán dẫn đóng lại. Nhấn nút SB1 cũng mở bóng bán dẫn VT3, bộ vi điều khiển bắt đầu hoạt động và kiểm tra trạng thái của nút này sau mỗi 10 ms. Nếu nó được giữ trong hơn 2 giây, bộ vi điều khiển sẽ đặt mức điện áp cao ở đế của bóng bán dẫn VT2, mở nó và giữ cho bóng bán dẫn VT3 mở. Sau đó, đầu phát sẽ chuyển sang trạng thái hoạt động và nút có thể được nhả ra. Tắt đầu phát bằng cách nhấn và giữ lại nút SB1. Sau khi bật, bộ vi điều khiển khởi động màn hình LCD HG1 và thẻ nhớ microSD được lắp vào ngăn chứa XS1, kiểm tra sự hiện diện của tệp cấu hình player.ini trong thư mục gốc của thẻ (hỗ trợ các hệ thống tệp FAT12, FAT16, FAT32). Đây là một tệp ini thông thường, là một tập hợp các dòng khóa-giá trị. Nó lưu trữ thông tin về tệp âm thanh được chọn để phát lại tại thời điểm đầu phát bị tắt trước đó, vị trí của nó trong đó và âm lượng đã đặt. Chương trình cố gắng khôi phục trạng thái này. Trong trường hợp không thành công (ví dụ: nếu thẻ đã được thay thế), tệp âm thanh đầu tiên trên thẻ (có phần mở rộng tên .mp3 hoặc .opus) sẽ được tìm kiếm. Việc tìm kiếm bắt đầu từ thư mục gốc, các tệp được xem theo thứ tự liệt kê trong bảng phân bổ tệp có sẵn trên bản đồ. Trong khi phát lại, chức năng MainThread của bộ giải mã hiện tại được gọi định kỳ, khi cần, chức năng này sẽ thực hiện việc đọc từ thẻ (mỗi codec chịu trách nhiệm tự lưu vào bộ đệm vì định dạng vùng chứa cho các gói âm thanh đối với .opus và .mp3 là khác nhau) và giải mã. Nhu cầu thực hiện các thao tác này được xác định bởi mức độ đầy đủ của bộ đệm tuần hoàn AudioBuffer, từ đó bộ giải mã âm thanh sẽ đọc thông tin không đồng bộ. Khi quá trình giải mã tệp âm thanh hiện tại hoàn tất, tệp tiếp theo sẽ được tìm kiếm theo nguyên tắc được mô tả ở trên. Nếu quá trình truyền tải hệ thống tệp hoàn tất, quá trình phát lại sẽ dừng. Trình phát tương tác với người dùng bằng màn hình đồ họa LCD đơn sắc HG1 có độ phân giải 96x65 pixel và các nút SB 1 -SB 17. Phần mềm mô phỏng chế độ hiển thị văn bản được sử dụng với màn hình được chia thành 8 dòng cao 1 pixel. Thanh ngang XNUMX px còn lại ở cuối màn hình được sử dụng để hiển thị trực quan vị trí hiện tại trong tệp trong khi phát lại. Dòng đầu tiên từ trên xuống hiển thị (từ trái sang phải) điện áp pin, trạng thái đầu phát, âm lượng. Trạng thái được đặc trưng bởi các ký hiệu "0" - phát lại, "-" - tạm dừng, "<<" hoặc ">>" - tua đi hoặc lùi tương ứng trong tệp. Ký hiệu hình chữ nhật biểu thị lỗi giao tiếp giữa vi mạch DD1 và DD2 thông qua giao diện I2C. Dòng 2-6 hiển thị đường dẫn đầy đủ đến tệp âm thanh đang được phát. Dòng 8 hiển thị thời gian phát lại hiện tại ở bên trái và thời lượng của tệp âm thanh ở bên phải. Nút SB1 chuyển đổi chế độ phát lại và tạm dừng, nút SB3 tăng âm lượng và nút SB5 giảm âm lượng, nút SB4 bật và nút SB15 tắt khóa bàn phím. Khi bàn phím bị khóa, thông báo "Locked" hiển thị ở giữa dòng 7 của màn hình. Nhấn nút SB6 sẽ phát lại tập tin trước đó và nhấn nút SB8 sẽ phát lại tập tin tiếp theo. Nhấn và giữ các nút này trong hơn một giây sẽ đưa người chơi vào chế độ tua đi nhanh, lùi hoặc tiến tương ứng. Nhấn nút SB9 hoặc SB11 sẽ tải các tập tin đầu tiên và cuối cùng của thư mục hiện tại để phát lại. Đầu nối XS3 là ổ cắm có sẵn trong vỏ đã qua sử dụng để kết nối tai nghe microtelphone. Trên tai nghe có một ổ cắm cho phích cắm âm thanh tiêu chuẩn có đường kính 3,5 mm để kết nối tai nghe. Tai nghe còn có nút kết nối mạch BTN và GND khi nhấn và điện trở giữa các điểm tiếp xúc của nút nhả là khoảng một kilo-ohm. Trong đầu phát, đường dây BTN được kết nối với mạch 3,3 V thông qua điện trở R21, do đó, bằng cách đo điện áp trên đường dây này, bạn có thể đánh giá sự hiện diện của tai nghe được kết nối và trạng thái nút của nó. Chức năng của nút tai nghe tương tự như chức năng của nút phát SB1 - bạn có thể chuyển nó từ chế độ phát lại sang chế độ tạm dừng và ngược lại, cũng như tắt nó đi. Tuy nhiên, bạn không thể bật trình phát bằng cách sử dụng nó. Khi bàn phím bị khóa, nút tai nghe vẫn hoạt động. Đầu nối XS2 thay thế ống kính đèn pin LED trong điện thoại. Khi phát hiện mức logic cao ở đầu vào PA1 của bộ vi điều khiển được kết nối với chân 9 của đầu nối này, chương trình sẽ bắt đầu hiển thị dòng sạc pin tính bằng ampe ở góc trên bên phải của màn hình. Ngoài ra, sự kiện này sẽ tự động bật trình phát nếu nó bị tắt. Theo mặc định, đầu phát sẽ hoạt động ở chế độ phát lại bình thường, cho phép bạn nghe nhạc và sạc pin cùng lúc. Khi bạn nhấn nút SB13, chương trình sẽ lưu trạng thái của đầu phát trong tệp player.ini và định cấu hình mô-đun USB của bộ vi điều khiển để hoạt động ở chế độ MSC (Lớp lưu trữ lớn). Ở chế độ này, máy tính nhận dạng đầu phát được kết nối với đầu nối USB là thiết bị lưu trữ di động, nội dung của nó trùng khớp với nội dung được ghi trên thẻ nhớ microSD được lắp vào đầu phát. Trao đổi thông tin với máy tính chỉ diễn ra ở chế độ Tốc độ tối đa với băng thông không quá 12 Mbit/s. Màn hình vẫn hiển thị giá trị hiện tại của dòng sạc, ở dòng 3 - dòng chữ "Đĩa USB", ở dòng 4 và 5 - tốc độ đọc và ghi tương ứng. Bằng cách nhấn nút SB12, thiết bị sẽ trở về chế độ trình phát. Bản vẽ bảng mạch in của máy nghe nhạc được hiển thị trong Hình. 2. Kích thước và hình dạng của nó được chọn giống hệt với bảng mạch của điện thoại di động NOKIA 1100 trong trường hợp nó được đặt (Hình 3). Bảng phải được sản xuất bằng công nghệ có lỗ mạ kim loại, nếu không thì phải luồn các miếng dây thiếc vào và hàn hai bên vào tất cả các lỗ thông (có miếng tiếp xúc ở cả hai mặt của bảng). Sự sắp xếp các bộ phận trên bảng được thể hiện trong hình. Tỷ lệ 4 trong 2:1. Nó cũng cho thấy mặt nạ làm bằng vecni cách nhiệt chịu nhiệt, phải được sử dụng để bảo vệ dây dẫn in. Nếu không đeo mặt nạ thì cần phải cách ly ít nhất các khu vực mà dây dẫn tiếp cận các điểm tiếp xúc được in của các nút và khu vực dưới thân kim loại của ngăn chứa thẻ microSD XS1.
Các mã từ tệp walkgeek-v1.2-n1100-with-mp3.hex đính kèm với bài viết phải được nhập vào bộ nhớ của bộ vi điều khiển được cài đặt trên bo mạch. Mã nguồn của chương trình trình phát và tất cả các thành phần của nó được phân phối theo Giấy phép BSD Mới (và các mã tương thích khác), cho phép sử dụng nó trong các dự án thương mại khép kín. Ngoại lệ là thư viện Mp3dec, việc đưa thư viện này vào sản phẩm cuối cùng yêu cầu tiết lộ tất cả các mã nguồn. Dự án được cập nhật liên tục và các phiên bản cập nhật của nó được đăng trong [1]. Như đã đề cập, trình phát này cung cấp khả năng phát các tệp định dạng Opus. Đây là phần mềm codec [2] được phát hành gần đây ở phiên bản ổn định để nén âm thanh bị mất, được phát triển trong dự án Xiph.org, được biết đến với các giải pháp như Vorbis, FLAC (Free Lossless Audio Codec) và Speex (codec lời nói). Bạn cũng có thể gọi Ogg - một bộ chứa phương tiện phổ quát được sử dụng theo mặc định để đóng gói luồng nén trong các tệp Opus. Vì codec Opus còn khá mới nên không có nhiều triển khai nó trên các hệ thống có RAM thấp. Một trong số đó là Rockbox. Trong quá trình làm việc với codec, hóa ra thư viện Ogg tự động phân bổ bộ nhớ để lưu vào bộ đệm toàn bộ trang (kích thước tối đa theo lý thuyết là 65 KB, thực - khoảng 26 KB), cũng như để lưu vào bộ nhớ đệm của tất cả các gói trang ( khoảng 16 KB), dành cho máy, RAM 192 KB là nhiều. Hơn nữa, theo mặc định, thư viện phân bổ một vùng bộ nhớ nhỏ cho bộ đệm trang, mở rộng nó trong quá trình hoạt động và mỗi lần phân bổ bộ nhớ “có dự trữ”. Điều tương tự cũng xảy ra với bộ đệm dành cho các giá trị viền - thông tin về việc phân phối các gói trên trang. Do đó, nếu nhóm bộ nhớ động nhỏ, điều này sẽ sớm dẫn đến sự phân mảnh đáng kể và không có khả năng phân bổ thêm bộ nhớ với kích thước yêu cầu. Do những thay đổi được thực hiện đối với thư viện, bộ nhớ đệm được thực hiện ở cấp gói (kích thước tối đa của gói thông tin âm thanh nổi được truyền ở tốc độ 512 Kbps trong thực tế là 1276 byte). Kích thước bộ đệm tối đa cho các giá trị viền là 256 ô hai byte và chúng cũng có thể được tạo thành một byte. Do đó, tất cả các cấu trúc được liên kết với bộ chứa Ogg sau khi sửa đổi sẽ chiếm ít hơn 2 KB RAM. Một số giả định đã được đưa ra trong quá trình sửa đổi: các gói không thể vượt qua ranh giới trang, tổng kiểm tra trang không được kiểm tra (không tìm thấy cái nào trong số này trong bất kỳ tệp Opus nào). Làm việc với các tệp chứa nhiều hơn một luồng và với một số kênh khác hai kênh chưa được thử nghiệm. Tổng dung lượng bộ nhớ mà codec Opus tiêu thụ là 65088 byte, trong đó 3856 byte được chiếm bởi bộ đệm đầu ra. Kết quả của việc lập hồ sơ codec ở các tốc độ luồng thông tin khác nhau được thể hiện trong Bảng. 1. Bảng 1
Thuật ngữ “độ phức tạp” ở đây đề cập đến hiệu suất xử lý cần thiết để giải mã thành công. Nó được đánh giá bằng cách đơn giản là đếm, sử dụng bộ hẹn giờ phần cứng, sự khác biệt giữa thời điểm bắt đầu quy trình giải mã của từng khung hình và thời điểm thoát khỏi nó (với tính năng đa nhiệm ưu tiên bị vô hiệu hóa và các ngắt bị vô hiệu hóa). Thử nghiệm cho thấy codec MP3 yêu cầu ít nỗ lực tính toán hơn. Nhưng Opus hoàn toàn miễn phí bản quyền và chất lượng âm thanh khi sử dụng sẽ tốt hơn so với sử dụng MP3 ở cùng tốc độ bit. Có một phiên bản chương trình trình phát dành cho bảng phát triển STM32F4DISCOVERY. Các mã cần nhập vào bộ nhớ của bộ vi điều khiển được cài đặt trên đó nằm trong tệp walkgeek-v1. 1 -stm32f4discovery-with-mp3.hex (cũng được đính kèm trong bài viết). Trong trường hợp này, các tệp âm thanh được phát từ ổ USB FLASH được kết nối với đầu nối CN5 của bo mạch thông qua bộ chuyển đổi. Người chơi hoạt động như Chủ xe buýt USB. Trạng thái của nó được hiển thị bằng đèn LED màu cam, đỏ, xanh lam và xanh lục trên bảng. Màu đỏ biểu thị sự vắng mặt, màu xanh lục biểu thị sự hiện diện của ổ FLASH được kết nối, màu cam biểu thị tệp âm thanh đang tải, quá trình phát lại đã dừng hoặc lỗi chương trình, màu xanh lam nhấp nháy biểu thị chế độ phát lại. Hầu hết các nút được hiển thị trong sơ đồ trong Hình. 1, được kết nối với bảng gỡ lỗi theo bảng. 2 (tiếp điểm thứ hai của mỗi nút được kết nối với dây chung). Vai trò của nút SB8 được thực hiện bởi nút "Người dùng" trên bo mạch. Màn hình hiển thị của điện thoại NOKIA 1100 được kết nối với bảng gỡ lỗi theo bảng. 3. Bảng 2
Bảng 3
Chương trình dành cho người chơi Văn chương
Tác giả: O. Tsaregorodtsev Xem các bài viết khác razdela Âm thanh. Đọc và viết hữu ích bình luận về bài viết này. Tin tức khoa học công nghệ, điện tử mới nhất: Tiếng ồn giao thông làm chậm sự phát triển của gà con
06.05.2024 Loa không dây Samsung Music Frame HW-LS60D
06.05.2024 Một cách mới để kiểm soát và điều khiển tín hiệu quang
05.05.2024
Tin tức thú vị khác: ▪ Máy bay chống lại chim bồ câu ▪ Máy tính xách tay Acer Extensa EX2510 và EX2509 ▪ Điện thoại được sạc từ một tách cà phê nóng ▪ Lợi ích của việc ngủ trong giờ làm việc Nguồn cấp tin tức khoa học và công nghệ, điện tử mới
Tài liệu thú vị của Thư viện kỹ thuật miễn phí: ▪ phần của trang web Nguồn điện. Lựa chọn các bài viết ▪ bài viết của Jeremy Bentham. câu cách ngôn nổi tiếng ▪ bài viết Nhiệt độ thay đổi như thế nào khi ngâm mình trong lòng đất? đáp án chi tiết ▪ Bài báo sóng thần. Phòng thí nghiệm Khoa học Trẻ em ▪ bài viết Bộ nguồn với bộ ổn định PWM. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện
Để lại bình luận của bạn về bài viết này: Tất cả các ngôn ngữ của trang này Trang chủ | Thư viện | bài viết | Sơ đồ trang web | Đánh giá trang web www.diagram.com.ua |