Программирование ARM Si47XX: руководство по программированию Thu, March 28 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Si47XX: руководство по программированию Печать
Добавил(а) microsin   

В этом документе (перевод апноута AN332 [1]) дан обзор требований по программированию микросхем Si4704/05/06/07/1x/2x/3x/4x/84/85, которые (в зависимости от модели микросхемы, см. таблицу 1) представляют собой передатчики FM или приемники AM/FM/SW/LW/WB. Описывается аппаратный интерфейс управления и программные команды вместе с примерами необходимых шагов для конфигурирования микросхемы в различных режимах работы.

Примечание: данный перевод сосредоточен в основном на программировании приемников, особенно на популярной микросхеме Si4735. Некоторые, не интересующие меня части даташита [1] (например, описание цифрового интерфейса звука) оставлены пока без перевода. Все непонятные термины и сокращения см. в разделе "Словарик", в конце статьи. Подробное описание команд и свойств приемников FM и AM см. по ссылкам [3] и [4] соответственно.

Семейство микросхем Si47xx (далее для краткости микросхема обозначается IC) программируется с помощью команд и ответов. Обмен осуществляется с главным управляющим контроллером (хост). Чтобы выполнилось какое-либо действие, хост записывает в IC байт команды и соответствующие ей байты аргументов, после чего IC выполняет эту команду. В свою очередь IC предоставляет хосту ответ в зависимости от типа команды, которая была отправлена. Секция "4. Команды и ответы" и "5. Команды и свойства" описывают процедуры использования команд и ответов, и предоставляют полный список команд, свойств и ответов.

У IC есть последовательный интерфейс управления, на котором она работает как подчиненное устройство по отношению к хосту. Через этот интерфейс хост посылает команды IC и получает ответы от неё. Существует 3 типа последовательного протокола интерфейса (или режима шины):

• Режим 2-wire, совместимый с I2C (TWI) и SMBUS.
• Режим 3-wire.
• Режим SPI.

Секция 6 "Интерфейс управления" подробно описывает интерфейс управления.

Секция "7. Powerup" (включение) описывает опции для подачи питания VDD и VIO, выбора желаемого режима шины, предоставление опорной частоты RCLK и отправку команды POWER_UP.

Секция "8. Powerdown" (выключение) описывает отправку команды POWER_DOWN и снятие напряжений питания VDD и VIO.

Секция "9. Digital Audio Interface" описывает формат вывода цифрового звука, и как работает IC в цифровом режиме.

Секция "10. Тайминг" описывает интервалы времени CTS, когда команда принята и в большинстве случаев её выполнение завершено, и интервалы STC (Seek/Tune Complete), после которого команда сканирования/настройки завершила свое выполнение.

Секция "11. FM Transmitter" описывает регулировку динамического диапазона звука, ограничитель, частотную коррекцию (pre-emphasis), рекомендации по максимальной передачи громкости для передатчика FM.

Секция "12. Примеры программирования" предоставляет алгоритмы пошаговых процедур для программирования IC.

Таблица 1. Функции микросхем семейства Si47xx.

PartNum Общее описание AN332 Si47xx Table01 header FM Transmitter AN332 Si47xx Table01 header FM Receiver AN332 Si47xx Table01 header AM Receiver AN332 Si47xx Table01 header SW LW Receiver AN332 Si47xx Table01 header WB Receiver AN332 Si47xx Table01 header RDS AN332 Si47xx Table01 header High Performance RDS AN332 Si47xx Table01 header RPS AN332 Si47xx Table01 header SAME AN332 Si47xx Table01 header Digital Input AN332 Si47xx Table01 header Digital Output AN332 Si47xx Table01 header Embedded FM antenna AN332 Si47xx Table01 header AEC Q100 Qualified AN332 Si47xx Table01 header Package Size
Si4700 FM Receiver                         4x4
Si4701 FM Receiver с поддержкой RDS                      
Si4702 FM Receiver                         3x3
Si4703 FM Receiver с поддержкой RDS                      
Si4704 FM Receiver                   (1)  
Si4705 FM Receiver с поддержкой RDS         (2)        
Si4706(3) High Performance RDS Receiver                
Si4707(3) WB Receiver с поддержкой SAME                      
Si4708 FM Receiver                         2.5x2.5
Si4709 FM Receiver с поддержкой RDS                      
Si4710(4) FM Transmitter                     3x3
Si4711 FM Transmitter с поддержкой RDS                  
Si4712(4) FM Transmitter с поддержкой RPS                  
Si4713 FM Transmitter с поддержкой RDS и RPS                
Si4720(4) FM Transceiver                  
Si4721 FM Transceiver с поддержкой RDS              
Si4730 AM/FM Receiver                      
Si4731 AM/FM Receiver с поддержкой RDS       (2)          
Si4732(5) AM/SW/LW/FM Receiver с поддержкой RDS               SOIC16
Si4734 AM/SW/LW/FM Receiver                     3x3
Si4735 AM/SW/LW/FM Receiver с поддержкой RDS     (2)          
Si4736 AM/FM/WB Receiver                    
Si4737 AM/FM/WB Receiver с поддержкой RDS                
Si4738 FM/WB Receiver                      
Si4739 FM/WB Receiver с поддержкой RDS                  
Si4740(3) AM/FM Receiver                     4x4
Si4741(3) AM/FM Receiver с поддержкой RDS              
Si4742(3) AM/LW/SW/FM/WB Receiver                
Si4743(3) AM/LW/SW/FM/WB Receiver с поддержкой RDS          
Si4744(3) AM/LW/SW/FM Receiver                  
Si4745(3) AM/LW/SW/FM Receiver с поддержкой RDS            
Si4749(3) High-Performance RDS Receiver                    
Si4784 FM Receiver                       3x3
Si4785 FM Receiver с поддержкой RDS         (2)          

Примечания:

