Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: связь AD7391 c Atmega8
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ViDo
Добрый день, господа. Может у кого-нибудь есть опыт связи Меги8 с ЦАП-ом AD7391. Этот ЦАП по SPI-совместимому интерфейсу подключается, но как я непробовал конфигурить SPI интерфейс и на отдельно на asm-е эмулировал SPI - упорно никакого сигнала на выходе нет. Пишу в CodeVision, ногу REF к питанию 5В цепляю.
Petka
Опиши проблемму подробнее. Что именно не работает? SPI может не работать если fuse выставлены с запрещением SPI, хотя вряд ли, если ты программируешь через ISP.
BVU
Цитата(ViDo @ Sep 20 2005, 14:43)
Добрый день, господа. Может у кого-нибудь есть опыт связи Меги8 с ЦАП-ом AD7391. Этот ЦАП по SPI-совместимому интерфейсу подключается, но как я непробовал конфигурить SPI интерфейс и на отдельно на asm-е эмулировал SPI - упорно никакого сигнала на выходе нет. Пишу в CodeVision, ногу REF к питанию 5В цепляю.
*


Протокол то хоть правильно реализован (SPI)? Если писали сами, могли сделать ошибку. Возьмите лучше - готовый (рабочий).
ViDo
Я брал готовый из CodeVision, но по-моему в протоколе SPI сигнал SS активный низким уровнем а для записи данных в этот ЦАП на ногу LD нужно подавать высокий.
Может у кого-нибудь найдется исходник на рабочий SPI?
KRS
Цитата(ViDo @ Sep 21 2005, 10:33)
Я брал готовый из CodeVision, но по-моему в протоколе SPI сигнал SS активный низким уровнем а для записи данных в этот ЦАП на ногу LD нужно подавать высокий.
Может у кого-нибудь найдется исходник на рабочий SPI?
*


когда SPI в режиме мастер и SS настроен на выход, модуль SPI не использует эту ногу, ей нужно дергать самому.
запись в цап обычно по восходящему фронту
во все цапы которые попадались мне я обычно пишу так

Код
WaitSpi MACRO
       LOCAL _wsploop
_wsploop:  sbis SPSR, SPIF
          rjmp _wsploop
  ENDM        

out SPCR, xxxxx //нужная конфигурация SPI
cbi LD_PORT, LD_PIN //LD вниз

out SPDR, rXXX //обычно старший байт и номер канала
WaitSpi
out SPDR, rXXX //младший байт
WaitSpi

sbi LD_PORT, LD_PIN //LD вверх
ViDo
Здравствуйте, господа.
Да, ногой SS действительно нужно дергать самому. Только для AD7391 сначала на LD нужно высокий подать, а после окончания передачи данных - низкий. Все заработало, спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.