Hobby Lab 趣味のモノ作り実験のサイトです。
部品 オペアンプ_関係 Si4735 マニュアル 0x80
1 0x80. GPIO_CTL 概要
1.1  概要
1.2  注意事項・実装ポイント
1.2.1 機能競合に最大級の注意
1.2.2 0x80 と 0x81 がセット
2 コマンドパラメータ
2.1 パラメータリスト
2.2 パラメータ
2.2.1 GPO3OEN
2.2.2 GPO2OEN
2.2.3 GPO1OEN
3 応答パラメータ
3.1 パラメータリスト
3.2 パラメータ
3.2.1 CTS
3.2.2 ERR
3.2.3 RDSINT
3.2.4 ASQINT
3.2.5 STCINT
4 その他
4.1 Google AI (Gemini) の見解
4.1.1 GPOピンを活用
4.1.2 賢い自動電源OFFほか
4.1.3 まとめ
4.2 Google AI (Gemini) の回答
4.2.1 モード」は何種類あるか
4.2.2 GPIOの設定と影響
4.2.3 GPOの読み出しコマンド
4.2.4 まとめ(実装時の黄金律)
4.3 GPIO_ピンのまとめ一覧

PrO:Si4735関係  Si4735について
 Si4735ラジオを作って見よう1
 v コマンド & パラメータ辞書 v
 0x01. POWER_UP
 0x10. GET_REV
 0x11. POWER_DOWN
 0x12. SET_PROPERTY
 0x13. GET_PROPERTY
 0x14. GET_INT_STATUS
 0x20. FM_TUNE_FREQ
 0x21. FM_SEEK_START
 0x22. FM_TUNE_STATUS
 0x23. FM_RSQ_STATUS
 0x24. FM_RDS_STATUS
 0x27. FM_AGC_STATUS
 0x28. FM_AGC_OVERRIDE
 0x40. AM_TUNE_FREQ
 0x41. AM_SEEK_START
 0x42. AM_TUNE_STATUS
 0x43. AM_RSQ_STATUS
 0x47. AM_AGC_STATUS
 0x48. AM_AGC_OVERRIDE
 0x80. GPIO_CTL
 0x81. GPIO_SET

Pr:OPAMP オペアンプ関係
PrO:送受信機  Si4735
PrO:オペアンプ  LM324
 LM358
Pr:Prプロセッサ関係
PrP:プロセッサ
動作比較
 STM32F動作比較
 CH32V203&STM32F 動作比較
 arduino動作比較
raspberrypi関係
 RaspberryPiハード
CH32V関係
 -CH32V開始
 -203K8T6(32Pin)開始
 -203C8T6(48P)開始
 -003J4M6(8Pin)開始
 -003F4P6(20Pin)開始
 -Moun River StudioⅡ
 プログラミング!
  203_GPIO関係
  203_TIME関係
  203_TIME Encoder
  203_I2C関係
  203_1-Wire関係
  003_DS18B20テスター
  USART(UART)関係
  DS18B20をModBus制御
 -マニュアル
 203データシート
 203取説
  MBA メモリとバス方式
  PWR 電力制御
  RCC リセット・拡張・クロック
  BKP バックアップレジスタ
  CRC 巡回冗長検査
  RTC リアルタイムクロック
  GPIO GPIOと代替機能
  DMA ダイレクトメモリアクセス制御
  ADTM 高度な制御タイマー
  GPTM 汎用タイマー
  BCTM 基本タイマー
  USART 同期非同期通信
arduino関係
 ESP12関係
 (a)ESP-8266D1mini注意
PrP:その他  RS485ドライバー
 CP2102 BRIDGE
 WCH-LinkEエミュレーター
Pr:Wire 電線関係
Pr:Resistance 抵抗
Pr:Capacitor コンデンサ
Pr:Coil コイル
Pr:PassiveElmt 受動素子
Pr:Diode ダイオード関係
Pr:Tr トランジスタ関係
2SC1815
 リレードライバー設計
 アンプ設計
 発振器
TLP152
 TLP152テスト
