プログラミング
TEA5767-Radio-Tuner
Tea5767-Radio-Tuner (github.com)
要約
ESP32ベースのFMラジオチューナープロジェクトについて説明しています。当初はArduino UNOとTEA5767モジュールでプロトタイプを作成しましたが、その後、ESP32、PAM8403アンプ、OLEDディスプレイ、ロータリーエンコーダーなどを搭載したカスタムPCB設計へと進化しました。開発過程で、ESP32のピン保護のための3.3V電源供給や、アンプへの大電流供給方法などの課題とその解決策が詳細に解説されています。
全文翻訳
TEA5767ベースのラジオチューナー
ESP32ベースのFMラジオで、TEA5767チューナー、KY-040ロータリーエンコーダー、PAM8403アンプ、0.96インチOLEDディスプレイを使用。カスタムPCB設計。
プロジェクトの経緯
2026年1月、TEA5767ラジオモジュールとArduino UNOを使用してFMラジオデバイスを構築しました。フェーズ2では、設計をシンプルかつ再現可能に保ちながら、さらに改良を加えたコンパクトなカスタム設計PCBボードを作成します。このリポジトリでは、PCB設計を進めるにつれて手順を文書化していきます(うまくいけば、このプロジェクトを完成させられるでしょう)。プロトタイプのArduino回路の主な機能は、手動およびプリセットFMチューニング、16x2 LCDへの現在の周波数表示、有線ヘッドフォン経由でのオーディオ出力です。TEA5767モジュールには内蔵スピーカーアンプがないため、スピーカーからの音声出力は使用できませんでした。そのため、モジュールに直接ハンダ付けする必要がありました。プロトタイプ回路の写真と回路図を、図1と図2に示します。図1 [Arduino UNOを使用したプロトタイプの写真]。図2 [プロトタイプの回路図]。プロトタイプのビデオデモンストレーションを見るには、https://youtu.be/HQ7OcgIyThs をフォローしてください。理論、コンポーネント選択、回路設計の詳細な内訳については、この[PDFファイル](Producing_an_FM_Radio_Tuner.pdf)をお読みください。
PCB設計プロジェクトへの進化
スキマティック
プロジェクトをさらに改善するために、ラジオデバイスを改良しながら、これを最初のPCB設計にすることにしました。追加された改良点には、PAM8403アンプ(3ワット、4オームのスピーカー2台にオーディオを供給し、音量コントロールとしても機能)、Arduino UNOの代わりにESP32開発ボード(PCB上のスペースを節約するため)、同様の理由で16x2液晶ディスプレイを置き換えた0.96インチOLEDディスプレイ、そして手動周波数およびプリセット周波数コントロールの両方として機能するKY-040ロータリーエンコーダーが含まれます。
PCB設計に入る前に、ブレッドボード上で回路が機能することを確認するために時間をかけました。このプロセス中に、いくつかの重要なことに気づきました。TEA5767モジュールは5Vで電源供給されるように設計されていますが、ESP32モジュールのデータピンを保護するために3.3Vで電源供給できる(そしてすべきである)ということです。マイクロコントローラーのメーカーであるNulllabは、I/Oピンで3.6Vを超える電圧がかかるとチップが損傷する可能性があると述べており、TEA5767モジュールを5Vから電源供給し、SCLおよびSDAピンをマイクロコントローラーのデータピンに接続すると、それらは最大5Vまで駆動され、焼損のリスクにさらされます。ESP32-DevKit-32Eに関する詳細情報は、[esp32-devkit-32e](https://github.com/nulllaborg/esp32-devkit-32e)で見つけることができます。さらに、PAM8403はマイクロコントローラー以外の電源から供給する必要があるという点も注目に値します。私が使用したスピーカーは3ワットスピーカー(合計6ワット、スピーカーは2台)なので、アンプに5Vを供給すると仮定すると、得られる電流はI = P / V = 6W / 5V = 1.2Aです。マイクロコントローラーピンを流れるこの量の電流は、メーカーが指定する制限値(ピンあたり絶対最大定格:40mA)を大幅に超えています。したがって、アンプとマイクロコントローラーは、5V 1.5A容量の単一トランスに並列に配線されます。アンプは動作に大電流を必要とし、音楽を大音量で再生するにはさらに大電流が必要なため、音量を上げると回路の他の部分で電圧降下を避けるために、1Aを超える供給が可能なアダプターを使用することが推奨されます。これを念頭に置いて、KiCadのスキマティックエディターで回路図を描き始めました。スキマティックは図3で見ることができます。図3 [ESP32ベース回路のスキマティック]。(TEA5767モジュールからPAM8403アンプへのオーディオ信号を供給するために、ワイヤーエンドが付いた3.5mmジャックを使用し、それをアンプのL、G、Bピンに接続しました。これらの接続は、KiCadではデバイスのフットプリントよりも多くのピンを持つデバイスのスキマティックシンボルを許可しないため、スキマティックに反映されていません。TEA5767モジュールにはL、G、Rの指定ピンがないため、これは少し複雑になります。解決策の1つは、スキマティックエディターで3.5mmジャックを描画することですが、ジャックと2つのモジュール間の接続は実際にはPCBに触れることはないため、アンプのピンは接続せずにそのままにして、TEA5767は物理的なピンのみで描画することにしました)。フットプリント。
このプロジェクトでは、KiCadに標準で用意されていないフットプリントを持つモジュールが必要だったため、カスタムフットプリントの作成も学習しました。ESP32-DevKit-32E、TEA5767、PAM8403、KY-040、および0.96インチOLEDディスプレイのフットプリントは、Custom_Footprints.prettyフォルダに含まれています。カスタムフットプリントの写真は以下に添付します。図4 [ESP32-DevKit-32Eフットプリント]。図5 [TEA5767フットプリント]。図6 [PAM8403フットプリント]。(このプロジェクトで使用されているPAM8403は、音量コントロールとしても機能する「ノブ付き」バージョンのPAM8403アンプボードであることに注意してください。さらに、PAM8403およびKY-040モジュールのノブは、フットプリントの描画を容易にするため、およびボードがPCBに物理的に触れないため、対応するフットプリントには含まれていないことに注意してください)。図7 [KY-040フットプリント]。図8 [0.96インチOLEDディスプレイフットプリント]。
PCBレイアウト
カスタムフットプリントを作成した後、KiCadのPCBエディター内でPCB設計を作成しました。KiCadのPCBエディターからのPCBレイアウトの画像は、図9に示されています。図9 [ラジオモジュールのPCBレイアウト]。
このPCBプロジェクトでは、製造元としてJLC PCBを選択しました。PCBを注文する際、製造元の能力を理解することは、回路をショートさせないことと同じくらい重要です。そのため、ガーバーファイルを生成する際の各種設定がJLCの要件と一致しているかどうかに細心の注意を払いました。これはhttps://jlcpcb.com/capabilities/pcb-capabilities で確認できます。製造元に送信された最終ガーバーファイルは、gerbersフォルダにあります。シルクスクリーンテキストの「The first of many. Grateful for everyone who supported me.」は、個人的なものであり、ボードを再現するために不要であるため、製造ファイルから削除されていることに注意してください。このプロジェクトで使用したコードを確認するには、codeという名前のファイルを参照してください。PCBの画像は、図10と図11で見ることができます。図10 [PCBの前面]。図11 [PCBの背面]。デバイス自体の画像は、図12で見ることができます。図12 [TEA5767を使用したESP32ベースのラジオモジュールの画像]。PCBおよびラジオデバイスのビデオデモンストレーションを見るには、https://www.youtube.com/watch?v=WM1Qq82G7yY をフォローしてください。
最後に、初めてのPCB設計は貴重な学習経験となり、エレクトロニクスとハードウェア設計への関心を深めました。このリポジトリが、同様のプロジェクトを構築している方や、独自のPCB設計の旅を始めた方々にとって役立つことを願っています。このプロジェクト全体を通して、情報提供してくれたHTM WorkshopチームのYouTubeチュートリアルシリーズ、そして励ましとサポートをしてくれた家族とガールフレンドのAmyに感謝したいと思います。