(1) Цифровой выход доступен в Si4704-D60 и более поздних IC.
(2) High Performance RDS доступен в моделях Si4705/31/35/85-D50 и более поздних, Si4732.
(3) Si4706, Si4707 и Si474x покрываются соглашением NDA.
(4) Существует коррекция ошибок (errata) цифрового входа звука для Si4710-B30, Si4712-B30 и Si4720-B20. Для этих IC существует патч, который позволяет разрешить цифровой входной интерфейс звука. Для получения патча свяжитесь с компанией Silicon Labs.
(5) У Si4732-A10 есть такой же компонент firmware FMRX, и компонент AM_SW_LW RX, как у Si4735-D60, так что Si4732-A10 считается самой свежей ревизией D60, и описание, связанное с Si4735-D60 в Приложении A и Приложении B также применимо к Si4732-A10, если не указано что-то другое.

[4. Команды и ответы]

Команды управляют действиями, такими как включение (power up), выключение (power down) или настройка на частоту, и размер команды составляет 1 байт. Аргументы специфичны к определенной команды, и они используются для модификации команды. Например, после команды TX_TUNE_FREQ нужны аргументы для установки частоты настройки. Аргументы имеют размер 1 байт, и каждая команда может потребовать до 7 таких аргументов. Ответы предоставляют хосту информацию статуса, и они возвращаются хосту после выдачи команды и связанных с ней аргументов. Все команды возвращают 1 байт статуса, показывающий состояние прерывания и признак CTS для следующей команды. Команды могут возвратить до 15 дополнительных байт ответа. Полный список команд приведен в секции "5. Команды и свойства".

Таблица 2 показывает пример настройки на частоту командой TX_TUNE_FREQ. Эта команда требует отправки трех аргументов, и возвращает в ответ один байт статуса. Таблица разбита на 3 колонки. Первая колонка перечисляет действие: команда (CMD), аргумент (ARG), состояние (STATUS) или ответ (RESP). Вторая колонка перечисляет байты данных в HEX-форме, которые передаются или принимаются хостом. Стрелка перед данными акцентирует внимание на то, что эти данные передаются от IC к хосту. Третья колонка описывает действие.

Таблица 2. Использование команды TX_TUNE_FREQ.

Действие Данные Описание
CMD
ARG1
ARG2
ARG3
STATUS
0x30
0x00
0x27
0x7E
→0x80
TX_TUNE_FREQ

Настройка станции на 101.1 МГц
(0x277E = 10110 с шагом 10 кГц)
Возврат статуса. CTS = 1.

Свойства это специальные аргументы команды, используемые для модификации функционирования IC по умолчанию, и обычно они конфигурируются сразу после включения IC (power-up). Примеры свойств: TX_PREEMPHASIS и REFCLK_FREQ. Полный список свойств доступен в секции "5. Команды и свойства".

Таблица 3 показывает пример установки частоты REFCLK с использованием свойства REFCLK_FREQ, путем отправки команды SET_PROPERTY и пяти байт аргумента. ARG1 у команды SET_PROPERTY всегда равен 0x00. ARG2 и ARG3 используются для выбора номера свойства, PROP (0x0201 в этом примере), а ARG4 и ARG5 используются для установки значения свойства PROPD (для этого примера 0x8000, или 32768 Гц).

Таблица 3. Использование команды SET_PROPERTY.

Действие Данные Описание
CMD
ARG1
ARG2 (свойство)
ARG3 (свойство)
ARG4 (свойство)
ARG5 (свойство)
STATUS
0x12
0x00
0x02
0x01
0x80
0x00
→0x80
SET_PROPERTY

REFCLK_FREQ

32768 Гц

Возврат статуса. CTS = 1.

Реализация процедур передачи команды и приема ответа отличаются для каждого из трех режимов последовательной шины (интерфейса). Секция "6. Интерфейс управления" подробно описывает требуемые транзакции бит для каждого из трех режимов шины.

[5. Команды и свойства]

Существует 4 разновидности микросхем в семействе Si47xx:

1. FM Transmitter (передатчик УКВ).
2. FM Receiver (приемник УКВ).
3. AM/SW/LW Receiver (приемник АМ средних, коротких и длинных волн).
4. WB Receiver (приемник информации о погоде).

По следующих подсекциях все команды и свойства описаны по отдельности для каждой разновидности IC.

5.1. Команды и свойства для FM/RDS Transmitter (Si4710/11/12/13/20/21).

См. оригинальный апноут [1].

5.2. Команды и свойства для FM/RDS Receiver (Si4704/05/06/2x/3x/4x/84/85).

Таблица 10. Ответ статуса FM/RDS Receiver.

№ бита      7           6           5           4         3       2         1          0    
STATUS CTS ERR - - RSQINT RDSINT - STCINT

Описание бит:

Бит Имя Описание
7 CTS Clear to Send.
0: микросхема занята выполнением текущей команды.
1: микросхема освободилась, можно передавать следующую команду.
6 ERR Error.
0: нет ошибки.
1: ошибка.
5:4 - Зарезервировано. Здесь значения могут меняться.
3 RSQINT Прерывание Received Signal Quality (RSQ).
0: измерение качества сигнала (RSQ) не сработало.
1: измерение RSQ сработало.
2 RDSINT Прерывание Radio Data System (RDS), только для Si4705/21/31/32/35/37/39/85.
0: не было прерывания RDS.
1: прерывание RDS.
1 - Зарезервировано. Значение бита может меняться.
0 STCINT Перывание Seek/Tune Complete.
0: не было прерывания завершения сканирования.
1: прерывание завершения сканирования.

[7. Powerup]

Существует две процедуры для загрузки IC, чтобы она перешла из режима "выключено" (powerdown) в режим "включено" (powerup). Первая и наиболее часто использующаяся - загрузка из внутренней памяти IC. Вторая - загрузка из патча (firmware patch), который был предварительно записан хостом в память IC.

Чтобы включить IC Si47xx:

