Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: проблема с сопряжением MSP430F169 и ADS7861
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
proga
У меня проблема с сопряжением MSP430F169 и высокоскоростного АЦП ADS7861 по последовательному интерфейсу SPI. Дело в том, что когда м-р выступает в роли ведущего, чтобы принять данные от АЦП, он должен записать какой-либо символ в буфер передачи U0TXBUF, так как операции передачи и приёма выполняются одновременно. Чтобы инициировать преобразование и одновременно передачу данных с АЦП нужно подать логическую единицу на вход CONVST и RD , причём при этом соблюсти некоторые условия. Преобразование инициируется, когда высокий уровень на CONVST удерживается 15нс. Важно чтобы CONVST находился в состоянии логической единицы минимум 10 нс. прежде переднего фронта внешнего генератора тактового сигнала или 5нс позади переднего фронта. В качестве внешнего генератора используется XT2CLK(8Мгц). На нём также производится основное тактирование MCLK м-ра. Так вот, мне не понятно как читать данные с этого АЦП. Когда я подам высокий уровень на CONVST и RD, данные начнут передаваться м-ру. Однако чтобы м-р начал принимать данные, нужно записать какой-либо символ в буфер передачи U0TXBUF. Произойдёт рассинхронизация процесса, т.е. данные на м-р уже идут, а м-р тем временем ещё выполняет инструкцию (MOV.B #Xh,&U0TXBUF), чтобы только начать читать эти данные. Документация ADS7861
Dog Pawlowa
Цитата(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 и циклы микроконтроллера - станет понятнее.
rezident
У TI есть апликуха Interfacing the ADS786x to the MSP430F2013(slaa308). Посмотрите. Может ее идея вам чем-то поможет.
proga
Большое спасибо вам за ответы! Сейчас начну их анализировать.
proga
То есть я могу подать постоянный высокий уровень на выводы CONVST (преобразование) и RW (чтение), а для запуска преобразования и передачи одного байта данных просто перезаписать буфер U0TXBUF. Я всё правильно понял?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.