реклама на сайте
подробности

 
 
> SPI и AD7895-10, ЦАП AD7233, Каков алгоритм работы с этими устройствапи по интерфейсу SPI
e-moe
сообщение Feb 22 2006, 13:45
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 38
Регистрация: 25-11-05
Из: Россия, Москва
Пользователь №: 11 377



Есть АЦП AD7895-10 и ЦАП AD7233, каков алгоритм работы с этими устройствапи по интерфейсу SPI на ATmega128? Как добится посыла dword в регистр ЦАП, и получение dword с АЦП при помощи spi?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Laptop
сообщение Feb 22 2006, 22:30
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



А в чем сложность? В даташите на чистом английском языке все написано.
Для AD7233: SYNC- низким уровнем разрешает SPI, SCLK- спадами тактового сигнала защелкивает данные, SDIN- собственно данные, LDAC- управление защелкой ЦАП, низкий уровень переписывает данные в выходную защелку, если удерживать в 0, то будет автоматически обновлять защелку каждые 16 бит.
Для AD7895: CONVST- спадающим сигналом запускаем преобразование, при этом BUSY переходит в 1, ждем пока не спадет и читаем данные. Можно защелкивать и по фронту и по спаду. Вроде все.
Так что сложностей с подключением никаких.
Go to the top of the page
 
+Quote Post
e-moe
сообщение Feb 23 2006, 13:37
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 38
Регистрация: 25-11-05
Из: Россия, Москва
Пользователь №: 11 377



Проблема какраз в английском если бы я его хорошо зна, небыло бы вопросов... smile.gif
Значит я правильно всё понял?
Для AD7895:
CONVST=0 на время t1 начинаю преобразование
жду пока BUSY нестанет = 0, если 0 то байт1=SPDR, байт2=SPDR
(тут возникает вопрос: сразу же можно читать второй байт что бы получить 2 байта или же надо что то выжидать)
Для AD7233: сбрасываю SYNC в 0, заношу в SPDR=байт1, SPDR=байт2 (тут сразу вопрос: : сразу же можно заносить второй байт или же надо что то выжидать)
LDAC = 0 на время t7 данные перемещаются из регистра на выходной регистр
Снова заношу 2 байта.
И как добится на выходе с ЦАП импульсов? Записать в регистры данные и просто сбрасывать LDAC, тогда будет циклически данные перемещаться или данные с выхода затираются а входной регистр становится пустым?
Go to the top of the page
 
+Quote Post
ALexx
сообщение Feb 24 2006, 13:52
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704



В приложении - код для работы с AD7894/95.
Линию занятости не контролировал - в моем случае время позволяло обойтись простой задержкой.
Обмен с АЦП сделан через SPI. Код под CodeVision.
Прикрепленные файлы
Прикрепленный файл  ADC7894_5_.zip ( 2.94 килобайт ) Кол-во скачиваний: 87
 
Go to the top of the page
 
+Quote Post
e-moe
сообщение Feb 24 2006, 18:35
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 38
Регистрация: 25-11-05
Из: Россия, Москва
Пользователь №: 11 377



to ALexx: Спасибо за приведённый исходный код. Правильно я понял момент: что бы получить байт по интерфейсу spi нужно для начала туда записать (SPDR=xx) любой хх байт, и после происходит прерывание по SPI, означающее, что данные готовы, и надо считать (xx=SPDR) байт хх. Что бы прочитать 2 байта нужно второй раз заслать произвольный байт и снова прочитать его?

to ALL: А по какому принципу работать с передачей данных, скажем двух байт (unsigned int) по SPI?
И как конкретно это выглядело бы на AD7233 или ему аналогичном?
Go to the top of the page
 
+Quote Post
ALexx
сообщение Feb 24 2006, 18:44
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704



Цитата(e-moe @ Feb 24 2006, 21:35) *
to ALexx: Спасибо за приведённый исходный код. Правильно я понял момент: что бы получить байт по интерфейсу spi нужно для начала туда записать (SPDR=xx) любой хх байт, и после происходит прерывание по SPI, означающее, что данные готовы, и надо считать (xx=SPDR) байт хх. Что бы прочитать 2 байта нужно второй раз заслать произвольный байт и снова прочитать его?


1)Совершенно верно!

2) Так же как и в первом случае, с той лишь разницей, что отсылаемые байты должны быть не произвольными, а осмысленными.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016