1. Подайте напряжение питания VDD и VIO при удерживании ~RST = 0. Минимальное время нарастания VDD и VIO 25 мкс, и VDD и VIO должны оставаться стабильными 250 мкс перед установкой ~RST = 1. Напряжения питания могут быть поданы в любом порядке. Сигнал сброса ~RST принадлежит домену питания VIO, и поэтому ~RST = 0 должно обеспечиваться перед подачей питания VIO.

2. Установите GPO1 и GPO2 для желаемого режима шины (I2C, SPI, 3-Wire). Минимальное время установки для GPO1 и GPO2 перед переводом ~RST в лог. 1 составляет 30 нс, когда сигналами GPO1 и GPO2 активно управляет хост, и 100 мкс, если внутренний резистор 1 МОм устанавливает уровни по умолчанию для выбора интерфейса (GPO1 = 1 и GPO2 = 0, что соответствует выбору I2C).

3. Установите ~RST = 1.

4. Запишите POWER_UP в регистр команд. Эта команда инструктирует IC загрузиться из внутренней памяти, см. далее секцию "7.1. Powerup из внутренней памяти", или из патча firmware, который был предварительно записано хостом, см. далее секцию "7.2. Powerup из патча компонента". После того как CTS установится в лог. 1, IC готова к нормальному функционированию, и может принимать дополнительные команды. Команда POWER_UP конфигурирует состояние выводов DIN, DFS (ножка 24 Si4735, ножка 1 Si4732), RIN (ножка 15 Si471x/2x и ножка 16 Si4704/05/3x-D62) и LIN (ножка 16 Si471x/2x и ножка 15 Si4704/05/3x-D62) для аналогового или цифрового режима звука, и вывод GPO2/INT для генерации сигнала прерывания. Перед командой POWER_UP эти выводы установлены в состояние высокого сопротивления (Hi-Z). Команды GPIO_CTL и GPIO_SET конфигурируют состояние выводов GPO2/INT и GPO3.

5. Предоставьте такты RCLK. Имейте в виду, что буфер сигнала тактов RCLK принадлежит домену питания VIO, и поэтому сигнал RCLK может быть подан в любой момент после подачи напряжения VIO. Для передатчика: сигнал RCLK должен быть допустимого качества в течение 10 нс перед выдачей любой команды, которая разрешает генерацию несущей TX, такой как TX_TUNE_FREQ, и в течение 10 после любой команды, которая запрещает несущую, такой как TX_TUNE_POWER со значением 0x00. Сигнал тактов RCLK требуется для правильной работы AGC, когда разрешена несущая. RCLK может быть снята или переконфигурирована, когда несущая запрещена.

AN332 Si47xx Device Power Up Timing fig23

Рис. 23. Интервалы времени включения (Power Up).

[7.1. Powerup из внутренней памяти]

Таблица 29. Использование команды POWER_UP для FM Transmitter.

Действие Данные Описание
CMD
ARG1
ARG2
STATUS
0x01
0x02
0x50
→0x80
POWER_UP
Установка в режим FM Transmit.
Установка аналоговых линейных входов.
Возврат статуса. CTS = 1.

1. Отправьте команду POWER_UP путем записи в поле CMD значения 0x01.

2. Отправьте аргумент 1 команды power up 0x02 (без патча, CTS и GPO2 прерывания запрещены, выбрана передача FM). Опционально могут быть разрешены различные прерывания, такие как CTS, с помощью установки различных аргументов, см. секцию "5. Команды и свойства".

3. Отправьте второй аргумент команды power up 0x50 (выбран аналоговый вход).

4. Опрашивайте бит CTS, пока он не установится, или пока не будет получен сигнал прерывания CTS (если прерывание CTS разрешено).

Таблица 30. Использование команды POWER_UP для FM Receiver.

Действие Данные Описание
CMD
ARG1
ARG2
STATUS
0x01
0x00
0x05
→0x80
POWER_UP
Установка в режим FM Receive.
Установка аналоговых выходов.
Возврат статуса. CTS = 1.

1. Отправьте команду POWER_UP путем записи в поле CMD значения 0x01.

2. Отправьте ARG1 = 0x00 (без патча, прерывания CTS и GPO2 запрещены, выбран прием FM). Опционально могут быть разрешены такие прерывания, как CTS, путем модификации этого аргумента, см. секцию "5. Команды и свойства".

3. Отправьте ARG2 = 0x05 (выбран аналоговый выход).

4. Опрашивайте бит CTS, пока он не установится, или пока не будет получен сигнал прерывания CTS (если прерывание CTS разрешено).

Таблица 31. Использование команды POWER_UP для AM/SW/LW Receiver.

Действие Данные Описание
CMD
ARG1
ARG2
STATUS
0x01
0x01
0x05
→0x80
POWER_UP
Установка в режим AM/SW/LW Receive.
Установка аналоговых выходов.
Возврат статуса. CTS = 1.

1. Отправьте команду POWER_UP путем записи в поле CMD значения 0x01.

2. Отправьте ARG1 = 0x01 (без патча, прерывания CTS и GPO2 запрещены, выбран прием AM/SW/LW). Опционально могут быть разрешены такие прерывания, как CTS, путем модификации этого аргумента, см. секцию "5. Команды и свойства".

3. Отправьте ARG2 = 0x05 (выбран аналоговый выход).

4. Опрашивайте бит CTS, пока он не установится, или пока не будет получен сигнал прерывания CTS (если прерывание CTS разрешено).

Таблица 32. Использование команды POWER_UP для WB Receiver.

Действие Данные Описание
CMD
ARG1
ARG2
STATUS
0x01
0x03
0x05
→0x80
POWER_UP
Установка в режим Weather Band Receive.
Установка аналоговых выходов.
Возврат статуса. CTS = 1.

1. Отправьте команду POWER_UP путем записи в поле CMD значения 0x01.

