Здесь размещен почти дословный перевод даташита на чип HOPE RF RF12B. На его основе сделаны недорогие миниатюрные модули для симплексной передачи данных на скорости до 256 кбит/сек - например трансиверы (это и приемник и передатчик) RFM12B.
В нашей стране свободно продаются (например в Москве - в "Терраэлектронике") модули на ISM частоты 434 и 868 МГц. Аббревиатура ISM означает industrial, scientific and medical - диапазон радиочастот для применения в промышленности, науке и медицине (т. е. они вроде как не требуют лицензирования при использовании на ограниченных мощностях). Я купил модули RFM12BS (модуль без штырей, с 14 контактами по краям платы под пайку) и RFM12B (12 штыревых выводов в 2 ряда для подключения разъема) на частоту 434 МГц. Эти микромодули изготовлены с использованием чипа RF12B.
[Общее описание]
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 - дистанционный беспроводный ключ для замка - контроль давления шины - телеметрия - персональное фоновое сохранение статистики - удаленное автоматическое чтение измерителей
[Подробное описание особенностей]
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 зависит от внешнего конденсатора фильтра.
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.
Электрические параметры, рекомендуемые режимы эксплуатации, временнЫе параметры, параметры антенны в этой статье не указаны, их лучше смотреть в оригинальном даташите на 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. Для идентификации источника прерывания нужно прочитать и проанализировать биты статуса.
[Команды управления (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).
[Описание команд управления]
Бит el разрешает какой-то внутренний регистр данных. Если регистр данных используется, то на ножку FSK нужно подать высокий логический уровень. Бит ef разрешает режим FIFO. Если ef=0, то DATA (выв. 6) и DCLK (выв. 7) используются как выход данных и выход для тактов данных соответственно.
Бит |
Назначение управляющего бита |
Связанные с битом блоки |
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:
Замечания: - если установлены оба бита et и er, чип находится в режиме приема. - вход FSK / nFFS оборудован внутренним pull-up резистором. Для того, чтобы достичь минимального энергопотребления, не подключайте в режиме сна (sleep) этот вход на землю (VSS).
12-битный параметр F (биты f11..f0) должен быть в диапазоне 96..3903. Если величина F установлена в величину, не попадающую в этот диапазон, то сохраняется старое значение параметра F. Частота синтезатора f0, соответствующая средней частоте рабочего диапазона, вычисляется по формуле: f0 = 10 * C1 * (C2 + F/4000) [МГц] Константы C1 и C2 выбираются в зависимости от выбранного диапазона по таблице:
Действительная скорость в режиме передачи и ожидаемая скорость в принимаемом потоке данных определяется 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) в передатчике и приемнике.
Бит 10 (p16) выбирает режим работы ножки 16 - если p16=0, то ножка 16 работает как вход прерывания (поведение по умолчанию), а если p16=1, то ножка 16 работает как выход VDI (Valid Data Indicator - индикатор верных данных). Биты 9..8 (d1..d0) устанавливают время ответа на сигнал:
Биты 7..5 (i2..i0) устанавливают полосу пропускания тракта приемника (BW):
Биты 4..3 (g1..g0) устанавливают коэффициент усиления для малошумящего усилителя LNA (Low Noise Amplifier):
Биты 2..0 (r2..r0) устанавливают порог срабатывания детектора RSSI:
Порог RSSI зависит от усиления LNA, и действительный порог можно посчитать по формуле: RSSIth = RSSIsetth + GLNA
Бит 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).
Биты 7..4 (f3..f0) устанавливают уровень прерывания (IT) по количеству принятых бит. FIFO генерирует прерывание, когда количество принятых бит достигло указанного в этом поле числа (по умолчанию 8). Бит 3 (sp) выбирает длину паттерна синхронизации:
Указание: Byte0 может быть запрограммирован командой Synchron Pattern Command. Бит 2 (al) указывает условие старта заполнения FIFO - при al=0 используется паттерн синхронизации, а при al=1 заполняться FIFO будет всегда.
Бит 1 (ff) - при ff=1 заполнение FIFO будет разрешено после приема паттерна синхронизации. Если ff=0, то заполнение FIFO будет остановлено.
Бит 0 (dr) - запрещает высокочувствительный режим RESET. Если этот бит очищен (по умолчанию), то выброс по питанию амплитудой 500 мВ может вызвать сброс системы.
Указание: для перезапуска распознавания паттерна синхронизации бит 1 (ff) должен быть очищен и установлен.
Этой командой может быть запрограммирован Byte0, используемый в паттерне синхронизации - биты 7..0 (b7..b0).
Этой командой микроконтроллер может прочитать 8 бит из FIFO приемника. При этом бит 6 (ef) должен быть установлен в Configuration Setting Command.
Указание: трансивер находится в режиме приема (RX), когда установлен бит er командой Power Management Command.
Указание: во время доступа к FIFO fSCK не может быть выше чем fref / 4, где fref равна частоте кварцевого резонатора. Если скважность тактового сигнала - не 50%, то самый короткий период импульса clk должен быть как минимум 2 / fref секунд.
Биты 7..6 (a1..a0) - селектор автоматического режима:
Биты 5..4 (rl1..rl0) - range limit (ограничение девиации частоты?). Ограничивает значение в регистре смещения частоты до следующих величин:
Здесь 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.
Указание: бит захвата равен 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.
Биты 8..4 (mp, m3..m0) - параметры модуляции FSK. Результирующая выходная частота может быть вычислена по формуле: fout = f0 + (-1)SIGN * (M+1) * 15 кГц, где f0 равна центральной частоте канала (см. команду Frequency Setting Command), M равно четырехбитному числу из m3..m0, SIGN равно (mp)XOR(бит данных).
Биты 2..0 (p2..p0) задают выходную мощность:
Выходная мощность, указанная в таблице, является относительной от максимально возможной мощности. Мощность также зависит от действительного сопротивления антенны.
Указание: значение регистра по умолчанию POR выбрана тщательно для того, чтобы удовлетворить большинству возможных применений.
Биты 6..5 (ob1..ob0) управление временем нарастания и спада выходного буфера тактов для микроконтроллера.
Указание: эти биты нужны для оптимизации производительности RF. Оптимальные установки могут меняться в зависимости от действительной внешней паразитной емкости.
Бит 4 (lpx) - когда этот бит установлен, то выбран режим низкого энергопотребления для кварцевого генератора.
Типичные условия: Top = 27 oC, Vdd = Voc = 2.7V, ESR кварца = 30 Ом.
Бит 3 (ddy) - если 1, то включает задержку в фазовом детекторе.
Бит 2 (ddit) - если 1, то запрещает дитчеринг (использование шума) в цикле PLL.
Биты 1..0 (bw1..bw0) - этими битами полоса PLL может быть установлена для оптимальной производительности TX RF.
Этой командой микроконтроллер может записать 8 бит (t7..t0) в регистр данных передачи. Бит 7 (el) должен быть установлен в команде Configuration Setting Command.
Запись нескольких байт командой Transmitter Register Write Command:
Указание: трансивер находится в режиме передачи (TX), когда бит er очищен командой Power Management Command. Указание: альтернативно регистр передачи может быть доступен через ножку nFFSEL (выв. 6).
Период времени просыпания (wake-up time) может быть вычислен в зависимости от значения битов m7..m0 и r4..r0: Twake-up = M * 2R [мс]
Указания: - для продолжительного функционирования бит ew должен быть очищен и установлен в конце каждого цикла. - для дальнейшей совместимости используйте R в диапазоне 0..29.
Эта команда может установить работу низкой скважности (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):
Указание: отдельные пакеты должны быть переданы на стороне TX для обеспечения безопасной работы приемника (действительное количество зависит от времени ожидания - idle time - временем между активными периодами и длины пакета).
Параметр из 5 бит (v4..v0) представляет величину V, которая задает порог напряжения Vlb детектора: Vlb = 2.2 + V * 0.1 [V]
Конфигурация делителя тактовой частоты микроконтроллера:
Детектор низкого напряжения батареи и выход тактов могут быть разрешены и запрещены битами eb и dc соответственно, с использованием команды Power Management Command.
Команда чтения начинается с нуля, в то время как все другие управляющие команды начинаются с единицы. Если команда чтения идентифицирована, то биты статуса будут выведены на ножку SDO следующим образом (пример последовательности чтения регистра статуса при чтении FIFO):
Примечания: * применимо, когда трансивер находится в режиме приема (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 (перед передачей):
Упрощенная блоковая диаграмма регистра TX (во время передачи):
Типичное использование регистра TX:
Указание: содержимое регистров данных инициализируется путем очистки бита 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:
Рекомендованные структуры пакета
|
Преамбула |
Синхрослово (может быть 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]:
[Процедуры совмещения частот 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. |
Комментарии
microsin: да никак, если у Вас нет специальной аппаратуры наподобие анализатора спектра с дешифратором протоколов. Если у Вас нет такой аппаратуры, то единственный выход для Вас - раздобыть где-то гарантированно рабочую пару приемник/передатчик. И уже на этой паре тестировать все остальные передатчики и при приемники, используя рабочую пару как эталон.
Найти рабочую пару приемник/передатчик совсем несложно. Достаточно взять готовый софт наподобие [5], прошить микроконтроллер ы, собрать макет и подключить к трансиверам. Собственно все.
microsin: о наличии модуля на шине можно судить по состоянию регистра статуса в ответ на выполнение различных операций с регистрами трансивера.
microsin: в разделе "CONTROL INTERFACE" написано, что данные вдвигаются в ножку SDI по фронту сигнала SCK, т. е. для защелкивания бит данных используется положительный перепад.
RSS лента комментариев этой записи