Администрирование Железо HOPE RF RF12B - универсальный FSK-трансивер диапазона ISM Sat, December 21 2024  

Поделиться

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

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


HOPE RF RF12B - универсальный FSK-трансивер диапазона ISM Печать
Добавил(а) microsin   

Здесь размещен почти дословный перевод даташита на чип HOPE RF RF12B. На его основе сделаны недорогие миниатюрные модули для симплексной передачи данных на скорости до 256 кбит/сек - например трансиверы (это и приемник и передатчик) RFM12B.

В нашей стране свободно продаются (например в Москве - в "Терраэлектронике") модули на ISM частоты 434 и 868 МГц. Аббревиатура ISM означает industrial, scientific and medical - диапазон радиочастот для применения в промышленности, науке и медицине (т. е. они вроде как не требуют лицензирования при использовании на ограниченных мощностях). Я купил модули RFM12BS (модуль без штырей, с 14 контактами по краям платы под пайку) и RFM12B (12 штыревых выводов в 2 ряда для подключения разъема) на частоту 434 МГц. Эти микромодули изготовлены с использованием чипа RF12B.

RFM12B.jpg

[Общее описание]

RF12B - одночиповый, маломощный, многоканальный FSK-трансивер, разработанный для удовлетворения требованиям FCC или ETSI при использовании нелицензируемых диапазонов 433, 868 и 915 МГц. Трансивер может работать либо в режиме передачи, либо в режиме приема (режимы переключаются командами, посылаемыми через управляющий  SPI-совместимый последовательный интерфейс), и в соответствии со сменой режима (прием меняется на передачу и наоборот) меняется и функциональное назначение некоторых ножек чипа. Для эффективной работы системы восстановления тактов данных CR желательно в потоке бит данных уменьшить длительность неизменного логического уровня (количество следующих друг за другом ноликов или единиц) - чем  чаще меняет свое состояние сигнал данных (ножка 6 FSK), тем лучше.

Микросхема трансивера почти не требует внешних деталей, поэтому модульный приемопередатчик на его основе получается миниатюрным и дешевым. В блоке приемника используется метод прямого преобразования (Zero-IF) с синфазной и квадратурной демодуляцией (I/Q), позволяющий использовать минимальное количество внешних элементов. В трансивере также применяется многодиапазонный PLL синтезатор, автонастройка усилителя мощности на антенну, малошумящий входной усилитель с переключаемым усилением, понижающие смесители для I/Q демодуляции, фильтры для основных частот и усилители, I/Q демодулятор, за которым следует фильтр данных. Микросхема имеет следующие возможности:
- PLL синтезатор высокого разрешения, который быстро устанавливается и программируется
- у трансивера есть возможность быстрой смены частоты (Fast frequency-hopping)
- высокая скорость - до 115.2 килобит/сек в цифровом режиме и до 256 килобит в аналоговом режиме
- вход/выход для прямого подключения дифференциальной антенны (просто 2 ножки, куда подключается петлевая антенна)
- встроенный усилитель мощности передатчика (PA)
- программируемая частота девиации передаваемых данных (TX) - 15..240 КГц
- программируемая частота пропускания приемника (RX) - 67..400 КГц
- аналоговые и цифровые выходы RSSI (received signal strength indication) - индикация уровня принятого сигнала
- автоматическая настройка частоты (AFC, automatic frequency control)
- DQD data quality detection - определение качества данных
- внутренняя фильтрация данных и восстановление тактовой частоты
- распознавание паттернов синхронизации RX
- интерфейс управления SPI
- предоставление тактов и сигнала сброса для микроконтроллера
- для RX организован FIFO из 16 бит
- два 8-битных регистра данных TX
- режим низкого энергопотребления
- стандартный кварц на 10 МГц
- таймер просыпания (wake-up)
- напряжение питания 2.2 - 3.8 вольт
- ток режима standby 0.3 мкА
- поддержка очень коротких пакетов (до 3 байт)
- отличная термостабильность для радиочастотных параметров

Типичные приложения для трансивера:
- дистанционное управление
- домашняя сигнализация
- беспроводные мыши, клавиатуры и другая периферия PC
- дистанционный беспроводный ключ для замка
- контроль давления шины
- телеметрия
- персональное фоновое сохранение статистики
- удаленное автоматическое чтение измерителей

hoperf01-func-block-diagram.GIF

[Подробное описание особенностей]

PLL

Программируемый PLL (Phase Looked Loop, ФАПЧ) синтезатор определяет рабочую частоту, и обеспечивает точность, определяемую кварцевым резонатором. Высокое разрешение при формировании частоты позволяет работать на многих каналах в любом из диапазонов.

PA (Power Amplifer)

Усилитель мощности имеет дифференциальный выход с открытым коллектором, который может быть подключен напрямую к петле антенны. Уровень выходной мощности программируется. Встроенный узел автоматической настройки антенны исключает "эффект рук" и исключает сложные ручные процедуры настройки.
   
LNA

Малошумящий входной усилитель имеет входной импеданс 250 Ом, который лучше подходит к предполагаемым антеннам. Если радиочастотный вход подключен к устройствам, имеющим сопротивление 50 Ом, то необходимы устройства согласования для оптимизации шума и чувствительности приемника. Усиление LNA может быть выбрано из четырех уровней (между 0 и -20 дб по отношению к максимальному усилению) в соответствии с уровнем входного сигнала. Это полезно при высоком уровне входных помех.

