Российский УКВ портал
Главная arrow Статьи arrow Аппаратура arrow Загрузчик для синтезаторов Analog Devices ADF4xxx


Загрузчик для синтезаторов Analog Devices ADF4xxx

Версия в формате PDF Версия для печати
Автор Сергей Сатырь, RW3XA   
Пятница, 04 Ноябрь 2011
Данный микроконтроллерный загрузчик предназначен для инициализации (записи) в синтезаторы на базе Analog Devices ADF4xxx (или других) значений управляющих регистров, определяющих частоты, режимы и все другие параметры работы синтезатора.
Загрузчик был сделан для синтезатора ADF4106 Александра RW3AZ  А учитывая интерес других радиолюбителей и для экономии их времени выкладывается на всеобщее обозрение. Данный микроконтроллерный загрузчик предназначен для интеграции в плату синтезатора для автоматической инициализации (записи) в синтезаторы на базе Analog Devices ADF4xxx (или других) значений управляющих регистров, определяющих частоты, режимы и все другие параметры работы синтезатора. Четыре 3-х байтовых управляющих регистра записываются по протоколу SPI. Программа написана под микроконтроллер ATtiny13 (подойдет и для других 8-ногих ATtiny, но, возможно, потребуется коррекция Fuse bits).
Логика программы простая: через 100мс после включения начинается передача регистров с паузой в 1мс, после окончания передачи еще одна пауза в 100мс и программное отключение микроконтроллера (Idle mode). Схема, исходник в BASCOM, прошивка (.bin) и файл для симуляции в PROTEUS (.dsn/.pwi) находятся в архиве в конце описания.
Для подготовки конкретных значений регистров ADF4xxx, нужно изучить значения битов регистров в datasheet на соответствующую микросхему синтезатора и воспользоваться утилитой ADF4xxx_Rev5.1 из файлового архива или более свежими версиями ADI Int-N с сайта Analog Devices. Раньше был еще очень удобный онлайн калькулятор PLL Register Configuration Assistants на сайте Analog Devices, но уже несколько лет он почему-то недоступен. Регистры Function, N и R вычисляются утилитой ADF4xxx_Rev5.1, а вычисление регистра INIT (Initialization Latch) нужно сделать вручную с помощью datasheet. Но INIT регистр можно оставить и без изменения, со значениями как в прошивке  - этого достаточно для большинства случаев. А вообще, конкретные значения битов в регистрах это отдельная тема.

PLL Register Configuration Assistants 

These tools will generate the hex code values needed to configure the registers of the AD41xx and ADF42xx PLLs. They will also help determine the the values of the counters needed to obtain a certain output frequency given a reference clock.
Image
ADF4xxx - The Software is an evaluation tool for the Analog Devices ADX 4XXX family of Integer-N Frequency Synthesiers.
Image
Image
Для редактирования прошивки проще использовать двоичный (бинарный) файл *.bin, т.к. он представляет из себя непосредственно коды микроконтроллера,  в то время как HEX-файл (*.hex) есть формат специального представления, содержащий адреса, данные и контрольные суммы в одной строке и значительно хуже воспринимается, т.к. не рассчитан на ручное редактирование, соответственно выше вероятность ошибок и сложнее при редактировании…
Вариант программы для редактирования бинарного файла прошивки - HexEdit v1.03
Ниже приведен screenshot этой программы. Расположение и примерные значения четырех трехбайтовых регистров синтезатора выделены на скриншоте белым фоном и находятся начиная с адреса 280.
Image  

Взаимное расположение значений регистров в калькуляторах и прошивке

С помощью HexEdit v1.03 в прилагаемой прошивке необходимо заменить байты с адреса 280h на новые в соответствии с рассчитанными значениями. Затем программатором «зашить» прошивку в микроконтроллер ATtiny программатором или по ISP интерфейсу.
Image  
При прошивке ATtiny следует использовать следующие Fuses: CLKDIV8 = 0 (programmed), CKSEL= 10 (Select 9.6Mc internal clock).Последовательность действий. 1. С помощью HexEdit v1.03 в прилагаемой бинарной (файл *.bin) прошивке необходимо заменить байты с адреса 280h на новые в соответствии с рассчитанными значениями регистров. 2. Если программатор поддерживает бинарный формат, то перейти к п.3. Сконвертировать *.bin файл в формат HEX с помощью программы bin2hex.exe, для этого программу нужно выполнить со следующими параметрами: bin2hex.exe входной-файл-прошивки.bin выходной-файл-прошивки.hex 0 0000 цифры в конце нужны для автоматического выполнения – «0» задает выходной Intel формат, а «0000» базовый адрес. Имена файлов не должны быть более 8 символов (DOS формат 8.3). Например bin2hex loader.bin loader.hex 0 0000 3. Загрузить bin или hex прошивку в микроконтроллер ATtiny программатором или по ISP интерфейсу. При прошивке ATtiny следует использовать следующие Fuses: CLKDIV8 = 0 (programmed), CKSEL= 10 (Select 9.6Mc internal clock). Более подробную информацию о прошивке микроконтроллеров AVR можно ознакомиться здесь.

Схема

Image
Микроконтроллер запитывается от источника питания синтезатора (VCC=3.3-3.6V). 
При внутрисхемном программировании (ISP) следует помнить о соответствии VCC программатора и VCC синтезатора, т.е. чтобы VCC программатора не превысило значение VCC синтезатора. Кроме того, при этом необходимо отключать ADF4xxx подав на его пин CE логический «0».

Image
Как уже говорилось, схема (Loader N1) сделана под синтезатор RW3AZ, она имеет совмещенные сигналы SPI и ISP, что несколько не удобно – нужно управлять пином CE при внутрисхемном программировании (ISP). В новых конструкциях оптимальнее использовать схему в которой сигнал LE перенесен на пин 2 или 3 (см. схему Loader N2) и, соответственно, для внутрисхемного программирования здесь не требуется никаких дополнительных переключений. Прошивка для этого варианта находится в архиве - adf-ldr2.bin. Назначение сигналов на конкретные пины микроконтроллера можно переопределить изменением исходного кода и перекомпиляцией программы.

Архив ADF_Loader.zip (475kB)

Последнее обновление ( Четверг, 26 Январь 2017 )
 

У Вас недостаточно прав для добавления комментариев.
Возможно, Вам необходимо зарегистрироваться на сайте.