TLP2361
 TLP2361テスト
TLP5754
 TLP5754テスト
Pr:Source 電源関係  ツェナーダイオード
 TL431
 LM317
PrS:Downモジュール
 EGS002_IR2110S
 SKU011012
 ACDC02
 XH_M299
 LM2596
 Mini360_MP23070N
 DROK
 WH140
PrS:UPモジュール
 MT3608
PrS:充電モジュール
 TP4056
Pr:Sensor_AD_時計等
PrS:電圧、電流
ADS1115 16bit4CH I2C A/D
 Hardware
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226 I2C 直流電圧電流
 Hardware
 Arduino
 RaspberryPi_Python
WCS 電流ホール素子
 Hardware
PrS:温度、気圧、湿度、照度
BNE280 I2C 気圧,湿度,気温
 Hardware
 Arduino
 RaspberryPi_Python
BH1750 I2C 照度
 Hardware
 Arduino
 RaspberryPi_Python
DS18B20 1-Wire 温度計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:時間、日時
DS3231 I2C 時計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:表示器
MAR3953 320X480 3.95"
 概要と線や点を描く
 フォントを描く
SSD1306 I2C 0.96"OLED
 Hardware
 Arduino
 RaspberryPi_Python
Pr:Old Processor他
Ot:Others その他
この辞書は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。

1 コマンド 0x80. GPIO_CTL 概要

1.1 概要

Si4735の0x80コマンド(GPIO_CTL)は、ICが備えている汎用出力ピン(GPO1、GPO2、GPO3)を「出力モード」にするか「ハイ・インピーダンス(Hi-Z:電気的に絶縁された入力待ち状態)」にするかを制御するためのコマンドです。
また、すべてのコマンド実行後に返ってくる「共通ステータスバイト」の中に、音声の品質状態を知らせる ASQINT などの重要な割込み情報が含まれています。

GPO1、GPO2、GPO3の出力を有効にします。GPO1、GPO2、GPO3OENビットを設定することで、GPO1、GPO2、GPO3の出力(ハイインピーダンスまたはアクティブドライブ)を設定できます。
GPO1、GPO2、GPO3の状態(ハイまたはロー)は、GPIO_SETコマンドで設定します。
発振による過電流消費を避けるため、GPOピンをハイインピーダンス状態にしたままにしないでください。
次のコマンドを安全に送信できる状態になると、CTSビット(およびオプションの割り込み)が設定されます。
このコマンドは、電源投入モードのときのみ送信できます。
デフォルトでは、すべてのGPOピンがハイインピーダンスに設定されています。

注記:
1. GPIO_CTLは、AM_SW_LWコンポーネント2.0以降でサポートされています。
2. GPO2を割り込みピンとして使用する場合、および/またはGPO3をDCLKデジタルクロック入力として使用する場合、それぞれGPO2および/またはGPO3のPIO_CTL機能は無効になります。

使用可能環境:全環境
コマンド引数:1つ
応答バイト:なし

1.2 コマンド関連の注意事項・実装のポイント

1.2.1 ピンの「機能競合(オーバーライド)」に最大級の注意を

GPO2ピンとGPO3ピンは、ラジオシステム全体を制御するための重要な固有機能と物理的にピンを共有(兼用)しています。
GPO2: マイコンへイベントを伝えるための「物理割込みピン(IRQ)」として使われるのが一般的です。
GPO3: 外部から正確な基準クロックを入れるための「デジタルクロック入力ピン(DCLK)」として割り当てられることがあります。
もし回路設計でこれら(IRQやDCLK)としてピンを使用している場合、0x80 コマンドで強引に GPO2OEN = 1 や GPO3OEN = 1 を設定すると、固有の機能が上書き(シャットアウト)されて無効化され、 マイコンが割込みを受け取れなくなったりクロックが途切れたりしてシステムが崩壊します。
使用していないピンだけを 1 にしてください。

注意点として 4.2.3 まとめ(実装時の黄金律) も確認して下さい。

1.2.2 0x80 のあとは 0x81 がセット