Baseband Filters (фильтры частот основного диапазона)

Полоса пропускания приемника выбирается программированием полосы (BW) у Baseband Filters. Это позволяет настроить характеристики приемника в соответствии с характеристиками принимаемого сигнала. Применен фильтр низкой частоты Баттерворта 7 порядка с ослаблением 40 дб на частоте 2*BW. Спад на высоких частотах компенсируется фильтром высокой частоты с частотой среза ниже 7 кГц.

Фильтрация данных и восстановление тактовой частоты

Фильтрация выходных данных осуществляется с помощью внешнего конденсатора либо с использованием цифровой фильтрации. Аналоговый режим: применяется аналоговый RC-фильтр низкой частоты, за которым следует триггер Шмитта. Резистор фильтра 10 кОм интегрирован в чип, а внешний конденсатор выбирается в соответствии с выбранной скоростью передачи данных. В аналоговом режиме приемник может обеспечить скорость до 256 килобит/сек, но в этом режиме невозможно использование FIFO и тактовая частота для демодуляции данных не предоставляется. Цифровой режим: применяется цифровой фильтр с тактовой частотой, в 29 раз превышающей скорость передачи данных. В этом режиме используется узел восстановления тактовой частоты (Clock Recovery, CR), который обеспечивает такты для принимаемых данных. Принимаемые данные могут заполнять 16-битный регистр FIFO. CR имеет 3 режима работы - fast, slow и auto. В режиме slow повышена устойчивость к помехам, но время входа в режим приема завышено. В автоматическом режиме имеется возможность переключаться между режимами fast и slow. При режиме auto узел CR начинает работать в режиме fast, а по мере поступления полезных данных переключается в режим slow. Тактовая частота для бит используется только узлом CR и цифровым фильтром данных. Для аналогового режима не нужно устанавливать правильную скорость для них.
   
Блоки проверки корректных данных

RSSI

Цифровой выход RSSI (индикация уровня принятого сигнала) позволяет отслеживать уровень сигнала. Он становится равным лог. 1, если сила принятого сигнала превышает запрограммированную заранее величину (прочитать этот цифровой сигнал RSSI можно путем чтения регистра статуса). Также имеется выход аналогового сигнала RSSI (ножка 15). Время установки RSSI зависит от внешнего конденсатора фильтра.

hoperf02-RSSI-voltage.GIF

DQD

DQD расшифровывается как Data Quality Detector. Его работа основана на подсчете коротких импульсов - "иголок" в нефильтрованных принятых данных. Выходной сигнал высокого уровня показывает, что передатчик FSK работает от местного кварца в пределах пропускания фильтра основной полосы частот.

AFC

AFC расшифровывается как Automatic Frequency Control (автоподстройка частоты). Благодаря этой особенности приемник может минимизировать смещение TX/RX в дискретные шаги, что позволяет использовать:
- зауженную полосу пропускания приемника (что увеличивает чувствительность)
- более высокую скорость передачи данных
- недорогие кварцевые резонаторы

Кварц

Чип RF12B имеет только одну ножку для подключения кварца (вторая ножка кварца подключается к общему проводу). Кварц нужен для получения задающей частоты 10 МГц, используемой PLL. Для уменьшения количества внешних элементов конденсатор нагрузки кварца сделан внутренним, и его емкость программируется. Трансивер может предоставлять тактовую частоту для микроконтроллера, что позволяет не использовать второй кристалл.

Когда микроконтроллер выключает кварцевый генератор путем очистки соответствующего бита командой Configuration Setting Command, чип продолжает выдавать фиксированное количество тактовых импульсов (196) - так называемый "clock tail" для микроконтроллера, что позволяет ему войти в режим сна (sllep mode). Если тактовый выход не используется (например, микроконтроллер имеет собственный кварцевый резонатор), отключите выходной буфер командой Power Management Command.

Детектор низкого напряжения батареи

Детектор низкого напряжения батареи мониторит напряжение питания и генерирует прерывание, если напряжение падает ниже программируемого порога. Детектор имеет гистерезис 50 мВ.

Таймер просыпания (Wake-Up)

Таймер Wake-Up потребляет всего лишь 1.5 мкА, и может быть запрограммирован на длительность от 1 мс до нескольких дней, с точностью +-5%. Таймер калибрует сам себя по кварцу при каждом старте чипа, а также каждые 30 секунд. Когда кварцевый генератор выключен, узел калибровки включает его обратно через большие промежутки времени только для быстрой калибровки (несколько миллисекунд) для повышения точности отсчета времени просыпания, что уменьшает зависимость отсчета времени просыпания от температуры и напряжения питания.

Обработка событий

Для снижения энергопотребления трансивер поддерживает различные режимы сохранения энергии. Активация (выход из режима снижения энергии) может происходить с помощью разных wake-up событий - отрицательный импульс на входе nINT, таймаут таймера Wake-Up, определение низкого напряжения питания, заполнение FIFO приемника или прием запроса через интерфейс SPI. Если происходит любое пробуждающее событие, логика wake-up генерирует сигнал прерывания, который может использоваться для пробуждения микроконтроллера - это позволяет эффективно уменьшить время активного состояния микроконтроллера. Источник прерывания (пробуждения) может быть прочитан микроконтроллером через ножку SDO.

