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

 
 
 
Reply to this topicStart new topic
> проблема с сопряжением MSP430F169 и ADS7861
proga
сообщение Mar 15 2007, 13:58
Сообщение #1


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

Группа: Участник
Сообщений: 86
Регистрация: 17-01-06
Из: иркутск
Пользователь №: 13 278



У меня проблема с сопряжением MSP430F169 и высокоскоростного АЦП ADS7861 по последовательному интерфейсу SPI. Дело в том, что когда м-р выступает в роли ведущего, чтобы принять данные от АЦП, он должен записать какой-либо символ в буфер передачи U0TXBUF, так как операции передачи и приёма выполняются одновременно. Чтобы инициировать преобразование и одновременно передачу данных с АЦП нужно подать логическую единицу на вход CONVST и RD , причём при этом соблюсти некоторые условия. Преобразование инициируется, когда высокий уровень на CONVST удерживается 15нс. Важно чтобы CONVST находился в состоянии логической единицы минимум 10 нс. прежде переднего фронта внешнего генератора тактового сигнала или 5нс позади переднего фронта. В качестве внешнего генератора используется XT2CLK(8Мгц). На нём также производится основное тактирование MCLK м-ра. Так вот, мне не понятно как читать данные с этого АЦП. Когда я подам высокий уровень на CONVST и RD, данные начнут передаваться м-ру. Однако чтобы м-р начал принимать данные, нужно записать какой-либо символ в буфер передачи U0TXBUF. Произойдёт рассинхронизация процесса, т.е. данные на м-р уже идут, а м-р тем временем ещё выполняет инструкцию (MOV.B #Xh,&U0TXBUF), чтобы только начать читать эти данные. Документация ADS7861
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 15 2007, 17:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(proga @ Mar 15 2007, 14:58) *
У меня проблема с сопряжением MSP430F169 и высокоскоростного АЦП ADS7861 по последовательному интерфейсу SPI. Дело в том, что когда м-р выступает в роли ведущего, чтобы принять данные от АЦП, он должен записать какой-либо символ в буфер передачи U0TXBUF, так как операции передачи и приёма выполняются одновременно. Чтобы инициировать преобразование и одновременно передачу данных с АЦП нужно подать логическую единицу на вход CONVST и RD , причём при этом соблюсти некоторые условия. Преобразование инициируется, когда высокий уровень на CONVST удерживается 15нс. Важно чтобы CONVST находился в состоянии логической единицы минимум 10 нс. прежде переднего фронта внешнего генератора тактового сигнала или 5нс позади переднего фронта. В качестве внешнего генератора используется XT2CLK(8Мгц). На нём также производится основное тактирование MCLK м-ра. Так вот, мне не понятно как читать данные с этого АЦП. Когда я подам высокий уровень на CONVST и RD, данные начнут передаваться м-ру. Однако чтобы м-р начал принимать данные, нужно записать какой-либо символ в буфер передачи U0TXBUF. Произойдёт рассинхронизация процесса, т.е. данные на м-р уже идут, а м-р тем временем ещё выполняет инструкцию (MOV.B #Xh,&U0TXBUF), чтобы только начать читать эти данные. Документация ADS7861

Чет Вы не так поняли. Процессы рассинхронизированы по умолчанию - после записи символа для передачи SPI начнет генерировать клоки, которые будут использоваться для передачи информации от АЦП, то есть только тогда "пойдут данные". Вы для себя картинки нарисуйте - передача по SPI и циклы микроконтроллера - станет понятнее.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
rezident
сообщение Mar 15 2007, 18:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



У TI есть апликуха Interfacing the ADS786x to the MSP430F2013(slaa308). Посмотрите. Может ее идея вам чем-то поможет.
Go to the top of the page
 
+Quote Post
proga
сообщение Mar 15 2007, 18:27
Сообщение #4


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

Группа: Участник
Сообщений: 86
Регистрация: 17-01-06
Из: иркутск
Пользователь №: 13 278



Большое спасибо вам за ответы! Сейчас начну их анализировать.
Go to the top of the page
 
+Quote Post
proga
сообщение Mar 16 2007, 10:43
Сообщение #5


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

Группа: Участник
Сообщений: 86
Регистрация: 17-01-06
Из: иркутск
Пользователь №: 13 278



То есть я могу подать постоянный высокий уровень на выводы CONVST (преобразование) и RW (чтение), а для запуска преобразования и передачи одного байта данных просто перезаписать буфер U0TXBUF. Я всё правильно понял?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 20:22
Рейтинг@Mail.ru


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