RadioRadar - Радиоэлектроника, даташиты, схемы

http://radioradar.net/hand_book/documentation/at86rf211.html

Приемопередатчик радиодиапазона AT86RF211 фирмы Atmel

Предисловие

Прибор AT86RF211 компании Атмел, ранее известный как TRX01, является специализированным однокристальным приемопередатчиком для беспроводных приложений с низким уровнем напряжения питания. Рабочий диапазон прибора оптимизирован в полосе частот от 400МГц до 950МГц. Высокий уровень интеграции и гибкость конфигурирования обеспечивают возможность применения приемопередатчика в телеметрии, системах дистанционного управления, сигнализации, радиомодемах, системах автоматического контроля, ручных терминалах, высокотехнологичных игрушках и многих других приложениях. Двухсторонний обмен позволяет использовать прибор для защищенной передачи информации с проверкой и подтверждением её правильности. AT86RF211 легко конфигурируется для различных применений, в том числе для внешней фильтрации сигналов (ограничение полосы пропускания, улучшение селективности, фильтрации помех, изменения уровня и т.д.), изменения протоколов связи (одноканальные и многоканальные решения). AT86RF211 хорошо адаптируется для батарейных приложений, поскольку требуемый уровень питающего напряжения находится в пределе от 2.4В до 3.75В. Наличие режима пробуждения, перехода в активный режим по получению запроса от передатчика, способствует энергосбережению и увеличению срока работы от одного комплекта батарей.

Общий обзор функционирования

AT86RF211 является внешним радиочастотным устройством для AVR микроконтроллера, содержащим передатчик, приемник и синтезатор с реально достижимой скоростью передачи до 64кбит/с. Синтезатор реализован на основе фазовой автоподстройки частоты и точной цифровой установки несущей с шагом 200 кГц. Высокая избирательность достигнута за счет использования схемы супергетеродина с двойным преобразованием. Выходная мощность устанавливается цифровым способом и имеет 8 уровней в диапазоне +10 dBm Дальность связи изменяется от 30 метров в закрытом помещении до 300 метров на открытом пространстве.

Частота передачи, МГцВыходная мощность, дБ/мТок потребления, мкАНапряжение питания, В
915/868/433+10/12/140,5 - 352,4 - 3,75

Выбор частоты осуществляется подключением различных внешних элементов с использованием функции цифровой подстройки. Из внешних компонентов необходим кварцевый резонатор, керамический фильтр, элементы согласования антенны и фильтрующие компоненты питания. Все настройки приемопередатчика производятся записью и чтением служебных регистров, в которых храниться информация о параметрах уровня напряжения батареи питания, состоянии фазовой автоподстройки, уровня принимаемого сигнала RSSI (Received Signal Strength Indication). Обмен данными между радиочастотным модулем и микроконтроллером выполняется по трехпроводной линии связи (SLE, SCK, SDATA) посредством регистров ввода/вывода общего назначения МК, которые используются для чтения и записи данных в 16 внутренних регистров AT86RF211. Из них 8 регистров используются для конфигурирования нормального режима обмена данными, 4 регистра для режима "wake-up" и 4 регистра для реализации специальных функций, определяемых приложением. Наиболее часто используемые биты расположены в старших разрядах регистров. Режимы чтения и записи позволяют осуществлять доступ к отдельным битам регистра.

Обычный режим работы

В нормальном режиме микросхема конфигурируется микроконтроллером установлением частоты и режим "приема" Rx или "передачи" Tx. В режиме "передача" микросхема действует как конвейер данных, поступающих на вывод DATAMSG, немедленно транслируя их в эфир (Tx). В режиме "прием" сигнал, поступающий с антенны, демодулируется и передается побитно в МК по тому же выводу DATAMSG (Rx). Сохранение данных и обработка их в приемопередатчике не производится.

Схематическое описание работы приемопередатчика в режимах приема и передачи показано на Рис.1.


Рис. 1. Режимы передачи и приема данных.

Если проектируется асинхронный интерфейс UART, то оба вывода RхD и TхD микроконтроллера соединяются с двунаправленным вводом/выводом DATAMSG, организуя полудуплексную передачу. При отсутствии передачи данных вывод TхD должен находиться в высокоимпедансном состоянии. Вывод DATACLK используется для синхронной передачи и поэтому при использовании UART не задействован. Для организации синхронной передачи данных между AVR и AT86RF211 необходимо использовать либо интерфейс I2C-bit banging, либо SPI интерфейс высокоскоростного обмена данными.