ピンを出力として使う場合は、まずこの 0x80 コマンドで設定を 1(出力許可)にしてから、初めて 0x81(GPIO_SET) コマンドで「HighにするかLowにするか」を命令するという、2ステップの手順を踏む必要があります。




2 コマンドパラメータ

2.1 パラメータリスト

BitD7D6D5D4D3D2D1D0
CMD10000000
ARG10000GPO3OENGPO2OENGPO1OEN0

ARGBitNameFunction
13GPO3OENGPO3 出力有効化。
0 = 出力無効(Hi-Z)(デフォルト)。
1 = 出力有効。
12GPO2OENGPO2 出力有効化。
0 = 出力無効(Hi-Z)(デフォルト)。
1 = 出力有効。
11GPO1OENGPO1 出力有効化。
0 = 出力無効(Hi-Z)(デフォルト)。
1 = 出力有効。

2.2 パラメータ

2.2.1 GPO3OEN(GPO3 Output Enable)

目的
れぞれ対応するGPOピンの出力バッファを有効化し、デジタル出力(High/Low)として使える状態にするか、あるいは入出力回路を切り離す(Hi-Z化する)かを指定します。
解説
1(有効): 各ピンをデジタル出力モードに設定します。このモードに切り替えた後、0x81(GPIO_SET)コマンド を送ることで、それぞれのピンを物理的に High(電源電圧)または Low(GND)レベルへ直接駆動できるようになります。
0(無効・デフォルト): 各ピンをHi-Z(ハイ・インピーダンス)状態にします。
外部回路から電気的に見えない状態になるため、ピンを他の兼用機能(割込み通知や外部クロック入力など)として安全に使用する、あるいは未使用ピンの無駄な電力消費を抑える目的で使用します。

2.2.2 GPO2OEN(GPO2 Output Enable)

目的
れぞれ対応するGPOピンの出力バッファを有効化し、デジタル出力(High/Low)として使える状態にするか、あるいは入出力回路を切り離す(Hi-Z化する)かを指定します。
解説
1(有効): 各ピンをデジタル出力モードに設定します。このモードに切り替えた後、0x81(GPIO_SET)コマンド を送ることで、それぞれのピンを物理的に High(電源電圧)または Low(GND)レベルへ直接駆動できるようになります。
0(無効・デフォルト): 各ピンをHi-Z(ハイ・インピーダンス)状態にします。
外部回路から電気的に見えない状態になるため、ピンを他の兼用機能(割込み通知や外部クロック入力など)として安全に使用する、あるいは未使用ピンの無駄な電力消費を抑える目的で使用します。

2.2.3 GPO1OEN(GPO1 Output Enable)

目的
れぞれ対応するGPOピンの出力バッファを有効化し、デジタル出力(High/Low)として使える状態にするか、あるいは入出力回路を切り離す(Hi-Z化する)かを指定します。
解説
1(有効): 各ピンをデジタル出力モードに設定します。このモードに切り替えた後、0x81(GPIO_SET)コマンド を送ることで、それぞれのピンを物理的に High(電源電圧)または Low(GND)レベルへ直接駆動できるようになります。
0(無効・デフォルト): 各ピンをHi-Z(ハイ・インピーダンス)状態にします。
外部回路から電気的に見えない状態になるため、ピンを他の兼用機能(割込み通知や外部クロック入力など)として安全に使用する、あるいは未使用ピンの無駄な電力消費を抑える目的で使用します。





3 応答パラメータ

3.1 パラメータリスト

BitD7D6D5D4D3D2D1D0
STATUSCTSERRXXXRDSINTXASQINTSTCINT

3.2 パラメータ

応答の先頭パラメータ
応答(STATUSバイト)に含まれる各ビット(CTS, ERR, RSQINT, STCINT)は、「デバイスの現在の処理状態」や「各種割り込み(通知)の発生」をホストMCUに知らせる目的で設計されています。 STATUSバイトの信頼性:Si4735の仕様上、いくつかのコマンド送信時に返ってくるSTATUSバイトでは、CTS以外の割り込みビット(RSQINT, STCINTなど)がリアルタイムに更新されない場合があります。
正しい確認方法:正確な割り込みステータスを確認したい場合は、STATUSバイトを直接過信するのではなく、専用の割り込み確認コマンド(例:GET_INT_STATUS (0x14) コマンドなど)を明示的に発行して最新の状態を読み出すのが一般的なセオリーとなっています。

