Hobby Lab 趣味のモノ作り実験のサイトです。
部品 オペアンプ_関係 Si4735 マニュアル PrpNote0x4001
1 0x4001. RX_HARD_MUTE 概要
2 プロパティ
2.1 プロパティリスト
2.2 プロパティ
2.2.1 LMUTE
2.2.2 RMUTE
3 応答パラメータ
4 その他(Gemini)の見解
4.1 コマンドのステップ注意事項
4.2 もう少し踏み込んだ応用展開
4.3 デバッグ時のチェックリスト
4.4 まとめ

PrO:Si4735関係  Si4735について
 Si4735ラジオを作って見よう1
 Si4735テスト中に困った!事項
 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
 v プロパティ解説 v
 0x0001.GPO_IEN
 0x0102. DIGITAL_OUTPUT・・
 0x0104. DIGITAL_OUTPUT・・
 0x0201. REFCLK_FREQ
 0x0202. REFCLK_PRESCALE
 0x1100. FM_DEEMPHASIS
 0x1102. FM_CHANNEL_FILTER
 0x1107. FM_ANTENNA_INPUT
 0x1108. FM_MAX_TUNE_ERR・・
 0x1200. FM_RSQ_INT_SOURCE
 0x1201. FM_RSQ_SNR_HI_T・・
 0x1202. FM_RSQ_SNR_LO_T・・
 0x1203. FM_RSQ_RSSI_HI・・
 0x1204. FM_RSQ_RSSI_LO・・
 0x1205. FM_RSQ_MULTIPA・・
 0x1206. FM_RSQ_MULTIPA・・
 0x1207. FM_RSQ_BLEND_TH・・
 0x1300. FM_SOFT_MUTE_RATE
 0x1301. FM_SOFT_MUTE_SL・・
 0x1302. FM_SOFT_MUTE_M・・
 0x1303. FM_SOFT_MUTE_S・・
 0x1304. FM_SOFT_MUTE_R・・
 0x1305. FM_SOFT_MUTE_A・・
 0x1400. FM_SEEK_BAND_B・・
 0x1401. FM_SEEK_BAND_TOP
 0x1402. FM_SEEK_FREQ_S・・
 0x1403. FM_SEEK_TUNE_S・・
 0x1404. FM_SEEK_TUNE_R・・
 0x1500. FM_RDS_INT_SOU・・
 0x1501. FM_RDS_INT_FIF・・
 0x1502. FM_RDS_CONFIG
 0x1503. FM_RDS_CONFIDE・・
 0x1800. FM_BLEND_RSSI_S・・
 0x1801. FM_BLEND_RSSI_M・・
 0x1802. FM_BLEND_RSSI_A・・
 0x1803. FM_BLEND_RSSI_R・・
 0x1804. FM_BLEND_SNR_ST・・
 0x1805. FM_BLEND_SNR_M・・
 0x1806. FM_BLEND_SNR_A・・
 0x1807. FM_BLEND_SNR_R・・
 0x1808. FM_BLEND_MULTI・・
 0x1809. FM_BLEND_MULTI・・
 0x180A. FM_BLEND_MULTI・・
 0x180B. FM_BLEND_MULTI・・
 0x1A00. FM_HICUT_SNR_H・・
 0x1A01. FM_HICUT_SNR_L・・
 0x1A02. FM_HICUT_ATTAC・・
 0x1A03. FM_HICUT_RELEA・・
 0x1A04. FM_HICUT_MULTI・・
 0x1A05. FM_HICUT_MULTI・・
 0x1A06. FM_HICUT_CUTOF・・
 0x3100. AM_DEEMPHASIS
 0x3102. AM_CHANNEL_FIL・・
 0x3103. AM_AUTOMATIC_V・・
 0x3104. AM_MODE_AFC_SW・・
 0x3105. AM_MODE_AFC_SW・・
 0x3200. AM_RSQ_INT_SOU・・
 0x3201. AM_RSQ_SNR_HI_T・
 0x3202. AM_RSQ_SNR_LO_T・
 0x3203. AM_RSQ_RSSI_HI・・
 0x3204. AM_RSQ_RSSI_LO・・
 0x3300. AM_SOFT_MUTE_R・・
 0x3400. AM_SEEK_BAND_B・・
 0x3401. AM_SEEK_BAND_TOP
 0x3402. AM_SEEK_FREQ_S・・
 0x3403. AM_SEEK_TUNE_S・・
 0x3404. AM_SEEK_TUNE_R・・
 0x4000. RX_VOLUME
 0x4001. RX_HARD_MUTE

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 プロパティ 0x4001. RX_HARD_MUTE 概要