Выводы SDATA, SCK и SLE подключаются к выводам общего назначения микроконтроллера. Если используется экономичный режим, то вывод wakeup должен быть подключен к выводу контроллера с функцией прерывания. Следует учитывать скорость передачи по интерфейсу SPI, иначе она может превысить максимально возможную для передачи радиомодулем AT86RF211.

Режим пробуждения

В режиме приема данных приемопередатчик можно перевести в состояние пробуждения. В этом состоянии AT86RF211 выходит из спящего режима по сигналу встроенного таймера и ожидает предварительно определенное сообщение. Если сообщение не принято, процесс повторяется. В случае, если получено ожидаемое сообщение, его поле данных сохраняется в AT86RF211 (длинной до 32 бит), при этом приемопередатчик генерирует сигнал пробуждения для микроконтроллера по линии вывода WAKEUP. Схематическое описание работы приемопередатчика в режиме пробуждения показано на рисунках 2 и 3.


Рис. 2. Краткое представление работы режима пробуждения.


Рис. 3. Диаграмма периодического сканирования.

Описание цифрового интерфейса управления AT86RF211

Для управления и мониторинга за работой AT86RF211 существует трехпроводной цифровой интерфейс, который имеет следующие линии управления:

Сигнал SLE используется для защиты от перезаписи значений регистров, т.е. если на входе SLE установлена лог. "1", то AT86RF211 игнорирует все процессы чтения и записи на линиях SCK и SDATA.

Все операции чтения и записи начинаются с перевода линии SLE из лог. "1" в лог. "0", и заканчиваются переводом линии SLE из лог. "0" в лог. "1". Только одна операция может быть выполнена за один цикл доступа, т.е. только один регистр может быть считан или перезаписан.

Формат записи/чтения регистра по цифровому интерфейсу
Формат сообщения имеет три поля:


Режим записи регистра (R/W = 1)
В режиме записи запись бит адреса, бита признака, и бит данных происходит по нарастающему фонту сигнала SCK. При записи в регистр, если количество записываемых бит данных меньше битовой длинны регистра, то младшие биты не перезаписываются, если количество записываемых бит данных больше битовой длинны регистра, то лишние биты игнорируются. Процесс записи данных в регистр не требует ожидания на сохранение данных, т.е. после перехода сигнала SLE в уровень лог. "1" можно производить перезапись следующего регистра.


Рис. 4. Полный цикл записи 10 битового регистра.


Рис. 5. Укороченный цикл записи, запись 2 бит 32-ух битного регистра.

Режим чтения регистра (R/W = 0)
В режиме чтения запись бит адреса, и бита признака происходит по нарастающему фонту сигнала SCK, а чтение бит данных происходит по спадающему фронту сигнала SCK. При этом первым читается старший бит данных регистра. Вывод SDATA переходит из состояния вход в состояние выход, когда фронт записи бита признака переходит в лог. "1". Вы можете остановить чтение данных из регистра (переводом сигнала на линии SCK в лог. "1") в любой момент времени. Вывод SDATA обратно переходит в состояние вход, когда сигнал SLE переводится в состояние лог. "1".


Рис. 6. Полный цикл чтения 10 битового регистра.


Рис. 7. Укороченный цикл чтения, чтение 2 бит 32-ух битного регистра.

Краткое описание регистров управления AT86RF211

 
ИмяАдрес A[3:0]Кол-во битОперации(1)Комментарии
F0(0000)232R/WРегистр задаваемой частоты F0.
F1(0001)232R/WРегистр задаваемой частоты F1.
F2(0010)232R/WРегистр задаваемой частоты F2.
F3(0011)232R/WРегистр задаваемой частоты F3.
CTRL1(0100)232R/WОсновной регистр управления.
STAT(0101)231RРегистр состояния приемопередатчика.
DTR(0110)26R/WРегистр корректировки
WUC(0111)232R/WРегистр управления режимом пробуждения.
WUR(1000)218R/WРегистр задания скорости входящих данных в режиме пробуждения.
WUA(1001)225R/WАдресный регистр режима пробуждения.
WUD(1010)232RРегистр данных режима пробуждения.
RESET(1011)21WРегистр сброса приемопередатчика.
-(1100)2--Зарезервирован
-(1101)2--Зарезервирован
-(1110)2--Зарезервирован
CTRL2(1111)232R/WДополнительный регистр управления.

