По просьбе Александра RN3AUS переработал программу синтезатора (
http://136.su/index.php/topic,117.195.html). Протокол обмена немного изменился, но старый протокол можно по-прежнему использовать для управления частотой синтезатора.
ПРОТОКОЛ УПРАВЛЕНИЯ СИНТЕЗАТОРОМ
Программа написана для МК ATtiny2313, синхронизируемого кварцем 20 МГц. Программа затрачивает 10 тактов на одну выборку, т.е. частота выборок fS=2000 кГц.
Программа управляется по последовательному каналу уарт, скорость 115200 бод, формат данных 8N1.
В протоколе передачи используются пакеты двух типов. Первый тип используется для управления частотой, второй тип – для изменения фазы, сохранения когерентности сигнала и управления усилителем мощности. Оба пакета состоят из 4 байт. Нумерация байт слева направо, т.е. 1,2,3,4. Старший байт (№ 1) передаётся первым. Нумерация бит в байте справа налево, т.е. 7,6,..,0. 7-й бит первого байта является битом модификации. В качестве признака работоспособности программа возвращает по уарту принятый пакет, как квитанцию. Передача любого пакета заканчивается тайм-аутом 100 мкс.
1. Для установки частоты передается пакет, содержащий приращение фазы (так называемый код частоты). Признаком передачи первого пакета является наличие 0 в бите модификации. Допускаются любые значения от 0х00000000 до 0х7FFFFFFF. Переход к заданной частоте осуществляется примерно через 2 мкс после приёма последнего байта пакета.
2. Признаком передачи второго типа пакета является наличие 1 в бите модификации. Биты 6, 5 и 4 используются для указания контроллеру информации об изменении фазы, тона и PTT соответственно. Все биты независимы и могут передаваться в одном пакете.
2.1. Для передачи относительной фазы 6-й бит старшего байта устанавливается в 1. Код фазы передаётся во втором и третьем байтах. Второй байт является старшим байтом фазы. Дискретность фазы определяется единицей младшего бита 360/65536 = 0,0054932 градуса. Последний 4-й байт не несёт никакой информации и передается исключительно для получения равной длины обоих типов пакетов.
2.2. Для выключения тона (но сохранения когерентности синтезируемого сигнала) необходимо сбросить 5-й бит старшего байта. Для включения – соответственно установить его в 1.
2.3. Для включения передатчика (PD6 микроконтроллера) необходимо установить 4-й бит старшего байта. Для выключения – соответственно сбросить его в 0.
3. Программа микроконтроллера принимает пакеты и выполняет соответствующие действия, не прерывая генерации сигнала заданной частоты. После подачи питания программа вырабатывает синусоидальный сигнал частотой 137,5 кГц. Передатчик выключен.