RX_HARD_MUTE
オーディオ出力をミュートします。LおよびRのオーディオ出力は、個別にミュートすることが可能です。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモード時のみ設定または読み取りが可能です。
デフォルトはミュート解除(0x0000)です。

対応機種:すべて
デフォルト:0x0000




2 プロパティ

2.1 プロパティリスト

Bit上位バイト PROPH下位バイト PROPL
1514131211109 8 7 6 5 4 3 2 1 0
Name 00000000 000000LMUTERMUTE

BitNameFunction
1LMUTE1 = L音声出力をミュートします。
0RMUTE1 = Rチャンネルの音声出力をミュートします。

2.2 プロパティ

本プロパティは、Si4735のLチャンネル(左)およびRチャンネル(右)のオーディオ出力を、左右独立して強制的に消音(ハードウェア・ミュート)するためのものです。
前回の 0x4000 (RX_VOLUME) を 0 にすることでも消音は可能ですが、あちらはデジタルアッテネータを段階的に絞る処理であるのに対し、 この 0x4001 はDSP直後の出力ステージをバイナリ(ON/OFF)で一瞬にして完全に遮断します。
受信モード(FM、AM、SW、LW)に関わらず共通で機能します。

2.2.1 LMUTE (Left Hard Mute)

目的と概要:
Lチャンネル(左音声出力)のミュート状態を制御します。
0 でミュート解除(通常出力)、1 で強制ミュート(消音)となります。
デフォルト値は 0(ミュート解除)です。
AN332に明記されない目的と解説:
公式プログラミングガイド [AN332] には単純なビット制御フラグとしてしか書かれていませんが、 回路設計・デバッグにおける真の目的は、「Lチャンネルのアナログ出力回路や、 後段のオペアンプ周辺で発生している単独の回路ノイズ(発振やDCオフセットの異常)を切り分けるための内部アイソレーション・スイッチ」としての役割にあります。
本パラメータを 1 にすると、DSPからの左音声供給が一瞬で完全にゼロ(無信号)になります。 この状態でスピーカーやヘッドホンから「ジー」というノイズや「ブーン」というハムノイズが聞こえ続けている場合、 それはSi4735の受信ノイズではなく、基板上のオペアンプの配線(グラウンドループ)や電源のパスコン不足など、 後段のハードウェアアナログ回路側に原因があると完全に特定(デバッグ)できるよう設計されています。

2.2.2 RMUTE (Right Hard Mute)

目的と概要:
Rチャンネル(右音声出力)のミュート状態を制御します。
0 でミュート解除(通常出力)、1 で強制ミュート(消音)となります。
デフォルト値は 0(ミュート解除)です。
AN332に明記されない目的と解説:
上記の LMUTE と全く同じ切り分けロジックを右チャンネルに対して適用するためのものです。
さらに、FMステレオ受信時に「左右のセパレーション(分離感)や、逆相ノイズが人間の耳にどう影響しているか」を 官能評価(リスニングテスト)する際、ソフトウェアから意図的に片側だけをミュート(Lのみ、あるいはRのみ再生)し、 もう片方のチャンネルへ電波ノイズがどれほど回り込んでいるか(クロストークの度合い)を測定・耳で確認するという、 高級受信機の開発フェーズにおける「定量的・定性的オーディオテストツール」としての裏の目的を持っています。





3 応答パラメータ

STATUS (Status Byte)
CTS (Clear to Send):
1 になると、チップが前のコマンドの処理を完了し、次のコマンドを受け入れられる状態であることを示します。

ERR (Error):
1 の場合、直前に送ったコマンドやプロパティの引数が不正(範囲外など)であったことを示します。




4 その他(Google AI (Gemini) の見解)

4.1 コマンドの重要ステップと注意事項