Примечание: R/W - регистр доступен для записи и чтения; R - регистр доступен только для чтения; W - регистр доступен только для записи;

Регистр сброса приемопередатчика (RESET)

Запись в этот регистр (0 или 1) выполняет асинхронный сброс приемопередатчика.

Основной регистр управления (CNRL1)

НазваниеКол-во битКомментарии
PDN1Бит управления включения/выключения напряжения питания.
0: AT86RF211 выключен.
1: AT86RF211 включен.
RXTX1Выбор режима работы приемопередатчика.
0: Режим приема.
1: Режим передачи.
DATACLK1Выбор режима синхронизации принимаемых данных.
0: Нет сигнала на линии DATACLK.
1: Активизируется сигнал DATACLK, для синхронизации принимаемых данных.
TXLOCK1Выбор режима начала передачи данных.
0: Передача происходит, не зависимо от состояния PLL
1: Передача происходит только тогда, когда PLL установлена.
Примечание: Состояние PLL находиться в бите PLLL регистра STATUS.
PAPDN1Управление усилителем мощности
0: Усилитель мощности передатчика отключен.
1: Усилитель мощности передатчика включен (только, если PDN = 1).
WUEN1Разрешение режима пробуждения.
0: Функция пробуждения запрещена, содержимое регистров управления режимом пробуждения игнорируется.
1: Функция пробуждения разрешена, она устанавливается согласно установкам регистров пробуждения.
LANGSEL1Выбор усиления малошумящего усилителя (LNA)
0: Усиление максимальное.
1: Усиление минимальное.
MVCC1Выбор замерять значение RSSI или Vcc (напряжение питания).
0: Измеряется значение напряжения RSSI, измеренное значение сохраняется в регистре STAT в битах MRSSI.
1: Измеряется значение напряжения Vcc, измеренное значение сохраняется в регистре STAT в битах MVCC.
TRSSI6Задание значения порога RSSI
DATAMSG, если RSSI TRSSI + HRSSI (Высокий уровень RSSI).
DATAMSG, если RSSI TRSSI - HRSSI (Низкий уровень RSSI).
HRSSI3Задание RSSI гистерезиса.
TXLVL3Выбор уровня выходной мощности в режиме передачи.
(000)2: Минимальный уровень
(111)2: Максимальный уровень.
TXFS1Выбор рабочих регистров для режима приема.
0: регистры F0 и F1
1: Регистры F2 и F3
-1Зарезервирован.
RXFS2Выбор рабочего регистра для режима приема.
(00)2: регистр F0
(01)2: регистр F1
(10)2: регистр F2
(11)2: регистр F3
XTALFQ1Частота задающего генератора.
0: 10.245МГц (с IF1 = 10.7МГц)
1: 20.945МГц (с IF1 = 21.4МГц)
FSKBW1Выбор дискриминатора.
0: узкий дискриминатор BW.
1: стандартный дискриминатор BW.
FSKPOL1Полярность сигнала DATAMSG
0: Инверсный сигнал.
1: Прямой сигнал.
DSREF1Выбор источника опорного напряжения.
0: внешний; вывод SKFILT.
1: внутренний; значение напряжения ЦАП.
-1Зарезервирован.
-1Зарезервирован.
MOFFSET10: Внутреннее АЦП выполняет измерение Vcc.
1: Внутреннее АЦП выполняет измерение уровня DISCOUT DC
-1Зарезервирован.

Дополнительный регистр управления (CNRL2)

НазваниеКол-во битКомментарии
DATARATE14Скорость принимаемых данных
Данное значение задает период генерируемого сигнала на линии DATACLK. (Для включения данного сигнала необходимо активизировать бит DATACLK в регистре CNTR1). Допустимый предел задаваемых значений от 1kbps до 50kbps.
DATATOL8Значение отклонения скорости принимаемых данных.
Рекомендуемое значение 2%.
LDCK1Включение удвоения тактовой частоты для увеличения точности детектирования фиксирования PLL.
0: 10МГц тактовая частота.
1: Удвоенная тактовая частота.
N0LD14Определение состояние триггера незафиксированной PLL
Рекомендуется не изменять значение оставить такое как есть.
N1LD25Определение состояние триггера зафиксированной PLL
Рекомендуется не изменять значение оставить такое как есть.