Интерфейс и контроллер

SPI-совместимый последовательный интерфейс позволяет пользователю выбрать частотный диапазон, центральную частоту синтезатора, полосу пропускания тракта приема. Также программируются частота деления тактов для микроконтроллера, период таймера Wake-Up, порог срабатывания детектора снижения напряжения питания. Любые из этих дополнительных функций могут быть запрещены, если они не используются. После включения питания все параметры сбрасываются в свои значения по умолчанию. В режиме сна все параметры сохраняют свои запрограммированные ранее значения. Интерфейс позволяет прочитать регистр статуса, предоставляющего детальную информацию о состоянии трансивера и принятых данных.

Блок передатчика снабжен двумя 8-битовыми регистрами передачи TX. Можно ускоренно записать 8 бит в регистр передачи, и внутренний генератор скорости передачи передаст их с заранее заданной скоростью. Также возможно сохранять принятые приемником биты данных в регистр FIFO и читать их оттуда в буферизированном режиме.

Таблица ножек чипа RF12B (в типе ножек используют следующие обозначения – D=digital, A=analog, S=supply [питание], I=input, O=output, I/O=input/output).

ножка имя тип функция
1 SDI DI вход последовательного интерфейса управления (SPI-совместимого)
2 SCK DI вход тактов последовательного интерфейса управления (SPI-совместимого)
3 nSEL DI вход выборки (chip select) последовательного интерфейса управления (SPI-совместимого), активный уровень 0
4 SDO DO выход последовательного интерфейса управления (SPI-совместимого) с удержанием шины
5 nIRQ DO выход для запроса на прерывание, активный уровень 0 (для подачи прерывания на микроконтроллер)
6 FSK DI вход для подачи передаваемых данных FSK (имеет внутренний pull-up резистор 133 кОм)
DATA DO выход принимаемых данных (FIFO не используется)
nFFS DI вход выбора FIFO (активный уровень 0) в режиме FIFO, когда бит ef установлен командой Configuration Setting Command
7 DCLK DO такты для принимаемых данных (используется цифровой фильтр, FIFO не используется)
CFIL AIO подключение внешнего конденсатора для аналогового фильтра (используется аналоговый фильтр)
FFIT DO прерывание FIFO (активный уровень 1) - срабатывает, когда в RX FIFO пришло предустановленное количество бит (порог для прерывания)
8 CLK DO выход тактов для микроконтроллера
9 XTL AIO ножка для подключения кристалла (другой вывод кристалла подключается к VSS), или вход для внешней тактовой частоты (10 МГц)
REF AIO вход для внешней опорной частоты. Используйте развязывающий конденсатор 33 пФ.
10 nRES DIO выход сброса с открытым стоком с внутренним pull-up и входным буфером (активный уровень 0)
11 VSS S земля, минус напряжения питания
12 RF2 AIO RF сигнал (для подключения антенны)
13 RF1 AIO RF сигнал (для подключения антенны)
14 VDD S плюс напряжения питания
15 ARSSI AO аналоговый выход RSSI
16 nINT DI вход прерывания (активный уровень 0)
VDI DO выход индикации правильных данных

Указание: режим ножек, которые имеют много функций (ножка 6 и 7) зависит от установок трансивера TX/RX data I/O.

hoperf03-pin6-pin10.GIF

hoperf04-typical-app-FIFO.GIF

hoperf05-modes.GIF 
Электрические параметры, рекомендуемые режимы эксплуатации, временнЫе параметры, параметры антенны в этой статье не указаны, их лучше смотреть в оригинальном даташите на RF12B (см. ссылки в конце статьи).

CONTROL INTERFACE (интерфейс управления)

Команды в трансмиттер отправляются последовательно. Биты данных вдвигаются в ножку SDI по фронту тактов на ножке SCK, когда логический уровень на ножке nSEL равен 0. Уровень 1 на nSEL инициализирует последовательный интерфейс. Все команды состоят из кода команды и следующих за ним различных параметров или бит данных. Все данные посылаются старшим битом (MSB) вперед, например для 16-битной команды первым будет бит с номером 15. Биты, значение которых ни на что не влияет, помечаются символом X. Узел сброса при включении питания (POR, или Power On Reset) устанавливает во все регистры управления и команд значения по умолчанию.

Приемник будет генерировать прерывание (IT) для микроконтроллера - путем выставления на ножке nIRQ нуля - при следующих событиях:
- регистр TX готов к приему следующего байта (RGIT)
- FIFO принял предварительно запрограммированное количество бит (FFIT)
- Power-on reset (POR)
- переполнение FIFO (FFOV) / недогрузка регистра TX (RGUR)
- таймаут таймера Wake-Up
- отрицательный импульс на входе внешнего прерывания nINT (EXT)
- значение напряжения питания находится ниже запрограммированной величины (LBD)

События FFIT и FFOV работают тогда, когда разрешен FIFO. RGIT и RGUR работают только тогда, когда разрешен регистр TX. Для идентификации источника прерывания нужно прочитать и проанализировать биты статуса.

hoperf06-timing.GIF

[Команды управления (Control Commands)]

  Команда управления Связанные с командой параметры/функции Связанные с командой управляющие биты
1 Configuration Setting Command частотный диапазон, емкость нагрузки для кварца, полоса пропускания основного тракта и т. д. el, ef, b1..b0, x3..x0
2 Power Management Command изменение режима приемника и передатчика, синтезатора, кварцевого генератора, PA, таймера Wake-Up, разрешение тактового выхода er, ebb, et, es, ex, eb, ew, dc
3 Frequency Setting Command частота данных и сигнал локального генератора/несущей f11..f0
4 Data Rate Command скорость данных cs, r6..r0
5 Receiver Control Command режим функционирования ножки 16, индикатор правильных данных, полоса пропускания основного тракта, усиление LNA, порог цифрового RSSI p16, d1..d0, i2..i0, g1..g0, r2..r0
6 Data Filter Command тип фильтра данных, параметры восстановления тактовой частоты al, ml, s1..s0, f2..f0
7 FIFO и Reset Mode Command уровень данных FIFO IT, управление стартом FIFO, разрешение FIFO и разрешение заполнения FIFO f3..f0, s1..s0, ff, fe
8 Receiver FIFO Read Command этой командой можно прочитать RX FIFO  
9 Synchron Pattern Command паттерн синхронизации b7..b0
10 AFC Command параметры AFC (автоматической настройки частоты) a1..a0, rl1..rl0, st, fi, oe, en
11 TX Configuration Control Command параметры модуляции, выходной мощности и другие mp, m3..m0, p2..p0
12 PLL Setting Command скорость выходного буфера CLK, режим пониженного потребления кварцевого генератора, дитчеринг (добавление шума), задержка цикла LOOP, полоса пропускания ob1..ob0, lpx, ddit, ddy, bw1..bw0
13 Transmitter Register Write Command регистр данных TX может быть записан этой командой t7..t0
14 Wake-Up Timer Command период срабатывания (время таймаута) таймера Wake-Up r4..r0, m7..m0
15 Low Duty-Cycle Command разрешение режима low duty-cycle. Установка duty-cycle d6..d0, en
16 Low Battery Detector (LBD) и Microcontroller Clock Divider Command напряжение LBD и коэффициент деления для тактов микроконтроллера d2..d0, v4..v0
17 Status Read Command этой командой читают биты статуса  

Обычно установка бита включает соответствующую функцию. В таблицах, которые будут далее, столбец POR указывает значение бит по умолчанию, которое устанавливается после сброса после включения питания (POR == Power On Reset).

[Описание команд управления]

hoperf07-cmd01.GIF

Бит el разрешает какой-то внутренний регистр данных. Если регистр данных используется, то на ножку FSK нужно подать высокий логический уровень. Бит ef разрешает режим FIFO. Если ef=0, то DATA (выв. 6) и DCLK (выв. 7) используются как выход данных и выход для тактов данных соответственно.

hoperf08-freq-band.GIF

hoperf09-crystal-load-cap-pgm.GIF

hoperf10-cmd02.GIF

Бит Назначение управляющего бита Связанные с битом блоки
er Разрешает работу приемника в целом RF front end, основной тракт, синтезатор, генератор
ebb Основной тракт (baseband) приемника может быть включен отдельно Baseband
et Включение передатчика – PLL, усилителя мощности PA, запуск передачи (если разрешен регистр TX) PA, синтезатор, генератор
es Включение синтезатора Синтезатор
ex Включение кварцевого генератора Кварцевый генератор
eb Включает детектор разряженного состояния батареи Low battery detector
ew Разрешает таймер Wake-Up Таймер Wake-Up
dc Запрещает выход тактов (выв. 8) Буфер выхода тактов

Биты ebb, es и ex обеспечивают возможность оптимизации переключения между режимами TX -> RX и RX -> TX и обратно. Логика работы битов Power Management:

hoperf11-power-mgmt-bits.GIF

Замечания:
- если установлены оба бита et и er, чип находится в режиме приема.
- вход FSK / nFFS оборудован внутренним pull-up резистором. Для того, чтобы достичь минимального энергопотребления, не подключайте в режиме сна (sleep) этот вход на землю (VSS).

hoperf12-cmd03.GIF

12-битный параметр F (биты f11..f0) должен быть в диапазоне 96..3903. Если величина F установлена в величину, не попадающую в этот диапазон, то сохраняется старое значение параметра F. Частота синтезатора f0, соответствующая средней частоте рабочего диапазона, вычисляется по формуле:
f0 = 10 * C1 * (C2 + F/4000) [МГц]
Константы C1 и C2 выбираются в зависимости от выбранного диапазона по таблице:

hoperf13-freq-set-constants.GIF

hoperf14-cmd04.GIF

Действительная скорость в режиме передачи и ожидаемая скорость в принимаемом потоке данных определяется 7-битным параметром R (биты r6..r0) и битом cs.
BR = 10000 / 29 / (R+1) / (1 + cs * 7) [килобит/сек]
В приемнике R соответствует следующей функции:
R = (10000 / 29 / (1 +  cs * 7) / BR) – 1, где BR равна ожидаемой скорости в килобитах в секунду.
Кроме установки произвольных скоростей, стандартные скорости в диапазоне от 600 bps до 115.2 kbps могут быть аппроксимированы с малой ошибкой.
Требования к точности скорости данных:
- восстановление тактов в slow mode:  delta BR / BR < (1 / (29 * Nbit))
- восстановление тактов в fast mode:  delta BR / BR < (3 / (29 * Nbit))
Здесь BR равна скорости, установленной в приемнике и ? BR равна разности скоростей в передатчике и приемнике. Nbit равен максимальному количеству следующих друг за другом нолей или единиц в потоке данных. Рекомендуется в больших пакетах данных включать несколько переходов 1 -> 0 и 0 -> 1, и использовать одинаковые параметры (division ratio) в передатчике и приемнике.