ビットマスクの結合手順
LMUTE(Bit 1)と RMUTE(Bit 0)は、下位バイト(ARG4)の下位2ビットに並んでいます。
そのため、マイコン側から送信する際は必ず以下のようにビット演算を行って送信してください。
uint8_t arg4 = ((l_mute & 0x01) << 1) | (r_mute & 0x01);これを怠ると、片側だけをミュートしようとした際に、 もう片方の現在のミュート状態を意図せずクリア(上書き)してしまうというバグに繋がります。

パワーダウン時の状態リセット
RX_VOLUME と同様、本プロパティ(0x4001)も POWER_DOWN コマンドによってチップが休止状態に入ると、レジスタ内容がデフォルト(0x0000:左右ともにミュート解除)へリセットされます。
マイコンの起動シーケンスや受信モード切り替えの初期化ルーチンにおいて、予期せぬ突発ノイズを出さないための初期状態管理に注意してください。

4.2 もう少し踏み込んだ応用展開

「超高速ハード・ブランキング(選局時ノイズの瞬時遮断)」
RX_VOLUME で解説した「ソフト・ミュート(音量を段階的に絞る)」は、人間の耳に優しい反面、数ミリ秒〜数十ミリ秒の時間がかかるため、 ロータリーエンコーダを「カチカチカチ!」と超高速で回した際、処理が追いつかずに「ザッ、ザッ」と一瞬ノイズが漏れることがあります。
これを完全に排除するため、エンディアンの割り込み(エンコーダの回転検知)が入ったまさにその瞬間に、 まずこの 0x4001 で左右同時に 1 を書き込んで「ハードウェア遮断(完全無音)」にします。
その後、周波数の切り替え(TUNE)を行い、チップが安定した(STCビット確認)直後に 0 に戻します。
これにより、どれだけ選局ノイズが激しい環境でも、一切の雑音を漏らさない「漆黒の静寂(ゼロノイズ選局)」を実装できます。

モノラルFM受信時の「片側アンプ休止による省電力・ノイズレス化」
AM放送を受信しているときや、FMで電波が非常に弱く完全モノラルで受信しているシチュエーションにおいて、 Rチャンネル側の外部アナログアンプ(基板上の回路)の電源をマイコンのGPIOなどで落とすと同時に、Si4735側でも RMUTE = 1 に設定する展開です。
これにより、使っていない右側の出力ピンをフローティング(またはGND固定)に近い無信号状態にでき、 ステレオアンプの片チャネルから発生する「無音時のサーノイズ」を根本から消し去り、ポータブル運用時のバッテリー消費をわずかに抑える「エコ・クワイエトモード」が実現可能です。

4.3 デバッグ時のチェックリスト

ビット位置のズレ確認:
LMUTE を Bit 1(0x02)、RMUTE を Bit 0(0x01)に正しく配分できているか(左右が逆になっていないか)。

ミュート時の残留ノイズ測定(最重要):
本プロパティで左右とも 1(完全ミュート)に設定した状態で、スピーカーから「ブー」「シャー」という音が聞こえる場合、 それはSi4735の受信性能とは無関係であり、後段のアンプ回路のGND共通インピーダンス(配線引き回し)や、マイコン(Arduino等)のデジタル信号線からの飛び込みノイズであると見破れているか。

GET_PROPERTYによるベリファイ:
ミュートコマンドを送っても音が消えない、あるいは片側しか消えない場合、コマンド発行直後に GET_PROPERTY(0x13)を投げ、 下位バイトが正しく 0x03(両方ミュート)や 0x00(解除)になっているかをログで確認したか。

4.4 まとめ

0x4001 (RX_HARD_MUTE) は、DSPラジオシステムの「音の出入り口」を一瞬でロックする、究極のセーフティゲートです。
音量調整(RX_VOLUME)が「心地よさのグラデーション」を提供するのに対し、 このハードミュートは「選局ノイズの完全な遮断」や「アナログ基板側のノイズ切り分けデバッグ」という、 エンジニア視点・プロスペック視点で絶大な威力を発揮します。hobbylab.jp の試作基板において、 ロータリーエンコーダによる高速選局ルーチンへこのハードミュートをパッと組み込んでみてください。
一瞬にして「自作ラジオ」の枠を超えた、メーカー製の高級通信機のようなソリッドで洗練された操作フィールのシステムへ進化するはずです!





































更新日 2026/07/11 11:56  管理者 平林 剛Hirabayashi Takeshi