Регистры задаваемой частоты (F0, F1, F2, F3)

НазваниеКол-во битКомментарии
F032Значение частотного кода F0
По умолчанию используется для режима передачи (для передачи кода "0").
F132Значение частотного кода F1
По умолчанию используется для режима передачи (для передачи кода "1").
F232Значение частотного кода F2
По умолчанию используется для режима приема.
F332Значение частотного кода F3

Регистр статуса (STAT)

НазваниеКол-во битКомментарии
PLLL1Флаг фиксирования PLL
0: PLL не фиксировано.
1: PLL фиксировано.
MRSSI6Значение измеренного RSSI уровня.
MVCC6Значение измеренного Vcc или уровня дискриминатора, когда MOFFSET = 1.
WAKEUP1Флаг отображения режима пробуждения.
Копия состояния вывода WAKEUP, но он не подвержен изменению битом выбора полярности.
0: сообщение пробуждения не получено.
1: получено сообщение пробуждения.
-1Зарезервировано.
MSGERR1Ошибка сообщения пробуждения в режиме тестовых сообщений.
0: не обнаружено ошибок в принятом сообщении.
1: полученное сообщение с ошибками.
MSGDATL5Длина полученного сообщения в режиме пробуждения.
Длина данных сохраненных в регистре WUD (принятое сообщение).
MSGMRATE10Измеренное значение скорости передачи данных в режиме пробуждения.
Длительность бита из заголовка сообщения пробуждения.
Для того чтобы узнать значение длительности необходимо умножить полученное значение на 1.56мксек (аналогично RATE в регистре WUR).
(0)10: 1 * 1.56мксек
(vv)10: vv * 1.56мксек
(3FF)16: (400)16 * 1.56мксек

Регистр корректировки (DTR)

НазваниеКол-во битКомментарии
DSOFFSET4Задание смещения опорного напряжения для выделения данных на выходном компараторе.
Допустимые значения от (0000)2 до (1111)2
DSCHIGH1Сдвиг дискриминатора вверх.
0: нет сдвига.
1: выходной уровень увеличен.
DISCLOW1Сдвиг дискриминатора вниз.
0: нет сдвига.
1: выходной уровень уменьшен.

Регистр управления режимом пробуждения (WUC)

НазваниеКол-во битКомментарии
WUE1Разрешение режима пробуждения.
Возвращается в значение "0", когда получено правильное сообщение.
0: режим пробуждения запрещен.
1: режим пробуждения разрешен.
DATA1Бит признак содержания данных в сообщении.
0: Сообщение без данных.
1: Сообщение с данными.
STOP1Используемая размерность поля данных.
0: фиксируемое значение поля данных, длина поля данных задается в поле DATL от 1 до 32 бит.
1: значение поля данных фиксированное, значение поля DATL должно быть задано (11111)2.
DATL5Значение длины данных.
Задает значение при фиксированной длине данных (STOP = 0).
(00000)2: 1 бит (минимальное значение длины данных).
...
(11111)2: 32 бита (максимальное значение длины данных).
ADD1Бит признак содержания адреса в сообщении.
0: Сообщение без адреса.
1: Сообщение с адресом.
MSGTST1Проверка на ошибку сообщения.
0: нет режима детектирования ошибки.
1: режим проверки включен для отладки.
WPER9Период пробуждения
Переменное значение от 10мсек до 328сек с разбросом 20% (для этого используется RC генератор)
WL17Минимальная задержка перед началом TEST1 (проверка уровня RSSI)
Значение переменное от 1мсек до 1.024сек.
Задержка начинает отсчет, после запуска генератора.
WL23Минимальная задержка между TEST1 и TEST2 (проверка на детектирование заголовка)
Значение переменное и задается как значение WL2 (от 0 до 31) умноженное на WL1.
ISTU1Inhibit stuff mechanism
0: stuff is used for wake-up message
1: no stuff used in the wake-up message
-1Зарезервировано.
-1Зарезервировано.

Регистр задания скорости входящих данных в режиме пробуждения (WUR)

