Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Управление синтезатором с мк
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
novice2008
Здравствуйте. Помогите, плиз, разобраться с временными диаграммами DDS АD9854 в параллельном режиме записи регистров.



В какой последовательности надо выставлять адрес, данные, WR? Запись происходит по переднему или заднему фронту WR? Черточка над WR означает, что запись происходит при выставлении низкого уровня сигнала?

P.S. Может кто-нибудь подскажет где можно посмотреть пример программы управления синтезатором с мк, желательно AVR.

Заранее спасибо.
Baser
Цитата(novice2008 @ Jan 30 2008, 19:43) *
В какой последовательности надо выставлять адрес, данные, WR? Запись происходит по переднему или заднему фронту WR? Черточка над WR означает, что запись происходит при выставлении низкого уровня сигнала?

Все делать нужно именно так, как показано на диаграмме smile.gif
ВременнЫе параметры приводятся крайне допустимые. Мин. или мах. надо смотреть по смыслу.
Последовательность действий:
1. Выставить на порт 6 линий адреса А0-А5;
2. Выставить на порт (другой) 8 линий данных D0-D7;
3. Не раньше, чем через tasu=8ns после адреса опустить сигнал записи WR. При этом внутри синтезатора защелкнется адрес;
4. Не раньше, чем через tdsu=3ns после данных поднять сигнал записи WR. При этом внутри синтезатора защелкнуться данные;
Вот и все, цикл записи одного байта по одному адресу закончен. Далее можно точно также записать все остальное.
Еще обратите внимание на минимальные времена сигналов. Меньше (более быстро) нельзя, больше можно, хоть раз в час smile.gif

А пример программы - это просто несколько строк записей в порты AVR.
Doka
Цитата(Baser @ Jan 30 2008, 23:32) *
А пример программы - это просто несколько строк записей в порты AVR.

как сейчас с этим дела не знаю, но раньше с analog.com можно было скачивать GUI-приложения к их КИТам на DDS, которые через LPT программировали DDS.
novice2008
Baser, большое спасибо за подробный ответ!

Если предположить, что PA0-PA5 это линии адреса, PD0-PD7 - линии данных, PA6 - сигнал записи WR, программа будет выглядеть таким образом?
Код
sbi PORTA, 6

ldi r16, <адрес>
out PORTA, r16

<задержка >= tasu = 8нс>

cbi PORTA, 6

ldi r16, <данные>
out PORTD, r16

<задержка >= tdsu = 3нс>

sbi PORTA, 6
Baser
Цитата(novice2008 @ Jan 30 2008, 23:35) *
Если предположить, что PA0-PA5 это линии адреса, PD0-PD7 - линии данных, PA6 - сигнал записи WR, программа будет выглядеть таким образом?

Немного не так, нужно не забыть, что у вас WR находится на том же порту, что и адрес. При записи линию PA6 нужно маскИровать.

Код
sbi   PORTA, 6

in    r16, PORTA
andi  r16, 0xc0
ori   r16, <адрес>
out   PORTA, r16

cbi   PORTA, 6

ldi   r16, <данные>
out   PORTD, r16

sbi   PORTA, 6


И о задержках можно не беспокоиться, поскольку 8 ns это тактовая у процессора должна быть 125 MHz smile.gif
novice2008
Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.