Коллеги, с Днём Независимости!
Предлагаю вашему вниманию программу - загрузчик регистров синтезатора ADF4350.
Программа написана под МК ATtiny25, но должна работать и под ATtiny13А.
В приложении - прошивка и схема загрузчика. Приведены также осциллограммы сигналов clk, dat и le.
Как это все работает.
Краткое нажатие кнопки S1 (не более 1с) позволяет сделать выбор нужной частоты. Светодиодные индикаторы LED1, LED2 и LED3 показывают в двоичном коде выбранную частоту. Всего таким образом может быть отображено 8 частот. Когда ни один диод не горит, состояние 0-0-0, выбрана частота 0, когда горят все светодиоды, состояние 1-1-1, выбрана частота 7.
Длинное нажатие кнопки S1 (более 1с) обеспечивает запись 6 регистров выбранной частоты в синтезатор.
В хекс-файле представленной прошивки записаны определенные частоты 1151, 1152, 1296, 1297 МГц под опорную частоту 100 МГц/4.
Как прошивать свои собственные частоты.
Берёте текстовый файл, приведённый ниже, подставляете туда свои собственные данные, полученные с помощью аналого-дивайсовской программы ADF435x.exe, компилируете с помощью компилятора, WinAVR, например, получаете хекс-файл. Любым текстовым редактором удаляете из прошивки ad4350loader.hex все строки между первой :0200C00000003E и последней строкой :00000001FF, и вставляете туда текст, скомпилированный вами. Хекс файл готов, можно записывать в память МК.
:0200C00000003E
:1002000000580005009C803C000004B300010E4231
:10021000080080C9002E001000580005009C803C9A
:10022000000004B300010E42080080C9002E002027
:1002300000580005009C803C000004B300010E4201
:10024000080080C90033808800580005009C803C6D
:10025000000004B300010E42080080C900338098FA
:10026000000000000000000000000000000000008E
:10027000000000000000000000000000000000007E
:10028000000000000000000000000000000000006E
:10029000FF0000000000000000000000000000005F
:1002A0000000000000000000FF000000000000004F
:1002B000000000000000000000000000000000003E
:00000001FF
Добавлю ещё, если в первом байте частоты стоит байт 0xFF, как в примере для частот FRQ4-FRQ7, то программа не просматривает частоты далее, а возвращается к нулевой частоте.
<<Пример текстового файла для компиляции>>
.cseg
.org 0x100
frq0: ;1151 MHz
.db 0x00,0x58,0x00,0x05 ;REG5
.db 0x00,0x9C,0x80,0x3C ;REG4
.db 0x00,0x00,0x04,0xB3 ;REG3
.db 0x00,0x01,0x0E,0x42 ;REG2
.db 0x08,0x00,0x80,0xC9 ;REG1
.db 0x00,0x2E,0x00,0x10 ;REG0
frq1: ;1152 MHz
.db 0x00,0x58,0x00,0x05 ;REG5
.db 0x00,0x9C,0x80,0x3C ;REG4
.db 0x00,0x00,0x04,0xB3 ;REG3
.db 0x00,0x01,0x0E,0x42 ;REG2
.db 0x08,0x00,0x80,0xC9 ;REG1
.db 0x00,0x2E,0x00,0x20 ;REG0
frq2: ;1296 MHz
.db 0x00,0x58,0x00,0x05 ;REG5
.db 0x00,0x9C,0x80,0x3C ;REG4
.db 0x00,0x00,0x04,0xB3 ;REG3
.db 0x00,0x01,0x0E,0x42 ;REG2
.db 0x08,0x00,0x80,0xC9 ;REG1
.db 0x00,0x33,0x80,0x88 ;REG0
frq3: ;1297 MHz
.db 0x00,0x58,0x00,0x05 ;REG5
.db 0x00,0x9C,0x80,0x3C ;REG4
.db 0x00,0x00,0x04,0xB3 ;REG3
.db 0x00,0x01,0x0E,0x42 ;REG2
.db 0x08,0x00,0x80,0xC9 ;REG1
.db 0x00,0x33,0x80,0x98 ;REG0
frq4:
.db 0xFF,0x00,0x00,0x00 ;REG5
.db 0x00,0x00,0x00,0x00 ;REG4
.db 0x00,0x00,0x00,0x00 ;REG3
.db 0x00,0x00,0x00,0x00 ;REG2
.db 0x00,0x00,0x00,0x00 ;REG1
.db 0x00,0x00,0x00,0x00 ;REG0
frq5:
.db 0xFF,0x00,0x00,0x00 ;REG5
.db 0x00,0x00,0x00,0x00 ;REG4
.db 0x00,0x00,0x00,0x00 ;REG3
.db 0x00,0x00,0x00,0x00 ;REG2
.db 0x00,0x00,0x00,0x00 ;REG1
.db 0x00,0x00,0x00,0x00 ;REG0
frq6:
.db 0xFF,0x00,0x00,0x00 ;REG5
.db 0x00,0x00,0x00,0x00 ;REG4
.db 0x00,0x00,0x00,0x00 ;REG3
.db 0x00,0x00,0x00,0x00 ;REG2
.db 0x00,0x00,0x00,0x00 ;REG1
.db 0x00,0x00,0x00,0x00 ;REG0
frq7:
.db 0xFF,0x00,0x00,0x00 ;REG5
.db 0x00,0x00,0x00,0x00 ;REG4
.db 0x00,0x00,0x00,0x00 ;REG3
.db 0x00,0x00,0x00,0x00 ;REG2
.db 0x00,0x00,0x00,0x00 ;REG1
.db 0x00,0x00,0x00,0x00 ;REG0
.exit