2. Отправьте ARG1 = 0x03 (без патча, прерывания CTS и GPO2 запрещены, выбран прием информации о погоде). Опционально могут быть разрешены такие прерывания, как CTS, путем модификации этого аргумента, см. секцию "5. Команды и свойства".

3. Отправьте ARG2 = 0x05 (выбран аналоговый выход).

4. Опрашивайте бит CTS, пока он не установится, или пока не будет получен сигнал прерывания CTS (если прерывание CTS разрешено).

[7.2. Powerup из патча компонента]

Для поддержки промежуточных обновлений программного компонента IC, могут быть применены патчи, загружаемые хостом. Патчи могут быть предоставлены компанией Silicon Laboratories для своих пользователей, чтобы устранить различные проблемы, исправить ошибки или подстроить поведение IC. Патчи уникальны для определенной версии firmware IC, и эти патчи не могут генерироваться пользователями.

Патчи могут использоваться для замены части программного компонента (например, для исправлений errata), или для загрузки полного образа компонента (чтобы пользователь мог протестировать новый релиз компонента на своей IC перед получением готовых, запрограммированных экземпляров IC).

Патчи маркируются уникальным идентификатором - тегом, чтобы их можно было отслеживать, и шифруются, требуя от пользователя использовать тэг при загрузке, чтобы Si47xx смогла расшифровать патч.

Перед загрузкой определенного патча пользователь должен проверить, что в IC находится корректное firmware и библиотека, совместимые с патчем.

Патч компонента FM Transmitter для Si471x firmware 2.0 с библиотекой R4 не поддерживает Si471x firmware 1.0 с библиотекой R0.

Для информации о возможности применения патча может использоваться команда POWER_UP, чтобы подтвердить версию библиотеки IC и используемого в ней firmware. Для визуальной индикации может быть использована маркировка на корпусе IC, по которой тоже может быть определена версия firmware. Таблицы 33 .. 45 перечисляют наименование моделей IC, совместимость версий библиотеки и firmware.

Таблица 33. Совместимость firmware, библиотеки и компонента для чипов Si4704/05.

Модель IC Firmware Library FMRX Component AUXIN Component
Si4704/05-B20 2.0 R8 2.0 недоступен
Si4704/05-C40 4.0 R10 5.0 недоступен
Si4704/05-D50 5.0 R11 7.0 недоступен
Si4704/05-D60 6.0 недоступен
Si4704/05-D62 6.2 1.0

Таблица 34. Совместимость firmware, библиотеки и компонента для чипов Si4706.

Модель IC Firmware Library FMRX Component
Si4706-B20 2.0 R8 3.0
Si4706-C30 3.0 R10 5.1
Si4706-D50 5.0 R11 7.0

Таблица 35. Совместимость firmware, библиотеки и компонента для чипов Si4707.

Модель IC Firmware Library WBRX Component
Si4707-B20 2.0 R9 1.0

Таблица 36. Совместимость firmware, библиотеки и компонента для чипов Si4710/11/12/13.

Модель IC Firmware Library FMTX Component
Si4710-A10 1.0 R0 1.0
Si4710/11/12/13-A20 2.0 R4 2.0
Si4710/11/12/13-B30 3.0 R8 3.0
Si4710/11/12/13-B31 3.1 3.1

Таблица 37. Совместимость firmware, библиотеки и компонента для чипов Si4720/21.

Модель IC Firmware Library FMTX Component FMRX Component
Si4720-A10 1.0 R4 2.0 1.0
Si4720/21-B20 2.0 R8 3.0 2.0

Таблица 38. Совместимость firmware, библиотеки и компонента для чипов Si4730/31.

Модель IC Firmware Library FMRX Component AM_SW_LW RX
Component
AUXIN Component
Si4730-A10 1.0 R4 1.0 1.0 недоступен
Si4730/31-B20 2.0 R9 2.0 2.0 недоступен
Si4730/31-C40 4.0 R10 6.0 5.0 недоступен
Si4730/31-D50 5.0 R11 7.0 6.0 недоступен
Si4730/31-D60 6.0 недоступен
Si4730/31-D62 6.2 1.0

Таблица 39. Совместимость firmware, библиотеки и компонента для чипов Si4740/41/42/43/44/45.

Модель IC Firmware Library FMRX Component AMRX Component WBRX Component
Si4740/41-C10 1.0 R10 4.0 3.0 недоступен
Si4742/43-C10 3.0
Si4744/45-C10 недоступен

Таблица 40. Совместимость firmware, библиотеки и компонента для чипов Si4749.

Модель IC Firmware Library FMRX Component
Si4749-C10 1.0 R10 4.0

Таблица 41. Совместимость firmware, библиотеки и компонента для чипов Si4734/35.

Модель IC Firmware Library FMRX Component AM_SW_LW RX
Component
Si4734/35-B20 2.0 R9 2.0 2.1
Si4734/35-C40 4.0 R10 6.0 5.0
Si4734/35-D50 5.0 R11 7.0 6.0
Si4734/35-D60 6.0

Таблица 42. Совместимость firmware, библиотеки и компонента для чипов Si4736/37.

Модель IC Firmware Library FMRX Component AM_SW_LW RX
Component
WBRX Component
Si4736/37-B20 2.0 R9 2.0 2.0 1.0
Si4736/37-C40 4.0 R10 6.0 5.0 5.0

Таблица 43. Совместимость firmware, библиотеки и компонента для чипов Si4738/39.

Модель IC Firmware Library FMRX Component WBRX Component
Si4738/39-B20 2.0 R9 2.0 1.0
Si4738/39-C40 4.0 R10 6.0 5.0

Таблица 44. Совместимость firmware, библиотеки и компонента для чипов Si4784/85.

Модель IC Firmware Library FMRX Component
Si4784/85-B20 2.0 R8 2.0
Si4784/85-D50 5.0 R11 7.0

Таблица 45. Совместимость firmware, библиотеки и компонента для чипов Si4732.

