Приемопередатчик радиодиапазона 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/14 |
0,5 - 35 |
2,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 - вход разрешения чтения/записи данных.
- SCK - тактируемый вход для синхронизации чтения/записи данных.
- SDATA - двунаправленная линия связи для чтения/записи данных.
Сигнал SLE используется для защиты от перезаписи значений регистров, т.е. если на входе SLE установлена лог. "1", то AT86RF211 игнорирует все процессы чтения и записи на линиях SCK и SDATA.
Все операции чтения и записи начинаются с перевода линии SLE из лог. "1" в лог. "0", и заканчиваются переводом линии SLE из лог. "0" в лог. "1". Только одна операция может быть выполнена за один цикл доступа, т.е. только один регистр может быть считан или перезаписан.
Формат записи/чтения регистра по цифровому интерфейсу
Формат сообщения имеет три поля:
- Поле адреса ( A[3:0] ) - длинна данного поля 3 бита, первым идет старший бит.
- Бит признак операции ( R/W ) - если бит, равен 1, то операция записи, если бит, равен 0, то операция чтения.
- Поле данных ( D[31:0] ) - длинна данного поля переменная, максимальная его длинна 32 бита, первым идет старший бит.
Режим записи регистра (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)2 |
32 |
R/W |
Регистр задаваемой частоты F0 |
F1 |
(0001)2 |
32 |
R/W |
Регистр задаваемой частоты F1 |
F2 |
(0010)2 |
32 |
R/W |
Регистр задаваемой частоты F2 |
F3 |
(0011)2 |
32 |
R/W |
Регистр задаваемой частоты F3 |
CTRL1 |
(0100)2 |
32 |
R/W |
Основной регистр управления |
STAT |
(0101)2 |
31 |
R |
Регистр состояния приемопередатчика |
DTR |
(0110)2 |
6 |
R/W |
Регистр корректировки |
WUC |
(0111)2 |
32 |
R/W |
Регистр управления режимом пробуждения |
WUR |
(1000)2 |
18 |
R/W |
Регистр задания скорости входящих данных в режиме пробуждения |
WUA |
(1001)2 |
25 |
R/W |
Адресный регистр режима пробуждения |
WUD |
(1010)2 |
32 |
R |
Регистр данных режима пробуждения |
RESET |
(1011)2 |
1 |
W |
Регистр сброса приемопередатчика |
- |
(1100)2 |
- |
- |
Зарезервирован |
- |
(1100)2 |
- |
- |
Зарезервирован |
- |
(1100)2 |
- |
- |
Зарезервирован |
CTRL2 |
(1111)2 |
32 |
R/W |
Дополнительный регистр управления |
Примечание: R/W - регистр доступен для записи и чтения; R - регистр доступен только для чтения; W - регистр доступен только для записи;
Регистр сброса приемопередатчика (RESET)
Запись в этот регистр (0 или 1) выполняет асинхронный сброс приемопередатчика.
Основной регистр управления (CNRL1)
Название |
Кол-во бит |
Комментарии |
PDN |
1 |
Бит управления включения/выключения напряжения питания. 0: AT86RF211 выключен. 1: AT86RF211 включен. |
RXTX |
1 |
Выбор режима работы приемопередатчика. 0: Режим приема. 1: Режим передачи. |
DATACLK |
1 |
Выбор режима синхронизации принимаемых данных. 0: Нет сигнала на линии DATACLK. 1: Активизируется сигнал DATACLK, для синхронизации принимаемых данных. |
TXLOCK |
1 |
Выбор режима начала передачи данных. 0: Передача происходит, не зависимо от состояния PLL
1: Передача происходит только тогда, когда PLL установлена. Примечание: Состояние PLL находиться в бите PLLL регистра STATUS. |
PAPDN |
1 |
Управление усилителем мощности 0: Усилитель мощности передатчика отключен. 1: Усилитель мощности передатчика включен (только, если PDN = 1). |
WUEN |
1 |
Разрешение режима пробуждения. 0: Функция пробуждения запрещена, содержимое регистров управления режимом пробуждения игнорируется. 1: Функция пробуждения разрешена, она устанавливается согласно установкам регистров пробуждения. |
LANGSEL |
1 |
Выбор усиления малошумящего усилителя (LNA) 0: Усиление максимальное. 1: Усиление минимальное. |
MVCC 1 |
1 |
Выбор замерять значение RSSI или Vcc (напряжение питания). 0: Измеряется значение напряжения RSSI, измеренное значение сохраняется в регистре STAT в битах MRSSI. 1: Измеряется значение напряжения Vcc, измеренное значение сохраняется в регистре STAT в битах MVCC. |
TRSSI |
6 |
Задание значения порога RSSI DATAMSG, если RSSI TRSSI + HRSSI (Высокий уровень RSSI). DATAMSG, если RSSI TRSSI - HRSSI (Низкий уровень RSSI). |
HRSSI |
3 |
Задание RSSI гистерезиса. |
TXLVL |
3 |
Выбор уровня выходной мощности в режиме передачи. (000)2: Минимальный уровень (111)2: Максимальный уровень. |
TXFS |
1 |
Выбор рабочих регистров для режима приема. 0: регистры F0 и F1 1: Регистры F2 и F3 |
- |
1 |
Зарезервирован |
RXFS |
2 |
Выбор рабочего регистра для режима приема.(00)2: регистр F0 (01)2: регистр F1 (10)2: регистр F2 (11)2: регистр F3 |
XTALFQ |
1 |
Частота задающего генератора. 0: 10.245МГц (с IF1 = 10.7МГц) 1: 20.945МГц (с IF1 = 21.4МГц) |
FSKBW |
1 |
Выбор дискриминатора. 0: узкий дискриминатор BW. 1: стандартный дискриминатор BW |
FSKPOL |
1 |
Полярность сигнала DATAMSG 0: Инверсный сигнал. 1: Прямой сигнал. |
DSREF |
1 |
Выбор источника опорного напряжения. 0: внешний; вывод SKFILT. 1: внутренний; значение напряжения ЦАП |
- |
1 |
Зарезервирован |
- |
1 |
Зарезервирован |
MOFFSET |
1 |
0: Внутреннее АЦП выполняет измерение Vcc. 1: Внутреннее АЦП выполняет измерение уровня DISCOUT DC |
- |
1 |
Зарезервирован |
Дополнительный регистр управления (CNRL2)
Название |
Кол-во бит |
Комментарии |
DATARATE |
14 |
Скорость принимаемых данных Данное значение задает период генерируемого сигнала на линии DATACLK. (Для включения данного сигнала необходимо активизировать бит DATACLK в регистре CNTR1). Допустимый предел задаваемых значений от 1kbps до 50kbps. |
DATATOL |
8 |
Значение отклонения скорости принимаемых данных. Рекомендуемое значение 2%. |
LDCK |
1 |
Включение удвоения тактовой частоты для увеличения точности детектирования фиксирования PLL. 0: 10МГц тактовая частота. 1: Удвоенная тактовая частота. |
N0LD1 |
4 |
Определение состояние триггера незафиксированной PLL. Рекомендуется не изменять значение оставить такое как есть. |
N1LD2 |
5 |
Определение состояние триггера зафиксированной PLL. Рекомендуется не изменять значение оставить такое как есть. |
Регистры задаваемой частоты (F0, F1, F2, F3)
Название |
Кол-во бит |
Комментарии |
F0 |
32 |
Значение частотного кода F0 По умолчанию используется для режима передачи (для передачи кода "0"). |
F1 |
32 |
Значение частотного кода F1 По умолчанию используется для режима передачи (для передачи кода "1"). |
F2 |
32 |
Значение частотного кода F2 По умолчанию используется для режима приема. |
F3 |
32 |
Значение частотного кода F3 |
Регистр статуса (STAT)
Название |
Кол-во бит |
Комментарии |
PLLL |
1 |
Флаг фиксирования PLL 0: PLL не фиксировано. 1: PLL фиксировано. |
MRSSI |
6 |
Значение измеренного RSSI уровня |
MVCC |
6 |
Значение измеренного Vcc или уровня дискриминатора, когда MOFFSET = 1 |
WAKEUP |
1 |
Флаг отображения режима пробуждения. Копия состояния вывода WAKEUP, но он не подвержен изменению битом выбора полярности. 0: сообщение пробуждения не получено. 1: получено сообщение пробуждения |
- |
1 |
Зарезервировано |
MSGERR |
1 |
Ошибка сообщения пробуждения в режиме тестовых сообщений. 0: не обнаружено ошибок в принятом сообщении. 1: полученное сообщение с ошибками. |
MSGDATL |
5 |
Длина полученного сообщения в режиме пробуждения.
Длина данных сохраненных в регистре WUD (принятое сообщение) |
MSGMRATE |
10 |
Измеренное значение скорости передачи данных в режиме пробуждения. Длительность бита из заголовка сообщения пробуждения. Для того чтобы узнать значение длительности необходимо умножить полученное значение на 1.56мксек (аналогично RATE в регистре WUR). (0)10: 1 * 1.56мксек (vv)10: vv * 1.56мксек (3FF)16: (400)16 * 1.56мксек |
Регистр корректировки (DTR)
Название |
Кол-во бит |
Комментарии |
DSOFFSET |
4 |
Задание смещения опорного напряжения для выделения данных на выходном компараторе.
Допустимые значения от (0000)2 до (1111)2 |
DSCHIGH |
1 |
Сдвиг дискриминатора вверх. 0: нет сдвига. 1: выходной уровень увеличен |
DISCLOW |
1 |
Сдвиг дискриминатора вниз. 0: нет сдвига. 1: выходной уровень уменьшен |
Регистр управления режимом пробуждения (WUC)
Название |
Кол-во бит |
Комментарии |
WUE |
1 |
Разрешение режима пробуждения. Возвращается в значение "0", когда получено правильное сообщение. 0: режим пробуждения запрещен. 1: режим пробуждения разрешен |
DATA |
1 |
Бит признак содержания данных в сообщении. 0: Сообщение без данных. 1: Сообщение с данными |
STOP |
1 |
Используемая размерность поля данных. 0: фиксируемое значение поля данных, длина поля данных задается в поле DATL от 1 до 32 бит. 1: значение поля данных фиксированное, значение поля DATL должно быть задано (11111)2. |
DATL |
5 |
Значение длины данных. Задает значение при фиксированной длине данных (STOP = 0). (00000)2: 1 бит (минимальное значение длины данных). ... (11111)2: 32 бита (максимальное значение длины данных). |
ADD |
1 |
Бит признак содержания адреса в сообщении. 0: Сообщение без адреса. 1: Сообщение с адресом. |
MSGTST |
1 |
Проверка на ошибку сообщения. 0: нет режима детектирования ошибки. 1: режим проверки включен для отладки |
WPER |
9 |
Период пробуждения Переменное значение от 10мсек до 328сек с разбросом 20% (для этого используется RC генератор) |
WL1 |
7 |
Минимальная задержка перед началом TEST1 (проверка уровня RSSI) Значение переменное от 1мсек до 1.024сек. Задержка начинает отсчет, после запуска генератора |
WL2 |
3 |
Минимальная задержка между TEST1 и TEST2 (проверка на детектирование заголовка) Значение переменное и задается как значение WL2 (от 0 до 31) умноженное на WL1. |
ISTU |
1 |
Inhibit stuff mechanism 0: stuff is used for wake-up message 1: no stuff used in the wake-up message |
- |
1 |
Зарезервировано |
- |
1 |
Зарезервировано |
Регистр задания скорости входящих данных в режиме пробуждения (WUR)
Название |
Кол-во бит |
Комментарии |
WUOP |
2 |
Полярность выходного сигнала WAKEUP (00)2: Активный низкий уровень. (01)2: Активный высокий уровень. (1x)2: Выход с открытым коллектором (активный низкий, иначе в третьем состоянии). |
RATECHK |
1 |
Проверка скорости передачи данных. Скорость автоматически вычисляется на основании полученного заголовка. Полученная скорость сравнивается со значением RATE с допустимым разбросом, заданным в RATETOL. За единицу скорости передачи данных при расчете принимается 1.56мксек. (значение задающего генератора деленное на 16). 0: Скорость передачи данных не определена. 1: Скорость передачи данных определена (заголовок игнорируется, если проверка не прошла) |
RATE |
10 |
Значение скорости принимаемых данных. (0)10: минимальное значение 1*1.56мксек ... (1023)10: максимальное значение 1024*1.56мксек |
RATETOL |
5 |
Значение разброса скорости принимаемых данных. (0)10: минимальное значение 0*1.56мксек ... (31)10: максимальное значение 31*1.56мксек |
Адресный регистр пробуждения (WUA)
Название |
Кол-во бит |
Комментарии |
ADDL |
5 |
Длина адреса пробуждения. (0)10: длина адреса пробуждения ровна 1 биту. (1)10: длина адреса пробуждения ровна 2 битам ... (19)10: длина адреса пробуждения ровна 20 битам. (19)10: большие значения не разрешены. |
ADD |
20 |
Значение адреса пробуждения Если длина адреса пробуждения задана меньше 20 бит старшие биты игнорируются |
Регистр данных пробуждения (WUD)
Название |
Кол-во бит |
Комментарии |
WUD |
переменное |
Данные, полученные в режиме пробуждения.
Предупреждение: Длина данного регистра является переменной.
Если длина данных фиксирована (бит STOP = 0 в регистре WUC), то тогда она задается в поле DATL регистра WUC.
Если длина данных переменная (бит STOP = 1 в регистре WUC), то тогда значение длины полученных данных находиться в поле MSGDATL регистра STAT.
Предупреждение: Первый бит полученных данных помещается в младший бит регистра WUD, т.е. в WUD[0]. |
Алгоритм инициализации AT86RF211
Алгоритм начальной инициализации AT86RF211 для работы в одноканальном режиме.
- Сброс AT86RF211 записью в регистр RESET.
- Инициализировать основной регистр управления CNRL1
- PDN = 0 (off)
- RXTX = 1 (TX)
- DATACLK = 0 (DTCLK off)
- TXLOCK = 1 (on)
- PAPDN = 0 (PA off)
- WUEN = 0 (off)
- LNAGSEL = 0 (max gain)
- MVCC = 0 (MRSSI)
- TRSSI = 010000 (RSSI level)
- HRSSI = 010 (RSSI hyst.)
- TXLVL = 111 (PA power)
- TXFS = 00 (F0-F1)
- RXFS = 10 (F2)
- XTALFQ = 0 (div/1)
- FSKBW = 0 (25kHz)
- FSKPOL = 1 (direct)
- DSREF = 0 (external).
- Инициализировать дополнительный регистр управления CNTR2
- DATARATE = 42B (00010000101011) - задаем скорость передачи данных 9600.
- DATATOL = 16 [3%] (00010110) - 3% разброс по скорости.
- LDCK = 0 (simple) - оставляем параметр не измененным.
- N0LD2 = 0010 (unlock condition) - оставляем параметр не измененным.
- N1LD2 = 10111 (lock condition) - оставляем параметр не измененным.
- Задаем значения регистров 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 используются следующие параметры:
- Reference Frequency ( Hz ) - частота задающего генератора синтезатора частоты в герцах, данный параметр может принимать два значения либо 10245000Гц, либо 20945000Гц.
- Start Channel ( Hz ) - рабочая частота приемопередатчика в герцах, ее значения согласно требованиям для приемопередатчика могут принимать от 400000000Гц до 950000000Гц.
- Deviation ( +/- Hz) - значение девиации частоты в герцах, по умолчанию задается значение 10кГц.
- Intermediate Freq ( +/- Hz ) - значение промежуточной частоты в герцах, по умолчанию 10.7МГц (если кварцевый генератор 10245000).
- Step ( Hz ) - шаг, или иными словами точность настройки.
- Number of channels - количество каналов.
- Output File - имя формируемого исходящего файла.
- Memory Type - тип памяти, в которой будут храниться сформированные данные, по умолчанию const.
- TX/RX Separate - при установке данного флажка, программа формирует отдельно значения для регистра режима приема, и отдельно для регистров режима передачи.
- Little Endian/Big Endian - формат сохранения рассчитанного значения регистров, если выбран Little Endian, то рассчитанное значение сохраняется младшим битом в конце, если Big Endian, то старшим битом в конце.
- Mode - режим формирования данных
- High Resolution - режим высокого разрешения, в этом режиме размерность генерируемых частотных регистров 32 бита, при этом задаваемая точность синтезируемой частоты может быть до 200Гц. Этот режим рекомендуется, поскольку предлагает высокую точность и простоту работы с регистрами.
- 25 Bits - режим 25 бит, как можно заметить в данном режиме, длинна формируемого значения регистров не 32 бита, а 25 бит. Этот режим рекомендуется, если у вас не хватает памяти в микроконтроллере для хранения переменных, но вам потребуется поддержать декодирование данных перед тем как их заносить в регистр. Этот режим не уменьшает точность синтезируемой частоты, но требует дополнительных затрат при работе с регистрами.
- P Const - режим P=cst, в этом режиме длинна формируемого значения регистров 24 бита, при этом точность синтезируемой частоты 10кГц. Этот режим не рекомендуется использовать. Используйте его, если у вас действительно критично с объемами памяти в микроконтроллере.
По завершению ввода параметров, необходимых для решения задачи, следует нажать клавишу [Generate!], после чего в директории появятся файлы [output.c] и [output.c.log], в которых находятся значения регистров F0, F1 и F2.
Рис. 10. Содержимое сгенерированного OUTPUT.C файла
Последней существенной проблемой стала чувствительность выходного усилителя приемопередатчика к шумам напряжения питания. Пришлось выполнить замену RC фильтров по питанию на LC.
Те, кто преодолеет перечисленные проблемы, наверняка получат удовольствие от работы с этим многофункциональным прибором. На базе AT86RF211 может быть создано много разнообразных приборов, а сам он может стать базовым устройством для компаний, заинтересованных в разнообразных приложениях, включая многоканальные и энергосберегающие.
Андрей Бондаренко
|