3.2.1 CTS(Clear to Send)

目的:
デバイスが次のコマンドを受け付けられる状態かどうかを判定する。
解説:
最も重要なビットです。Si4735が前のコマンドの処理を完了し、「次のコマンドを送信しても安全(送信可)」になると1にセットされます。
0の間はデバイスが内部処理中(ビジー)であるため、ホストMCUは次のコマンド送信を待機する必要があります。

3.2.2 ERR(Error)

目的:
直前に送信したコマンドが正常に実行されたか、エラーが発生したかを判別する。
解説:
コマンドの引数(引数の値が範囲外など)や、無効なコマンドが送られた場合に1にセットされます。
ホスト側のプログラムで例外処理や再試行(リトライ)を行うために使用します。

3.2.3 RDSINT(Radio Data System Interrupt)

目的:
RDS(文字情報などのデータ放送)のデータバッファ(FIFO)に新しいデータが格納されたことを通知する。
解説:
FM放送などで送られてくる「RDS/RBDSデータ(番組名や楽曲情報など)」を受信した際に1になります。
ホストMCUはこのビットを見てからデータを読み出す(FM_RDS_STATUS コマンドを発行する)ことで、無駄な空読みを防ぎ効率的にテキストデータを取得できます。

3.2.4 ASQINT(Audio Signal Quality Interrupt Flag)

目的:
受信中の音声信号の品質(過度な無音状態や、デジタル音声のバッファエラーなど)に、あらかじめ設定した変化が起きたことをマイコン側に知らせます。
解説:
1 の場合:音声の品質(Audio Signal Quality)に関連するイベントがIC内部で発生し、割込みがトリガーされたことを意味します。
例えば、放送が始まって無音状態から復帰したとき、逆に無音状態(サイレンス検出)が一定時間続いたときなどにこのフラグが 1 に跳ね上がります。
マイコン側はこれを確認したら、詳細を調べるために 0x65(AUX_ASQ_STATUS) などの確認コマンドを発行します。

3.2.5 STCINT(Seek/Tune Complete Interrupt)

目的:
選局(Tune)操作または自動選局(Seek)操作が完了したことを通知する。
解説:
周波数を変更するコマンド(FM_TUNE_FREQ や FM_SEEK_START など)は内部処理に時間がかかります。
デバイスが「目的の周波数への同調、または次の放送局の検知を完了した」時点でこのビットが1になります。
選局完了のタイミングを正確に把握する目的で使用します。





4 その他

4.1 Google AI (Gemini) の見解

Si4735のGPIO制御(0x80)と音声品質監視(ASQINT)の仕様を読み解き、さらに一歩進んだ賢いハードウェア設計を行うためのGeminiからの提案です。

4.1.1 GPOピンを活用した、周辺パーツの省電力・ミュート制御

せっかくIC側に余っているGPOピンがあるなら、これを出力モード(0x80 で 1)にして、ラジオの外側にある周辺回路のコントロールに流用するのがスマートです。
Geminiからの提案: 例えば、GPO1ピンを外部オーディオアンプICの「シャットダウンピン(SD)」や「ミュートピン(MUTE)」に直結します。
マイコンのGPIOが足りない時でも、Si4735の 0x80 と 0x81 コマンドを介して、選局中のポップノイズが発生する瞬間だけ外部アンプを完全にハードウェアミュートさせたり、 スリープ時にアンプの電源を連動して落としたりするエコなシステムが、スマートに最小配線で実現できます。

4.1.2 「ASQINT」を使ったスマートな自動電源OFF / 放送自動記録

AM/FM/SWなどの電波状態だけでなく、「音そのものが鳴っているか(無音かどうか)」をICが勝手に監視してくれるのが ASQINT の強みです。
応用展開案: 事前に音声品質プロパティで「サイレンス(無音)検出」を設定しておきます。深夜の放送終了(停波によりピーという一報のあと無音になる、または完全な砂嵐ノイズになる)をICが音声レベルで検知すると、ASQINT が 1 になります。
これをトリガーにして、マイコン側が「放送が終了した」と100%正確に判断し、システムの主電源を落とす、あるいはSDカード等への自動録音を停止させる、といった『音声連動型のインテリジェント制御』を組むことができます。

4.1.3 まとめ

0x80(GPIO_CTL) は、チップ外部のピンの役割を定義するコマンドであり、兼用ピンの競合さえ気をつければ非常に便利なデジタル出力として活用できます。
また、応答に含まれる ASQINT は、音の有無や品質の変化を省電力でマイコンに通知するための優れた窓口です。

4.2 Google AI (Gemini) の回答

4.2.1 「モード」は何種類あるか

質問
「このコマンドは、電源投入モードのときのみ送信できます。」と記載がありますが、モードは何種類ありますか?

見解
Si4735の内部状態(動作モード)は、大きく分けて4種類あります。
Noモード名概要・チップの状態
1パワーダウン・モード
(Powerdown Mode)
チップが休止(スリープ)している最小消費電力の状態です。
I2C通信は受け付けますが、基本コマンド(0x01: POWER_UP)以外のほとんどのコマンドは受け付けず、送信しても拒否されるか無視されます。
2パワーアップ・モード
(Powerup Mode)
0x01 コマンドが成功し、チップが「ラジオ受信機」として完全に覚醒したメインの動作状態です。
ご質問の「電源投入モード」とはこの状態を指します。
さらに内部で「FM受信モード」「AM/SW/LW受信モード」などに分岐します。
3ブートローダー・モード
(Bootloader Mode)
パッチコード(SSB受信用の拡張ファームウェアなど)をマイコンからSi4735の内部RAMへ流し込むための専用モードです。
POWER_UP コマンドの発行時に特定の引数を指定することでこのモードに入ります。
4アナログ・フラッシュ・モード
(Analog Flash Mode)
チップ内部の不揮発性メモリ(NVRAM)に対して、特定のパラメータや校正データを書き込んだり検証したりするための工場出荷・評価用の特殊モードです。
通常の自作・組み込み設計でユーザーが明示的に使うことはほぼありません。
したがって、実用上のモードは「パワーダウン」「パワーアップ(通常動作)」「ブートローダー(パッチ用)」の3つ(+特殊モード1つ)と覚えておくのが最も正確です

4.2.2 このコマンドで設定した場合に影響を受けるもの

質問
このコマンドで設定した場合に影響を受けるもの(例えば I2Cのなにが とか どんな割り込み信号にどんな影響が出るとか)は何ですか?

見解
前述の 0x80(GPIO_CTL) コマンドで、GPO1、GPO2、GPO3の各ピンを出力イネーブル(1)に設定した場合、システム全体(I2Cや割込み信号)にどのような具体的影響が出るかを整理しました。
物理割込み信号(nINT)への致命的な影響(GPO2を 1 にした場合)
起きる現象: Si4735からマイコンへ「選局が終わった」「電波が変わった」と知らせるための物理割込み信号(IRQ機能)が完全に喪失します。
詳細なメカニズム: GPO2 ピンは、出荷時のデフォルト(および通常の実装)では、IC内部の割込みコントローラに直結された「オープンドレインの割込み出力ピン(nINT)」として機能しています。
しかし、0x80 で GPO2OEN = 1 にすると、このピンが「マイコンから任意のHigh/Lowを出力させるだけの、ただの汎用デジタル出力ピン」に強制上書きされます。
実務への影響: マイコン側が割込みピン(外部割込みエッジトリガなど)を使ったプログラム(非同期処理)で組まれている場合、二度と割込みが発生しなくなるため、マイコン側がフリーズするか、電波状態の変化を検知できなくなります。

外部基準クロック(RCLK/DCLK)への影響(GPO3を 1 にした場合)
起きる現象: 受信周波数の基準となるクロックの同期が外れ、一切のラジオ受信(同調)ができなくなるか、音が出なくなります。
詳細なメカニズム: GPO3 ピンは、回路設計によっては「外部の正確な水晶発振器(32.768kHzなど)からデジタルクロックを入力するピン(DCLK)」として兼用されます。
これを強引に出力モード(GPO3OEN = 1)に変えると、ピンの内部回路が「入力」から「出力」へ反転します。
実務への影響: 外部の発振器(クロックを出力している部品)と、出力モードになったSi4735のGPO3ピンが物理的に衝突(バックドライブ状態)を起こします。
これにより、異常な大電流が流れてチップが発熱したり、クロック信号の波形が完全に潰れてIC内部のDSPが停止(フリーズ)します。

I2Cバスへの影響(通信エラーの発生リスク)
起きる現象: 0x80 コマンド自体の送信や、その後の 0x81 などの通信中に、I2Cのデータ線(SDA)やクロック線(SCL)にデジタルノイズが回り込み、通信エラー(ACK返答なしやデータ化け)の原因になることがあります。
詳細なメカニズム: GPO1〜GPO3 ピンを 1 にして大きな電流(数mA程度)を外部のLEDやアンプの制御線に対して急激にON/OFF駆動させると、Si4735の内部電源ライン(VDD/GND)に一瞬の電圧ドロップ(ノイズ)が発生します。
I2Cピンは非常にデリケートなため、このノイズを拾って通信ビットがズレることがあります。
対策: GPOピンを出力として駆動させる場合は、基板上でI2Cの配線とGPOの配線を物理的に離すか、GPOピンの直後に小さな抵抗(100Ω程度)を挟んで急激な電流変化を抑える回路設計が必要です。


4.2.3 GPOの読み出しコマンド

質問
GPO3, GPO2, GPO1 の設定状態を読むコマンドはありますか

見解
結論から申し上げますと、Si4735には「GPO3, GPO2, GPO1 の設定状態(出力許可しているか、現在HighかLowか)を直接読み出す専用の独立コマンド」は存在しません。
Si4735の制御設計において、なぜ読み出しコマンドがないのか、そして状態を知りたい場合にファームウェア(マイコン)側でどのように対処すべきかを解説します。
1. なぜ読み出しコマンドがないのか?
Silicon Labsの公式プログラミングガイド(AN332)において、GPIO(GPO)関連のコマンドは以下の2つしか定義されていません。
(1)0x80 (GPIO_CTL) : 出力かHi-Z(入力待ち)かを「設定する」
(2)0x81 (GPIO_SET) : 出力レベルをHighかLowに「設定する」
これらは完全に「ライトオンリー(書き込み専用)」のコマンドであり、他の受信系ステータスコマンド(0x42 や 0x43)のようにIC内部のレジスタ値を応答(レスポンス)としてマイコン側に送り返してくれる仕組みが用意されていません。

2. 現在の設定状態を把握するための「確実な実装方法」
コマンドによる読み出しができないため、実際の開発ではマイコン(ホスト)側のファームウェア内で状態を管理(シャドウイング)するのが定石です。
具体的なコード設計(C言語などの例)
マイコン内のグローバル変数や構造体として、現在のGPOの状態を記憶しておく変数を用意します。
このように実装しておけば、プログラムの他の場所で「いまGPOピンはどういう設定だっけ?」と確認したくなった際、Si4735に通信を飛ばさずとも、マイコン内の Si4735_GPO_Status という変数を読み取るだけでいつでも確実に現在の状態を把握できます。