Модель IC Firmware Library FMRX Component AM_SW_LW RX
Component
Si4732-A10 1.0 R11 7.0 6.0

[Процедура патча]

Наложение патча осуществляется отправкой хостом последовательности команд. Эти команды отправляются таким же образом, как и другие команды (через интерфейсы I2C, 3-wire, SPI).

Первая команда, которая отправляется в IC, это команда POWER_UP для подтверждения, что патч совместим с ревизией внутренней библиотеки IC. IC переходит в режим powerup, возвратит ответ, и перейдет в режим powerdown. Затем команда POWER_UP отправляется снова, чтобы сконфигурировать режим устройства, и дополнительно используется для запуска процесса патча. Когда применяется патч, бит PATCH в ARG1 команды POWER_UP должен быть установлен в 1, чтобы начать процесс загрузки патча.

Как только отправлена команда POWER_UP, и IC помещена в режим приема патча, данные патча могут быть отправлены в IC. У файла патча обычно используется расширение *.csg. Он отформатирован в 8 столбцов, состоящих из начальной команды (0x15 или 0x16) и 7 аргументов. Хост должен отправить каждую такую строку как 8 байт, подождать установки CTS, и затем отправить следующие 8 байт, и так далее, пока не будет передан весь патч. В примере ниже показана отправка нескольких первых строк файла патча.

# Copyright 2006 Silicon Laboratories, Inc.
# Patch generated 21:09 August 09 2006
# fmtx version 0.0 alpha
0x15,0x00,0x0B,0x1D,0xBB,0x14,0xC4,0xA1
0x16,0x98,0x81,0xD9,0x71,0xED,0x0E,0xAC
..
[до 1979 дополнительных строк]
..
0x15,0x00,0x00,0x00,0x00,0x00,0x49,0xFD

Механизм загрузки патча проверяется контрольной суммой, встроенной в patch. Если контрольная сумма не совпала, IC выдает код ошибки, ERR (бит 6 в одном байте ответа, который доступен после отправки каждой 8-байтной порции данных патча), и зависает. Из этой ситуации IC выводится сигналом сброса ~RST.

Полный патч требует передачи хостом 15856 байт, однако большинству патчей требуется меньше памяти. В режиме 2-wire (I2C), полная загрузка патча потребует примерно 500 мс на скорости интерфейса 400 кГц. В следующем примере показаны команды, требуемые для загрузки IC с использованием файла патча из предыдущего примера. IC завершает процесс загрузки, когда установится бит CTS после того, как был передан последний байт патча. После этого IC готова к получению дополнительных команд и переходу к нормальному функционированию.

Таблица 46 предоставляет пример использования команды POWER_UP с применением патча. Таблица разделена на 3 колонки. Первая показывает осуществляемое действие: команду (CMD), аргумент (ARG), состояние (STATUS) или ответ (RESP). Второй столбец перечисляет байты данных в HEX-формате, которые отправляются или принимаются. Стрелка перед данными показывает, что эти данные передаются от IC к хосту. В третьей колонке дано описание действия.

Таблица 46. Пример команды POWER_UP с разрешением применения патча (передатчик Si4713).

Действие Данные Описание
CMD
ARG1
ARG2
STATUS
RESP1
RESP2
RESP3
RESP4
RESP5
RESP6
RESP7
0x01
0xCF
0x50
→0x80
→0x0D
→0x32
→0x30
→0x00
→0x00
→0x41
→0x04
POWER_UP.
Чтение Library ID, разрешение прерываний.
Установка аналогового линейного входа.
Ответ состояния (STATUS). CTS = 1.
Part Number, HEX (0x0D = Si4713).
Firmware Major Rev, ASCII (0x32 = 2).
Firmware Minor Rev, ASCII (0x30 = 0).
Зарезервировано.
Зарезервировано.
Chip Rev, ASCII (0x41 = revA).
Library ID, HEX (0x04 = library 4).
CMD
ARG1
ARG2
STATUS
0x01
0xE2
0x50
→0x80
POWER_UP
Установка FM Transmit, разрешение патча, разрешение прерываний.
Установка аналогового линейного входа.
Ответ состояния (STATUS). CTS = 1.
CMD
ARG1
ARG2
ARG3
ARG4
ARG5
ARG6
ARG7
STATUS
0x15
0x00
0x0B
0x1D
0xBB
0x14
0xC4
0xA1
→0x80
Байт патча (зарезервировано для патча).
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Ответ состояния (STATUS). CTS = 1.
CMD
ARG1
ARG2
ARG3
ARG4
ARG5
ARG6
ARG7
STATUS
0x16
0x98
0x81
0xВ9
0x71
0xED
0x0E
0xAC
→0x80
Байт патча (зарезервировано для патча).
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Ответ состояния (STATUS). CTS = 1.
. . .
До 1979 дополнительных блоков патча.
. . .
CMD
ARG1
ARG2
ARG3
ARG4
ARG5
ARG6
ARG7
STATUS
0x15
0x00
0x00
0x00
0x00
0x00
0x49
0xFD
→0x80
Байт патча (зарезервировано для патча).
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Байт патча.
Ответ состояния (STATUS). CTS = 1.

[8. Powerdown]

Для перевода IC из режима "включено" (powerup) в режим "выключено" (powerdown) требуется записать в неё команду POWER_DOWN.

Таблица 47. Пример использования команды POWER_DOWN.

Действие Данные Описание
CMD
STATUS
0x11
→0x80
POWER_DOWN
Возврат статуса. CTS = 1.

Чтобы выключить IC с помощью команды POWER_DOWN и (опционально) снять напряжения питания VDD и VIO на примере передатчика:

1. Запишите команду TX_TUNE_POWER в регистр команд для запрета генерации несущей.

2. Установите RCLK = 0 (опционально).