hoperf15-cmd05.GIF

Бит 10 (p16) выбирает режим работы ножки 16 - если p16=0, то ножка 16 работает как вход прерывания (поведение по умолчанию), а если p16=1, то ножка 16 работает как выход VDI (Valid Data Indicator - индикатор верных данных).

Биты 9..8 (d1..d0) устанавливают время ответа на сигнал:

hoperf16-VDI-response-time.GIF

hoperf17-receiver-control-bits.GIF

Биты 7..5 (i2..i0) устанавливают полосу пропускания тракта приемника (BW):

hoperf18-BW-select.GIF

Биты 4..3 (g1..g0) устанавливают коэффициент усиления для малошумящего усилителя LNA (Low Noise Amplifier):

hoperf19-LNA-gain.GIF

Биты 2..0 (r2..r0) устанавливают порог срабатывания детектора RSSI:

hoperf20-RSSI-threshold.GIF

Порог RSSI зависит от усиления LNA, и действительный порог можно посчитать по формуле:
RSSIth = RSSIsetth + GLNA

hoperf21-cmd06.GIF

Бит 7 (al) если равен 1, то включает автоматическое переключение режима восстановления тактовой частоты CR – восстановление тактов стартует в fast mode, а после захвата данных переходит в slow mode.

Бит 6 (ml) управляет захватом восстановления тактов данных CR – если ml=1, то работает fast mode (быстрая атака и быстрое отпускание, в этом случае рекомендуется использовать преамбулу 010101… из 6..8 бит), а если ml=0, то работает slow mode (медленная атака и медленное отпускание, в этом случае рекомендуется использовать преамбулу 010101… из 12..16 бит). Использование slow mode требует более точного формирования интервалов времени бит (см. команду Data Rate Command).

hoperf22-cmd07.GIF

Биты 7..4 (f3..f0) устанавливают уровень прерывания (IT) по количеству принятых бит. FIFO генерирует прерывание, когда количество принятых бит достигло указанного в этом поле числа (по умолчанию 8).

Бит 3 (sp) выбирает длину паттерна синхронизации:

hoperf23-sync-pattern-len.GIF

Указание: Byte0 может быть запрограммирован командой Synchron Pattern Command.

Бит 2 (al) указывает условие старта заполнения FIFO - при al=0 используется паттерн синхронизации, а при al=1 заполняться FIFO будет всегда.

hoperf24-FIFO-and-reset-logic.GIF

Бит 1 (ff) - при ff=1 заполнение FIFO будет разрешено после приема паттерна синхронизации. Если ff=0, то заполнение FIFO будет остановлено.

Бит 0 (dr) - запрещает высокочувствительный режим RESET. Если этот бит очищен (по умолчанию), то выброс по питанию амплитудой 500 мВ может вызвать сброс системы.

Указание: для перезапуска распознавания паттерна синхронизации бит 1 (ff) должен быть очищен и установлен.

hoperf25-cmd08.GIF

Этой командой может быть запрограммирован Byte0, используемый в паттерне синхронизации - биты 7..0 (b7..b0).

hoperf26-cmd09.GIF

Этой командой микроконтроллер может прочитать 8 бит из FIFO приемника. При этом бит 6 (ef) должен быть установлен в Configuration Setting Command.

hoperf27-read-FIFO-diagram.GIF

Указание: трансивер находится в режиме приема (RX), когда установлен бит er командой Power Management Command.

Указание: во время доступа к FIFO fSCK не может быть выше чем fref / 4, где fref равна частоте кварцевого резонатора. Если скважность тактового сигнала - не 50%, то самый короткий период импульса clk должен быть как минимум 2 / fref секунд.

hoperf28-cmd10.GIF

Биты 7..6 (a1..a0) - селектор автоматического режима:

hoperf29-auto-mode-select.GIF

Биты 5..4 (rl1..rl0) - range limit (ограничение девиации частоты?). Ограничивает значение в регистре смещения частоты до следующих величин:

hoperf30-deviation-select.GIF

Здесь fres равна для диапазонов 315, 433 МГц – 2.5 кГц, для диапазона 868 МГц – 5 кГц, для диапазона 915 МГц – 7.5 кГц.

Бит 3 (st) - перепад для строба - когда st становится в лог. 1, актуальная последняя вычисленная ошибка частоты сохраняется в регистр смещения блока AFC (автоподстройки частоты).

Бит 2 (fi) - переключает схему в в режим высокой точности (fine mode). В этом случае время обработки примерно в два раза больше, но неточность измерения уменьшается примерно наполовину.

Бит 1 (oe) - разрешает работу регистра смещения частоты. Это разрешает добавление регистра смещения к управляющему частотой слову PLL.

Бит 0 (en) - разрешает вычисление частоты смещения схемой AFC.

hoperf31-AFC-VDI-diag.GIF

Указание: бит захвата равен 1, когда петля AFC замкнута, и бит f_same показывает, что два следующих друг за другом измерения одинаковы. Бит toggle меняет свое состояние с каждым циклом измерения.

В автоматическом режиме (не нужен сигнал строба от микроконтроллера для обновления выход регистра смещения) схема AFC автоматически разрешена, когда VDI показывает потенциал приходящего сигнала во время целого цикла измерения и схема измеряет тот же самый результат в двух последовательных циклах.

Три режима функционирования на примерах возможного применения:

1. (a1=0, a0=1) схема измеряет смещение частоты только один раз после включения питания. В этом случае может быть получено максимальное расстояние TX-RX. Возможные применения – в законченном приложении, когда пользователь вставляет батарею питания, схема измеряет и компенсирует смещение частоты, полученное из-за смещения частоты кварца от номинальной частоты. Этот метод позволяет использовать дешевый кварц и обеспечивает защиту от вмешательства помех.

2a. (a1=1, a0=0) схема автоматически измеряет смещение частоты во время начального эффективного паттерна низкой скорости (простого для приема, например 00110011) пакета и меняет частоту приема соответственно. Остальная часть пакета может быть принята при скорректированной частоте.
2b. (a1=1, a0=0) передатчик должен передавать первую часть пакета с максимально возможной девиацией частоты, а потом девиацию нужно уменьшить.

В обоих случаях 2a и 2b, когда VDI показывает плохой прием (VDI получает низкий уровень), выходной регистр автоматически очищается. Используйте эти установки, когда принимаемые сигналы от различных передатчиков передают на одинаковых номинальных частотах.

3. (a1=1, a0=1) то же самое, что и режимы 2a и 2b, но этот режим предлагается использовать, когда приемник работает только с одним передатчиком. После цикла измерения измеренная величина сохраняется, независимо от состояния сигнала VDI.

hoperf32-cmd11.GIF

Биты 8..4 (mp, m3..m0) - параметры модуляции FSK. Результирующая выходная частота может быть вычислена по формуле:
fout = f0 + (-1)SIGN * (M+1) * 15 кГц, где f0 равна центральной частоте канала (см. команду Frequency Setting Command), M равно четырехбитному числу из m3..m0, SIGN равно (mp)XOR(бит данных).

hoperf33-fOUT-set.GIF

Биты 2..0 (p2..p0) задают выходную мощность:

hoperf34-PA-power-set.GIF

Выходная мощность, указанная в таблице, является относительной от максимально возможной мощности. Мощность также зависит от действительного сопротивления антенны.

hoperf35-cmd12.GIF

Указание: значение регистра по умолчанию POR выбрана тщательно для того, чтобы удовлетворить большинству возможных применений.

Биты 6..5 (ob1..ob0) управление временем нарастания и спада выходного буфера тактов для микроконтроллера.

hoperf36-PLL-timing.GIF

Указание: эти биты нужны для оптимизации производительности RF. Оптимальные установки могут меняться в зависимости от действительной внешней паразитной емкости.

Бит 4 (lpx) - когда этот бит установлен, то выбран режим низкого энергопотребления для кварцевого генератора.

hoperf37-low-power-mode.GIF

Типичные условия: Top = 27 oC, Vdd = Voc = 2.7V, ESR кварца = 30 Ом.

Бит 3 (ddy) - если 1, то включает задержку в фазовом детекторе.

Бит 2 (ddit) - если 1, то запрещает дитчеринг (использование шума) в цикле PLL.

Биты 1..0 (bw1..bw0) - этими битами полоса PLL может быть установлена для оптимальной производительности TX RF.

hoperf38-PLL-perf.GIF

hoperf39-cmd13.GIF

Этой командой микроконтроллер может записать 8 бит (t7..t0) в регистр данных передачи. Бит 7 (el) должен быть установлен в команде Configuration Setting Command.

Запись нескольких байт командой Transmitter Register Write Command:

hoperf40-TX-write-diag.GIF
Указание: трансивер находится в режиме передачи (TX), когда бит er очищен командой Power Management Command.
Указание: альтернативно регистр передачи может быть доступен через ножку nFFSEL (выв. 6).

hoperf41-cmd14.GIF

Период времени просыпания (wake-up time) может быть вычислен в зависимости от значения битов m7..m0 и r4..r0:
Twake-up = M * 2R [мс]

Указания:
- для продолжительного функционирования бит ew должен быть очищен и установлен в конце каждого цикла.
- для дальнейшей совместимости используйте R в диапазоне 0..29.

hoperf42-cmd15.GIF

Эта команда может установить работу низкой скважности (Low Duty-Cycle) с целью уменьшить среднюю потребляемую мощность в режиме приема. Время цикла задается командой Wake-Up Timer Command.
Duty-Cycle = (D * 2 + 1) / M * 100%

Бит 0 (en) - разрешает режим Low Duty-Cycle. В этом режиме таймер Wake-Up не генерирует прерывание.
Указание: в этом режиме бит er должен быть очищен и бит ew установлен в команде Power Management Command.

Предложение по применению приемников в режиме LPDM (Low Power Duty-Cycle Mode):

hoperf43-receiver-app-LPDM.GIF

Указание: отдельные пакеты должны быть переданы на стороне TX для обеспечения безопасной работы приемника (действительное количество зависит от времени ожидания - idle time - временем между активными периодами и длины пакета).

hoperf44-cmd16.GIF

Параметр из 5 бит (v4..v0) представляет величину V, которая задает порог напряжения Vlb детектора:
Vlb = 2.2 + V * 0.1 [V]

Конфигурация делителя тактовой частоты микроконтроллера:

