Перейти к содержанию
    

Доброго времени суток!

Есть ли у кого-то опыт работы с несколькими AD7730, одновременно подключенными к микроконтроллеру?

При подключении общей линии SCLK на два AD7730 они каким-то образом влияют друг на друга, и корректного считывания данных не происходит. Считывается лишь несколько неправильных значений, после чего считывание прерывается.

CS у второго AD7730 при данном эксперименте постоянно выставлен high. SPI-интерфейс эмулируется программно.

Если SCLK развести отдельно на каждый AD7730, используя для этого 2 ножки микроконтроллера, то все нормально.

Как бороться с этой проблемой?

Заранее спасибо, если что-то сможете подсказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!

Есть ли у кого-то опыт работы с несколькими 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

Изменено пользователем Radioman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...