3. Google AI (Gemini) の見解・一歩踏み込んだトラブルの罠
この「読み出しコマンドがない」仕様と、前述の「起動時の罠」が絡み合った、設計時に絶対に注意すべきGeminiからの高度なアドバイスです。
「パワーダウンモード(Powerdown)」へ移行した際のリセットバグに注意マイコン側の変数(シャドウレジスタ)で状態を完全に管理している場合でも、盲点があります。
ラジオを一時的にスリープさせようと 0x11(POWER_DOWN)コマンド を送信すると、Si4735は初期化され、0x80 や 0x81 で設定した内容はすべて消去されて強制的にデフォルト(Hi-Z、割込みピンモード)へと戻ります。
もしマイコン側の変数をリセットし忘れていると、「マイコンはGPO1を出力(1)にしているつもりなのに、IC側はリセットされてHi-Z(0)になっている」という設定の不一致(乖離)が発生します。
パワーダウンコマンドを送る際、またはパワーアップ(0x01)を再度行う際は、必ずマイコン側の状態管理変数も同時に初期化(クリア)するロジックを忘れないでください。

物理的なピンの状態をマイコン側で直接「逆探知」する裏ワザどうしても「本当にGPOピンがHighになっているか(あるいは外部回路のせいでLowに潰されていないか)」をチェックしたい場合、 Si4735のコマンドに頼るのではなく、「マイコン側の余っているデジタル入力ピン(GPIO)を、Si4735のGPOピンに並列で1本繋いでおく」という物理的なアプローチが有効です。
マイコン側からそのピンを digitalRead() すれば、Si4735の外部に出力されている生の電圧レベル(High/Low)を100%確実に確認・デバッグすることができます。

まとめ
Si4735の 0x80 / 0x81 は、ICから状態を教えてもらうことができない「一方通行の設定コマンド」です。
そのため、設計時は必ずマイコン側のソフトウェア(変数)に状態を覚えさせておくアプローチを採用してください。

4.2.4 まとめ(実装時の黄金律)

見解
0x80 コマンドで設定を変える際は、以下の鉄則を守ってください。
GPO2(割込みピン)は絶対に 0x80 で 1 にしない(マイコンへの通知機能が壊れるため)。
GPO3に外部クロックを入れている場合は、絶対に 1 にしない(チップが故障・停止するため)。
使っていいのは、完全にフリー(どこにも繋がっていない、または独立したLED等に繋がっている)なピンだけにする。

4.3 GPIO_ピンのまとめ一覧

ピン名デフォルトの役割 / 兼用の機能0x80 で 1(出力許可)にした時の挙動と影響安全な使い道(応用例)
GOO3DCLK(デジタルクロック入力)※外部から32.768kHzなどの基準クロックを入れるピン。 【危険】 外部クロック発振器と信号が衝突(バックドライブ)し、発熱やDSP停止(受信不可)を引き起こします。 内部発振(クリスタル接続)を使用しており、GPO3が完全に空きピンの場合のみ、ステータスLED等の駆動に使用可能。
GPO2nINT(物理割込み出力)※選局完了(STC)などをマイコンに知らせる(Lowに落ちる)最重要ピン 【機能喪失】 割込み信号が出なくなり、マイコン側が「割込み検知モード」で組まれている場合はシステムがフリーズします。 マイコン側が割込みピンを使わず、I2C通信のみで状態を監視する「完全ポーリング方式」の場合のみ、自由な出力ピンとして流用可能。
GPO1空きピン / 汎用出力※起動時のバスモード選択(I2CかSPIか)で使われるが、起動後はフリー。 【安全】 システムの基本動作(クロックや割込み)を破壊するリスクが最も低く、一番自由に使えるピンです。 外部オーディオアンプのシャットダウン(省電力)制御や、ミュート回路のON/OFFスイッチ。
実装時の注意点(レジスタの並び順)
0x80(GPIO_CTL) コマンドのデータ構造(引数バイト)は、ビットの並び順が GPO3 ➔ GPO2 ➔ GPO1 の順になっています。
GPO1 だけを出力にしたい場合(推奨):引数に 0x02(GPO1OENのみ1)を送信します。
GPO2 も出力にしたい場合(ポーリング駆動時のみ):引数に 0x04(GPO2OENのみ1)を送信します。





































更新日 2026/06/21 16:56  管理者 平林 剛Hirabayashi Takeshi