hoperf45-clock-output-select.GIF

Детектор низкого напряжения батареи и выход тактов могут быть разрешены и запрещены битами eb и dc соответственно, с использованием команды Power Management Command.

hoperf46-cmd17.GIF

Команда чтения начинается с нуля, в то время как все другие управляющие команды начинаются с единицы. Если команда чтения идентифицирована, то биты статуса будут выведены на ножку SDO следующим образом (пример последовательности чтения регистра статуса при чтении FIFO):

hoperf47-status-read-diag.GIF

Примечания:
* применимо, когда трансивер находится в режиме приема (RX), другими словами - бит er установлен командой Power Management Command.
** применимо, когда бит er очищен командой Power Management Command.

RGIT регистр TX готов для приема следующего байта (бит RGIT может быть очищен командой Transmitter Register Write Command)
FFIT количество бит данных в RX FIFO достигло предварительно запрограммированного предела (бит может быть очищен любым методом чтения FIFO)
POR power-on reset (очищается командой Status Read Command)
RGUR регистр TX недогружен (under run), регистр в процессе записи (очищается командой Status Read Command)
FFOV переполнение (overflow) RX FIFO (очищается командой Status Read Command)
WKUP переполнение таймера Wake-Up (очищается командой Status Read Command)
EXT логический уровень на ножке прерывания (выв. 16) изменился на 0 (очищается командой Status Read Command)
LBD определено низкое напряжение батареи, напряжение питания ниже запрограммированного предела
FFEM FIFO пуст (empty)
ATS узел настройки антенны обнаружил достаточно сильный радиосигнал RF
RSSI уровень приходящего сигнала превышает предварительно запрограммированный предел
DQD выход детектора качества данных
CRL произошел захват восстановления тактов
ATGL переключается с каждым циклом AFC
OFFS(6) MSB (старший бит) измеренного смещения частоты (знак величины смещения)
OFFS(3)
..OFFS(0)
величина смещения для добавления к величине параметра управления частотой (четыре младших LSB бита)

[Буферизированная передача данных в регистр TX]

В этом рабочем режиме (режим включается битом el в команде Configuration Control Command) данные TX вдвигаются в один из двух 8-битных регистров данных. Передатчик начинает передачу данных из первого регистра (с указанной скоростью - bit rate), когда бит et установлен командой Power Management Command. Начальное значение регистров данных (AAh) может использоваться для генерации преамбулы. Во время этого режима ножка SDO может опрашиваться для проверки - готов ли регистр к приему следующего байта от микроконтроллера.

Упрощенная блоковая диаграмма регистра TX (перед передачей):

hoperf48-TX-reg-diag-before.GIF

Упрощенная блоковая диаграмма регистра TX (во время передачи):

hoperf49-TX-reg-diag.GIF

Типичное использование регистра TX:

hoperf50-TX-reg-typical-usage.GIF

Указание: содержимое регистров данных инициализируется путем очистки бита et.

[Буферизированное чтение данных RX FIFO]

В этом рабочем режиме приходящие по радио данные вдвигаются в 16-битный буфер FIFO. Приемник начинает заполнение FIFO, когда бит индикатора верных данных VDI и узел распознавания паттерна синхронизации показывают на потенциально реальные приходящие данные. Это предотвращает заполнение FIFO шумом и перегрузку внешнего микроконтроллера. Чтение данных возможно в двух режимах - по прерыванию и по опросу.

Режим по прерыванию – пользователь может задать уровень прерывания FIFO (количество принятых бит), который будет генерировать прерывание nFFIT, когда уровень будет превышен. В этом случае биты статуса сообщают об изменении состояния FIFO.

Режим опроса – когда сигнал nFFS становится равным 0, выход FIFO подсоединяется напрямую к выводу SDO, и содержимое FIFO может быть выведено наружу путем подачи тактов на ножку SCK. Уровень FIFO IT устанавливается в 1. В этом случае, пока FFIT указывает полученные биты в в порядке поступления, микроконтроллер может продолжить вычитывать биты. Когда FFIT становится равным 0, то больше бит для получения нет. Также для чтения FIFO доступна команда SPI read command.

Пример чтения FIFO в режиме опроса FFIT:

hoperf51-FIFO-read-FFIT.GIF

Рекомендованные структуры пакета

  Преамбула Синхрослово (может быть network ID) Полезная нагрузка (payload) CRC
min длина 4..8 бит (1010b или 0101b) D4h (программируется) ? 4 бита – 1 байт
рекомендованная длина 8..12 бит (например AAh или 55h) 2DD4h (D4 программируется) ? 2 байта

[Руководство по выбору кварцевого резонатора]

Кварцевый генератор чипа RF12B требует кварца частотой 10 МГц, работающего в параллельном режиме (на частоте параллельного резонанса). Схема в чипе содержит встроенный конденсатор нагрузки – с целью уменьшить необходимое количество внешних компонентов. Внутренняя емкость нагрузки программируется в в диапазоне 8.5 пФ .. 16 пФ с шагом 0.5 пФ. При соответствующей разводке печатной платы общая емкость нагрузки может быть от 10 до 20 пФ – в зависимости от типа используемого резонатора.

Когда общая емкость нагрузки не более 20 пФ, и ожидаемая в самом плохом случае емкость шунтирования кварца (Co) равна 7 пФ, генератор сможет запуститься с кварцевым резонатором, у которого эквивалентное последовательное сопротивление ESR менее 300 Ом. Однако чем меньше значения Co и ESR, тем быстрее гарантированно запустится генератор.

Частота кварца используется как опорная для PLL, которая генерирует частоту местного генератора (fLO). Таким образом, частота fLO прямо пропорциональна частоте кварца. Требования к точности, зависящие от допусков производства, температурного смещения и старения могут быть определены из максимально допустимой ошибки частоты локального генератора.

Всякий раз, когда нужно скомпенсировать ошибку частоты, можно подстроить частоту кварцевого генератора путем изменения емкости нагрузки. Наилучший диапазон регулирования получается тогда, когда номинальная емкость конденсатора нагрузки находится «посередине», например 16 пФ.

Максимальные допуски XTAL, учитывающие температуру и старение [ppm]:

hoperf52-XTAL-tolerance2_4.GIF

hoperf53-XTAL-tolerance9_6.GIF

hoperf54-XTAL-tolerance38_4.GIF

hoperf55-XTAL-tolerance115_2.GIF

[Процедуры совмещения частот RX-TX]

Смещение между частотами приема (RX) и передачи (TX) может быть вызвано только из-за разницы опорных частот (вырабатываемых кварцевым генератором). Для минимизации этих ошибок рекомендуется использовать кварцы одинакового типа и одинаковую разводку печатной платы на стороне передачи и приема.

Для проверки возможного смещения частоты RX-TX рекомендуется измерить частоту на выходе CLK с максимально возможной точностью. Не измеряйте частоту на ножке XTL, поскольку это вызовет изменение частоты.

Можно контролировать смещение RX-TX используя AFC status report в байте статуса приемника. Путем чтения байта статуса приемника можно получить действительное смещение частоты. Для того, чтобы точно прочитать значения, необходимо при чтении запретить AFC путем очистки бита en командой AFC Control Command (бит 0).

[Термины]

AFC automatic frequency control - автоматическая настройка частоты
CR Clock Recovery - восстановление из потока данных тактового сигнала бит
DQD data quality detection - определение качества данных
ESR equal serial resistance - эквивалентное последовательное сопротивление (кварца)
FSK  frequency shift keying - частотная манипуляция
ISM industrial, scientific and medical - диапазон радиочастот для применения в промышленности, науке и медицине.
I/Q down converter mixer - in-phase/quadrature понижающий смеситель
LNA low-noise amplifier - малошумящий усилитель
LPDM Low Power Duty-Cycle Mode - режим малого потребления приемника
LSB least significant bit - младший бит
MSB most significant bit - старший бит
ppm parts per million - сколько частиц (или чего-то) на миллион
pull-up нагрузочный резистор, подключенный между плюсом питания и выводом сигнала
RF radio frequency - радиочастота, радиосигнал
RSSI received signal strength indication - индикация уровня принятого сигнала
Zero-IF прямое преобразование - термин относится к методу работы схемы радиоприемника

[Ссылки]

1. RF Modules site:www.hoperf.com.
2. RF12B datasheet site:www.hoperf.com - даташит на чип RF12B.
3. Руководство по выбору: 433МГц и 868МГц FSK-радиомодули HopeRF.
4. 2,4ГГц GFSK-радиомодули Spirit-ON серии TR24 и чип EM198810AW от Elan Microelectronics, на котором они основаны.
5. V-USB: беспроводный сенсор температуры и влажности с интерфейсом USB.

 

Комментарии  

 
0 #4 goga 09.06.2014 22:40
Как убедиться, что передатчик действительно передает в эфир? Как узнать в чем дело, если система не работает? Ошибки типа передатчик не передает, приемник не принимает - практически неразличимы.

microsin: да никак, если у Вас нет специальной аппаратуры наподобие анализатора спектра с дешифратором протоколов. Если у Вас нет такой аппаратуры, то единственный выход для Вас - раздобыть где-то гарантированно рабочую пару приемник/передатчик. И уже на этой паре тестировать все остальные передатчики и при приемники, используя рабочую пару как эталон.

Найти рабочую пару приемник/передатчик совсем несложно. Достаточно взять готовый софт наподобие [5], прошить микроконтроллер ы, собрать макет и подключить к трансиверам. Собственно все.
Цитировать
 
 
0 #3 goga 07.05.2014 20:45
Каким образом микроконтроллер может проверить, что РЧ модуль RFM12B действительно присутствует на шине SPI? Не исключена ситуация, что РЧ модуль RFM12B может отвалиться во время работы.

microsin: о наличии модуля на шине можно судить по состоянию регистра статуса в ответ на выполнение различных операций с регистрами трансивера.
Цитировать
 
 
0 #2 goga 02.05.2014 20:12
Какой перепад сигнала синхронизации SCK защелкивает данные в SPI РЧ модуля RFM12B положительный или отрицательный?

microsin: в разделе "CONTROL INTERFACE" написано, что данные вдвигаются в ножку SDI по фронту сигнала SCK, т. е. для защелкивания бит данных используется положительный перепад.
Цитировать
 
 
0 #1 Александр 03.11.2011 03:09
Спасибо за подробную информацию, хоть что то начал понимать. Который день ищу подобное о микросборке rx-mid-3v, и бесполезно, видать придётся выписать описанную Вами сборку.
Цитировать
 

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


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

Top of Page