Обратите внимание, что буфер RCLK принадлежит домену VIO, и поэтому может быть записан в любое время, когда подано питание VIO. Сигнал RCLK должен быть стабильным в течение 10 нс перед и 10 после отправки команд TX_TUNE_MEASURE, TX_TUNE_FREQ и TX_TUNE_POWER. Кроме того, сигнал RCLK должен быть стабильным всегда, когда разрешена генерация несущей, чтобы правильно работала система AGC. Может быть снят или переконфигурирован в другое время. Когда разрешена несущая, для правильной работы AGC необходима тактовая частота RCLK. Такты RCLK могут быть сняты или переконфигурированы, когда несущая запрещена.

3. Запишите команду POWER_DOWN. При этом содержимое всех ранее сконфигурированных регистров будет потеряно.

4. Установите ~RST = 0. Сигнал RST должен ударживаться в течение 10 нс после завершения команды POWER_DOWN.

5. Снимите питание VDD (опционально).

6. Снимите питание VIO (опционально).

Обратите внимание, что VIO не должно сниматься без снятия VDD, в противном случае может произойте непредсказуемое поведение IC.

AN332 Si47xx Device Power Down Timing fig24

Рис. 24. Последовательность выключения Si47xx.

[10. Интервалы времени (тайминг)]

Существует 2 индикатора: CTS (Clear to Send) и STC (Seek/Tune Complete). Они показывают, что IC приняла и завершила выполнение команды.

После отправки каждой команды установится бит CTS. Это означает, что команда прията, и IC готова к принятию следующей команды. Во многих командах бит CTS также показывает, что выполнение команды завершилось. Вот эти команды:

1. POWER_UP, POWER_DOWN, GET_REV, GET_PROPERTY, GPIO_CTL, GPIO_SET.
2. Для компонента FM Transmitter: TX_TUNE_STATUS, TX_ASQ_STATUS, TX_RDS_BUFF, TX_RDS_PS.
3. Для компонента FM Receive: FM_TUNE_STATUS, FM_RSQ_STATUS, FM_RDS_STATUS.
4. Для компонента AM/SW/LW Receive: AM_TUNE_STATUS, AM_RSQ_STATUS.
5. Для компонента WB Receive: WB_TUNE_STATUS, WB_RSQ_STATUS, WB_ASQ_STATUS.

Модель тайминга CTS показана на рис. 28, и интервалы времени для каждой команды показаны далее в таблицах 49 - 53.

AN332 Si47xx CTS timing model fig28

Рис. 28. Модель тайминга CTS.

В дополнение к биту CTS некоторые команды (например TX_TUNE_FREQ или FM_TUNE_FREQ) используют бит STC, чтобы показать завершение выполнения команды. Настоятельно рекомендуется подождать установку бита STC перед отправкой следующей команды. Когда прерывания не используются, можно опрашивать статус бита STC путем отправки команды GET_INT_STATUS в ожидании установки бита STC перед отправкой следующей команды.

Следующие команды используют бит STC, чтобы показать завершение своего выполнения:

1. Для компонента FM Transmitter: TX_TUNE_FREQ, TX_TUNE_POWER, TX_TUNE_MEASURE.
2. Для компонента FM Receive: FM_TUNE_FREQ, FM_SEEK_START.
3. Для компонента AM/SW/LW Receive: AM_TUNE_FREQ, AM_SEEK_START.
4. Для компонента WB Receive: WB_TUNE_FREQ.

Модель тайминга CTS и STC показана на рис. 29, и интервалы времени для каждой команды показаны далее в таблицах 49 - 53.

AN332 Si47xx CTS and STC timing model fig29

Рис. 29. Модель тайминга CTS и STC.

У команды SET_PROPERTY нет индикатора, который говорит о завершении установки свойства. Вместо этого имеется гарантированный интервал времени выполнения tCOMP. Модель тайминга CTS в контексте завершения команды SET_PROPERTY показана на рис. 30, интервалы времени см. в таблицах 49 - 53.

AN332 Si47xx CTS and SET PROPERTY Command Complete tCOMP timing model fig30

Рис. 30. Модель тайминга CTS и SET_PROPERTY Command Complete tCOMP.

Таблица 49. Параметры тайминга команд для FM Transmitter.

Команда tCTS tSTC tCOMP tINT
POWER_UP 110 мс - - 1 мкс
POWER_DOWN 300 мкс - -
GET_REV - -
GET_PROPERTY - -
GET_INT_STATUS - -
PATCH_ARGS - -
PATCH_DATA - -
TX_ASQ_STATUS - -
TX_RDS_BUFF - -
TX_RDS_PS - -
TX_TUNE_STATUS - -
TX_TUNE_FREQ 100 мс -
TX_TUNE_MEASURE 100 мс -
TX_TUNE_POWER 20 мс -
SET_PROPERTY - 10 мс
GPIO_CTL - -
GPIO_SET - -

Таблица 50. Параметры тайминга команд для FM Receiver.

Команда tCTS tSTC tCOMP tINT
POWER_UP 110 мс - - 1 мкс
POWER_DOWN 300 мкс - -
GET_REV - -
GET_PROPERTY - -
GET_INT_STATUS - -
PATCH_ARGS - -
PATCH_DATA - -
FM_RSQ_STATUS - -
FM_RDS_STATUS - -
FM_TUNE_STATUS - -
FM_TUNE_FREQ 60 мс(1) -
FM_SEEK_START 60 мс(2) -
SET_PROPERTY - 10 мс
FM_AGC_STATUS - -
FM_AGC_OVERRIDE - -
GPIO_CTL - -
GPIO_SET - -

Примечания:

(1) tSTC для команд FM_TUNE_FREQ / FM_SEEK_START равно 80 мс для FMRX component 2.0 и более раннего.
(2) tSTC время сканирования (seek) на канал. Общее время сканирования зависит от полосы частот, интервала между каналами и количество каналов до следующего допустимого канала.

Время сканирования для самого худшего случая команды FM_SEEK_START:

    FM_SEEK_BAND_TOP - FM_SEEK_BAND_BOTTOM