НазваниеКол-во битКомментарии
WUOP2Полярность выходного сигнала WAKEUP
(00)2: Активный низкий уровень.
(01)2: Активный высокий уровень.
(1x)2: Выход с открытым коллектором (активный низкий, иначе в третьем состоянии).
RATECHK1Проверка скорости передачи данных.
Скорость автоматически вычисляется на основании полученного заголовка.
Полученная скорость сравнивается со значением RATE с допустимым разбросом, заданным в RATETOL.
За единицу скорости передачи данных при расчете принимается 1.56мксек. (значение задающего генератора деленное на 16).
0: Скорость передачи данных не определена.
1: Скорость передачи данных определена (заголовок игнорируется, если проверка не прошла).
RATE10Значение скорости принимаемых данных.
(0)10: минимальное значение 1*1.56мксек
...
(1023)10: максимальное значение 1024*1.56мксек
RATETOL5Значение разброса скорости принимаемых данных.
(0)10: минимальное значение 0*1.56мксек
...
(31)10: максимальное значение 31*1.56мксек

Адресный регистр пробуждения (WUA)

НазваниеКол-во битКомментарии
ADDL5Длина адреса пробуждения.
(0)10: длина адреса пробуждения ровна 1 биту.
(1)10: длина адреса пробуждения ровна 2 битам
...
(19)10: длина адреса пробуждения ровна 20 битам.
(19)10: большие значения не разрешены.
ADD20Значение адреса пробуждения
Если длина адреса пробуждения задана меньше 20 бит старшие биты игнорируются.

Регистр данных пробуждения (WUD)

НазваниеКол-во битКомментарии
WUDпеременноеДанные, полученные в режиме пробуждения.
Предупреждение: Длина данного регистра является переменной.
Если длина данных фиксирована (бит STOP = 0 в регистре WUC), то тогда она задается в поле DATL регистра WUC.
Если длина данных переменная (бит STOP = 1 в регистре WUC), то тогда значение длины полученных данных находиться в поле MSGDATL регистра STAT.
Предупреждение: Первый бит полученных данных помещается в младший бит регистра WUD, т.е. в WUD[0].

Алгоритм инициализации AT86RF211 Алгоритм начальной инициализации AT86RF211 для работы в одноканальном режиме.

  1. Сброс AT86RF211 записью в регистр RESET.
  2. Инициализировать основной регистр управления CNRL1
  3. Инициализировать дополнительный регистр управления CNTR2
  4. Задаем значения регистров F0, F1, F2 для требуемой частоты.

Все, на этом процесс инициализации закончен, далее мы переключаем AT86RF211 в необходимый режим работы, а именно в режим приема или передачи.

Замечания разработчика

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

Основным и первым препятствием при отладке стал запуск генератора для синтезатора частот. Запуск генератора происходил нестабильно, при этом подбор емкостей, отличающихся от типичных номиналов, положительных результатов не приносил. Решение проблемы заключается в том, чтобы параллельно емкости C2 установить резистор номиналом 3.3кОм (см. рис.8)


Рис. 8. Типичная схема включения генератора.

Непросто оказалось и задать требуемую частоту приема и передачи, то есть определить, какие значения следует заносить в регистры F0, F1 и F2, поскольку в документации отсутствует информация об алгоритмах расчета значений данных регистров. При общении с разработчиками микросхемы из фирмы Atmel удалось получить программу (TRX_EXE.EXE), которая генерирует файл c рассчитанными значениями регистров F0, F1 и F2. Внешний интерфейс этой программы приведен на рис.9.


Рис. 9. Внешний вид программы TRX_EXE.EXE

Для расчета значения регистров F0, F1 и F2 используются следующие параметры:

По завершению ввода параметров, необходимых для решения задачи, следует нажать клавишу [Generate!], после чего в директории появятся файлы [output.c] и [output.c.log], в которых находятся значения регистров F0, F1 и F2.


Рис. 10. Содержимое сгенерированного OUTPUT.C файла

Последней существенной проблемой стала чувствительность выходного усилителя приемопередатчика к шумам напряжения питания. Пришлось выполнить замену RC фильтров по питанию на LC.

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

Ж-л "Chipnews" N5, 2004

Андрей Бондаренко
bondarenko@rainbow.by