Приемопередатчик радиодиапазона 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 | - | - | Зарезервирован |
- | (1101)2 | - | - | Зарезервирован |
- | (1110)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 | Выбор замерять значение 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 может
быть создано много разнообразных приборов, а сам он может стать базовым
устройством для компаний, заинтересованных в разнообразных приложениях,
включая многоканальные и энергосберегающие.
Андрей Бондаренко
bondarenko@rainbow.by