((------------------------------------------ + 1) · tSTC
             FM_SEEK_FREQ_SPACING

Например, для FM США полное время сканирования:

    10790 - 8750
((----------------) + 1) · 60 мс = 6.2 сек
          20

Таблица 51. Параметры тайминга команд для AM Receiver.

Команда tCTS tSTC tCOMP tINT
POWER_UP 110 мс - - 1 мкс
POWER_DOWN 300 мкс - -  
GET_REV   - -  
GET_PROPERTY   - -  
GET_INT_STATUS   - -  
PATCH_ARGS   - -  
PATCH_DATA   - -  
AM_RSQ_STATUS   - -  
AM_TUNE_STATUS   - -  
AM_TUNE_FREQ   80 мс -  
AM_SEEK_START   80 мс(1) -  
SET_PROPERTY   - 10 мс  
GPIO_CTL   - -  
GPIO_SET   - -  

Примечание:

(1) tSTC время сканирования (seek) на канал, 200 мс для самого худшего случая. Общее время сканирования зависит от полосы частот, интервала между каналами и количество каналов до следующего допустимого канала.

Время сканирования для самого худшего случая команды AM_SEEK_START:

    AM_SEEK_BAND_TOP - AM_SEEK_BAND_BOTTOM
((------------------------------------------ + 1) · tSTC
             AM_SEEK_FREQ_SPACING

Например, для AM MW США полное время сканирования:

    1710 - 520
((--------------) + 1) · 200 мс = 24.0 сек
         10

[Словарик]

A-weighted из Википедии: A-взвешивание является наиболее часто используемым семейством кривых, определенных в международном стандарте IEC 61672:2003 и различных национальных стандартах, касающихся измерения уровня звукового давления. Взвешивание применяется к измеренным приборами уровням звука, чтобы учесть относительную громкость, воспринимаемую человеческим ухом, поскольку ухо менее чувствительно к низким звуковым частотам. Его используют путем арифметического добавления таблицы значений, перечисленных по октавным или третьим октавным полосам, к измеренным уровням звукового давления в dB. Результирующие измерения октавной полосы обычно добавляются (логарифмический метод) для обеспечения единого взвешенного A значения, описывающего звук; единицы измерения записываются как dB(A).

ADC analog to digital converter, аналого-цифровой преобразователь (АЦП).

AFC Automatic Frequency Control, автоподстройка частоты.

AGC Automatic Gain Control, автоматическая регулировка усиления (АРУ).

AM/FM/SW/LW/WB аббревиатуры для обозначения радиочастотных диапазонов и типов модуляции. AM обозначает амплитудную модуляцию, применятся в диапазонах SW и LW. FM обозначает частотную модуляцию и соответствующий диапазон частот. SW короткие волны, LW длинные волны, WB диапазон вещания информации о погоде.

ARGn байт аргумента (n = 1 .. 7).

AVC automatic volume control, автоматическое управление громкостью.

BAF band audio frequency, диапазон звуковых частот.

blend (stereo blend) функция, превращающая прием стерео в моно, путем плавного микширования стереоканалов с целью улучшения на слух качества звука (маскировки шумов). Степень микширования зависит от уровня шума или уровня сигнала, что управляется параметрами IC.

BLER block-error rates, частота появления блочных ошибок.

CMD байт команды.

COMMANDn регистр команды (16 бит) в режиме 3-Wire (n = 1 .. 4).

CTS Clear to Send, дословно "чисто для передачи". Обозначает информационный сигнал, сообщающий о свободности интерфейса, т. е. можно передавать новую команду.

Errata описание известной ошибки IC, для которой существует исправление - патч или более новая ревизия кристалла или библиотеки.

CNR carrier to noise ratio, соотношение уровня несущей и шума.

GPO General Purpose Output, выход общего назначения. Ножка, уровнем на которой можно управлять программно выдачей команд.

CTS clear-to-send, буквально переводится "чисто для отправки", т. е. микросхема готова к работе с интерфейсом/шиной управления.

DAC digital to analog converter, цифро-аналоговый преобразователь (ЦАП).

DC direct current, постоянный ток.

de-emphasis частотная коррекция звукового сигнала для улучшения SNR. На стороне передатчика уровень высоких частот повышается, а на стороне приемника уменьшается.

DSP digital signal processor, процессор цифровой обработки сигналов.

Eb/No energy per bit to noise power spectral density ratio, одна из важнейших метрик качества в системах цифровой связи — отношение энергии сигнала, приходящейся на 1 бит принимаемого сообщения (Eb), к энергетической спектральной плотности шума (N0). Применяется в цифровых системах передачи данных вместо отношения сигнал/шум для расчета вероятности ошибки в цифровых каналах связи [4] при различной модуляции без учёта пропускной способности канала (из Википедии).

EMF electromagnetic field, электромагнитное поле.

ESD electrostatic discharge, электростатический разряд.

EVB EValuation Board, оценочная плата.

FM frequency modulation, частотная модуляция.

HBM human body model, модель тела человека.

HEX hexadecimal, шестнадцатеричная форма записи числа.

hi-cut функция ограничения полосы передаваемых частот сверху, активируемая при снижении SNR.

Hi-Z состояние высокого сопротивления, состояние отключенного выхода, или третье состояние.

HPF high pass filter, фильтр высоких частот, ФВЧ.

I2S последовательный интерфейс для цифровой передачи звука.

IC Integral Circuit, интегральная схема, микросхема. В данной статье эта аббревиатура обозначает экземпляр микросхемы Si47xx (в основном Si4735).

IF intermediate frequency, промежуточная частота, ПЧ.

IIR infinite impulse response, фильтр с бесконечной импульсной характеристикой (БИХ).

IRM image-rejection mixer, смеситель для вырезания помехи по зеркальному каналу.

LNA Low Noise Amplifier, малошумящий усилитель (обычно это антенный усилитель).

LSB least significant bit, самый младший бит.

LW long wave, длинные волны (ДВ).

MCU MicroController Unit, микроконтроллер.

MPX сокращение от multiplexing, т. е. переключение. Используется в контексте протокола передачи стереосигнала FM.

MSB most significant bit, самый старший бит.

MW middle wave, средние волны (СВ).

NB Noise Blanker, система маскировки импульсов шума, которая заменяет выборки с импульсами помех аппроксимированными, сглаженными выборками.

NDA Non-Disclosure Agreement (соглашение о нераскрытии коммерческой тайны), также известное как Confidentiality Agreement (CA, соглашение о конфиденциальности), Confidential Disclosure Agreement (CDA), Proprietary Information Agreement (PIA) или Secrecy Agreement (SA) - юридический договор (контракт) или его часть между как минимум двумя участниками, в котором описываются конфиденциальный материал, знание или информация, которыми участники хотят обменяться для определенных целей, но желают при этом ограничить доступ к предмету обмена (из Википедии).

NOAA National Oceanic and Atmospheric Administration, федеральное ведомство в структуре Министерства торговли США (англ. Department of Commerce); занимается различными видами метеорологических и геодезических исследований и прогнозов для США и их владений, изучением мирового океана и атмосферы (из Википедии).

noise blanker технология маскирования импульсов шума путем замены их интерполированными, сглаженными выборками.

NVM Non-Volatile Memory, внутренняя энергонезависимая память IC.

PGA programmable gain amplifier, усилитель с программируемым коэффициентом усиления.

PLL phase locked loop, подстройка частоты с фазовой петлей обратной связи, ФАПЧ.

ppm part per million, количество на 1 миллион.

RAM Random Access Memory, оперативная память с произвольным доступом к ячейкам. Эта память не является энергонезависимой, её содержимое теряется при выключении.

RBDS Radio Broadcast Data System, система цифровой передачи информации по радио в северной Америке.

RCLK сигнал внешней опорной частоты.

RDS Radio Data System - многоцелевой стандарт, предназначенный для передачи информационных сообщений по каналам ЧМ-радиовещания в диапазоне УКВ. Нашёл наиболее широкое применение в автомобильных магнитолах/радиоприёмниках, для отображения на их дисплеях сопутствующей радиопередачам информации, передаваемой радиостанциями (из Википедии).

RESPn байт ответа (n = 1 .. 15).

RESPONSEn регистр ответа (16 бит) в режиме 3-Wire (n = 1 .. 8).

RF Radio Frequency, радиочастота.

RNL Received Noise Level, уровень принимаемого шума.

RPS radio positioning system, система компании Vodafone, которая впервые была анонсирована н Mobile World Congress в март 2018 г., использует 4G модем и SIM-карту, подключенный к дрону. Это позволяет искусственному интеллекту дрона самостоятельно обучаться окружающей обстановке и правильно позиционировать себя в пространстве.

RSQ Received Signal Quality, качество принимаемого сигнала.

RSSI received signal strength indication, индикация уровня принятого сигнала.

~RST или RSTb ножка сброса (Reset), активный уровень лог. 0.

SAME Specific Area Message Encoding, специальный протокол, используемый для разделения на кадры и классификации предупреждающих об угрозах широковещательных сообщений (broadcast emergency warning messages). Протокол был разработан национальной службой отслеживания погоды США (United States National Weather Service) для использовании в их сети NOAA Weather Radio (NWR), и позже был адаптирован федеральной комиссией по радиосвязи (Federal Communications Commission) для системы предупреждения об опасности (Emergency Alert System), и далее использовался организацией слежения за погодой Канады (Environment Canada) для службы Weatheradio Canada. Также используется для для запуска приемников в Мехико и прилегающих районах в рамках Мексиканской системы сейсмической тревоги (Mexican Seismic Alert System, SASMEX).

SCLK Serial CLocK, ножка сигнала тактов последовательного интерфейса.

SDIO Serial data in/data out, ножка последовательного ввода и вывода данных.

~SEN Serial Enable, ножка разрешения работы последовательного интерфейса, активный уровень лог. 0. Используется в качестве выборки в режимах 3-wire и SPI, либо используется как сигнал для выбора адреса в режиме интерфейса 2-wire (I2C).

SINAD signal-to-noise and distortion ratio, отношение сигнал / шум и коэффициент искажений, параметр оценки качества сигнала для устройств связи.

S/N signal/noise, сигнал/шум (то же самое, что и SNR).

SNR Signal/Noise Ratio, соотношение сигнал/шум (то же самое, что и S/N).

soft mute дословно "мягкое приглушение". Обозначает переход на малую громкость (или полное отключение звука), когда уровень сигнала слишком низкий. Это делается для того, чтобы пользователя не раздражал бесполезный шум в отсутствие принимаемого сигнала.

STATUS байт статуса (состояния) IC.

STC Seek/Tune Complete, сигнал завершения сканирования/настройки.

SW short wave, короткие волны (КВ).

THD total harmonic distortion, общие гармонические искажения.

U/D undesired to desired power ratio. Это параметр, характеризующий динамический диапазон радиоприемника по его способности подавлять нежелательный (undesired) сигнал при приеме желаемого (desired).

VCO voltage controlled oscillator, управляемый напряжением генератор.

WB weather band, диапазон вещания о погоде.

каскодный усилитель специальная разновидность двухтранзисторного усилителя. Транзисторы по постоянному току включаются столбиком, один над другим. Первый транзистор для малого сигнала включен по схеме с общим эмиттером, а второй - по схеме с общей базой (из Википедии).

[Ссылки]

1. AN332 Si47XX PROGRAMMING GUIDE site:silabs.com.
2. Si474x: интегральный тракт радиоприемника AM/FM.
3. Si47XX: руководство по программированию приемников FM.
4. Si47XX: руководство по программированию приемников AM.

 

Добавить комментарий


Защитный код
Обновить

Top of Page