/RDA5807_radio_ESP32C3_with_weekly_Schedule_round_LCD

RDA5807_radio_ESP32C3_with_weekly_Schedule round LCD(CG9A01) version

Primary LanguageC++Apache License 2.0Apache-2.0

週間スケジュールが可能なRDA5807 FM DSPラジオ(丸形LCD利用バージョン)

表示器に丸形カラーLCD利用を使用し、週間スケジュールが可能なFMラジオを製作したので紹介する。
丸形カラーLCDは、1.28インチ、240x240、ドライバーはCG9A01である。
DSPラジオICはRDA5807FP、I2Cインターフェースによるコントローラ(MCU)はSeeed Studio XIAO ESP32C3である。
XIAO ESP32C3では、Clockの設定にNTPを利用し、内蔵のWebサーバー機能で、操作/週間スケジュールの設定を行っている。
開発はArduino IDE 1.8で行った。
丸形カラーLCD以外の基本的なことは、こちらを参照のこと。

概要
丸形カラーLCDは、SPIで制御するので、I2CとSPIを同時に利用することになる。この場合、XIAO ESP32C3は入出力ピンの数が限られるので、
操作はボタンスイッチではなく、WiFi経由で行なうことになる。
CG9A01をサポートするライブラリは"TFT_eSPI.h"を利用した。

TFT_eSPIは事前に、使用するドライバとMCUに対応するための変更が必要である。ライブラリをインストールした後、「..\Arduino\libraries\TFT_eSPI」の「User_Setup.h」を編集する。
編集後のファイルが「User_Setup.h.mod」である。

  1. 「Section 1. Call up the right driver file and any options for it」の個所に、ディスプレイ対応のドライバの定義があるので、「#define ILI9341_DRIVER」の行をコメント化し、「#define GC9A01_DRIVER」の行を「非」コメント化する。
  2. 「Section 2. Define the pins that are used to interface with the display here」の個所に、各MCUごとSPIに対するピンの定義があるのでそれを変更する。まず、ESP8266のピン定義をコメント化する。
    次に、XIAO_ESP32C3に対するピン定義を追加する。追加内容は、「User_Setup.h.mod」を参照のこと。

H/W構成
・Seeed Studio XIAO ESP32C3 - コントローラ
・I2C接続  RDA5807FP
・SPI接続  丸形カラーLCD表示装置(CG9A01)
・Xtal発振器(32768Hz)、コンデンサ類、オーディオジャック、配線類


左側が丸形カラーLCD、右側がXIAO ESP32CとRDA5807FPの基板。なお、BLK(バックライト制御)は接続していない。

接続
各コンポーネントの接続は以下の通り。

I2C XIAO
SCKD5
SDAD4

SPIXIAO
SDAGPI10(MOSI)
SCLGPIO8(SCK)
CSGPIO3
DCGPIO5
RESGPIO4

I2Cのアドレス

RDA5807FP0x10 or 0x11 ライブラリで既定

インストール

  1. コードを、ZIP形式でダウンロード
  2. 追加のライブラリを、ZIP形式でダウンロード、ライブラリマネージャからインストールする
  3. ArduinoIDEからxiao_esp32c3_cg9a01_rda5801_wifi_clock_radio.inoを開く
  4. 「検証・コンパイル」に成功したら、一旦、「名前を付けて保存」を行う

若干の解説
・コード中のWiFiのSSIDとPASSWORDは、利用している無線ルーターのものを指定する。
・また、stnFreq[]に受信する放送局の周波数を指定する。例えば80.4MHzの場合、8040と指定する。stnName[]には対応する放送局名を指定する。
・"Free_Fonts.h"はTFT_eSPIのサンプルよりコピーしたものである。フォントの実体はTFT_eSPIライブラリ内に存在する。
・外周を回る黄色の丸印は、秒針の替わりである。


注意事項
・利用の際は、自己責任でお楽しみください。

【追記】
PCB(ボード)の情報をextraフォルダに追加しました。
・配線図のR1からR4までは必須ではありません。無くても動作します。
・gerberデータは、PCBWAYに発注した時のものです。