Доброго всем времени суток. Давно я тут не был. Очень заинтересовала данная статья.
Ссылка: http://radiokot.ru/konkurs/030/
Хочу повторить, благо все микросхемы можно достать. Вопрос к автору статьи вот программа для меги8: .include "SD_CMD.inc" где этот файл в архиве? Просьба к автору выложить этот файл
Буду полностью разбиратся если генератор не заработает.
Спасибо за внимание.
Привет. Афтар тута. Появляюсь на сайте редко, так что терпение и ещё раз терпение (оно вам ещё понядобится при отладке ).
Да, Kodi, вы первый кто заинтересовался. Файл действительно забыл, выкладываю.
Хочу добавить что я переразвел аналоговую часть: поставил два операционника, по одному на канал. С помощью драйвера трансформатора и ферритового транса организовал двуполярное питание для ОУ. Получил в результате на выходе +-3В с шумами 10мВ в амплитуде (и то видно что это феррит по питанию гадит). Если интересует могу выложить.
Но также в результате эксплуатации накопал пару глюков, они не смертельные, но они все-же есть:
1. не любит запись длинных сигналов с компьютера на девайс, где то обрывается связь девайса с компом и сигнал записывается не весь, чтобы записать сигнал занимающий всю память приходится делать несколько попыток.
2. работает в двуканальном режиме, одноканальный куда-то сбежал , надо прозванивать контакты или снова подбирать задержки в ПЛИС...
Глюки можно исправить, но я больше подумаваю собрать новый синтезатор на элементной базе помощнее: ARM проц + CPLD maxII EPM240T100C5+старый ЦАП, и вышло бы дешевле и связь надежней и ПЛИС быстрее и большей емкости...
Сам пользуюсь для симуляции сложных сигналов близких к реальным и дальнейшей их обработки с помощью ЦОС.
Степан спасибо что ответили. Я голосовал за вашу статью на конкурсе. Как по мне заслуживала 1 место. Дополнения интересуют. АРМ сейчас сам ковыряю устаревший правда LPC2142.
А на счёт терпения мне его не занимать. Например ту же плату с арм запускал 2 недели.
Так что с терпением проблем нет
Выкладываю обновленую аналоговую часть. Совместима со старой цифровой частью, вставляется в тот же разъем, что и первый вариант.
Плату я сделал двустороннюю. На плате, с помощью драйвера max253 и ферритового трансформатора, организовано двуполярное питание для ОУ. Транс мотал сам в маленком ферритовом горшке, что-то вроде 17 витков в первичке и 27 сдвоеного провода во вторичке, нужно чтобы на вторичке получилось вольт 7-8. Частота драйвера полчилась 300 кГц.
Диодный мостик после транса делал на двух сборках по два диода Шотки.
Так как ОУ работают в режиме дифференциального усилителя то получилась своеобразная развязка по землям выходных каскадов с цифровой частью. Кстати, можно попробовать регулировать выходную амплитуду поставив переменное сопротивление в обратную связь в ОУ... не пробовал ещё.
Цифровое питание ЦАПа беру с платы с ПЛИС, аналоговое формирую заново с помощью дополнительного стабилизатора.
Все вместе даже влезло в старый корпус (фото см. в статье).
Здравствуйте, Степан! Сразу оговорюсь, что я новичок. Сейчас к сути вопроса. В прошивке ПЛИС для меня пока точно не ясно назначение блока Equator. Я догадываюсь, что это блок, который определяет, что по данному адресу заканчиваются записанные в SRAM байты сигнала при его чтении оттуда. Если условие совпадает, то в формирователе адреса устанавливается 3 бит в "0"...процесс более менее понятен. Хотел бы узнать подробности.
С уважением, Олег
Вы почти все правильно поняли .
В RAM контроллер закачивает сигнал, начиная с адреса 7FFFF. Первые 4 байта это настройки сигнала, конечный адрес + режим MODE (одно или двухканальный). После этого контроллер выставляет пин Reset в 1, что является стартом к выводу сигнала. ПЛИС при этом считывает RAM с самого начала (7FFFF). С помощью демультиплексора 3dmux первые три байта (конечный адрес сигнала в RAM) запоминаются в equator1, от четвертого байта запоминается только 1 бит MODE. А дальше запомненый адрес в equator1 постоянно сравнивается с текущим и при совпадении equator1 выдает на выход единичку. Эта единичка сбрасывает адрес считываемой памяти в 7FFFB (=7FFFF - 4), адрес начала сигнала.
ну вообще моим синтезатором можно управлять как с кнопок, так и по USB из программы (считал сигнал с порядковым номером N, нажал старт/стоп).
информацией по радиолюбительским аналогам не владею, особо и не копал.