lordak 0 20 февраля, 2010 Опубликовано 20 февраля, 2010 · Жалоба Доброго времени суток! Есть ли у кого-то опыт работы с несколькими AD7730, одновременно подключенными к микроконтроллеру? При подключении общей линии SCLK на два AD7730 они каким-то образом влияют друг на друга, и корректного считывания данных не происходит. Считывается лишь несколько неправильных значений, после чего считывание прерывается. CS у второго AD7730 при данном эксперименте постоянно выставлен high. SPI-интерфейс эмулируется программно. Если SCLK развести отдельно на каждый AD7730, используя для этого 2 ножки микроконтроллера, то все нормально. Как бороться с этой проблемой? Заранее спасибо, если что-то сможете подсказать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
radioman 0 21 февраля, 2010 Опубликовано 21 февраля, 2010 (изменено) · Жалоба Доброго времени суток! Есть ли у кого-то опыт работы с несколькими AD7730, одновременно подключенными к микроконтроллеру? При подключении общей линии SCLK на два AD7730 они каким-то образом влияют друг на друга, и корректного считывания данных не происходит. Считывается лишь несколько неправильных значений, после чего считывание прерывается. CS у второго AD7730 при данном эксперименте постоянно выставлен high. SPI-интерфейс эмулируется программно. Если SCLK развести отдельно на каждый AD7730, используя для этого 2 ножки микроконтроллера, то все нормально. Как бороться с этой проблемой? Заранее спасибо, если что-то сможете подсказать. Привет! Работаю с тремя ADE7753, подключенными к одному ATMEGA8515, т.е. линия SCLK подключена параллельно на все три ADE. Проблем со считыванием регистров и данных с ADE нет. Возможно надо посмотреть как проходит инициализация SPI интерфейса для микроконтроллера, может там бага порылась :) Ниже исходник инициализации SPI. Удачи! ATMEGA8115 ;*** CONFIGURATE PORT B *** LDI TEMP, (1<<SCK)|(1<<MOSI) OUT DDRB, TEMP ;******************************************************************************* ;* НАСТРОЙКА SPI * ;******************************************************************************* LDI TEMP,(1<<SPE)|(1<<MSTR)|(1<<CPHA)|(0<<CPOL)|(0<<SPR0)|(1<<SPR1); OUT SPCR, TEMP LDI TEMP,(1<<SPI2X); OUT SPSR, TEMP Изменено 21 февраля, 2010 пользователем Radioman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться