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

 
 
> Помогите настроить SPORT
alexeika007
сообщение Nov 15 2011, 19:42
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 15-11-11
Из: Воронеж
Пользователь №: 68 326



Ситуация такая: уже 2 дня бьюсь над тем, что бы организовать прием данных с ацп и дальнейшую обработку их процессором BlackFin537. Вроде прописал все настройки, написал прерывания, проверил кучу раз. С осциллографом пролазил CS и SCLK, все правильно приходит, а данных нет.... А если быть точнее, то процессор находится в прерывании постоянно и не отвечает на остальные команды.... состояние регистра SPORT1_STAT= 0045.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexeika007
сообщение Nov 18 2011, 13:41
Сообщение #2





Группа: Новичок
Сообщений: 9
Регистрация: 15-11-11
Из: Воронеж
Пользователь №: 68 326



Задача считать данные с 14-ти разрядного АЦП (AD 7357) от Аналог Девайс через Sport1? вот текст

// настройка SPORT1
*pSPORT1_RCLKDIV= 99;
ssync();
*pSPORT1_RFSDIV = 1000;
ssync();
*pSPORT1_RCR2= 0x0d;
ssync();
*pSPORT1_RCR1= RCKFE | RFSR | IRCLK | IRFS | LRFS | RSPEN;


Вот прерывание:
EX_INTERRUPT_HANDLER(SPORT1_RX_ISR)
{
if (*pSPORT1_STAT & 1)
{
rxf = *pSPORT1_RX;
rxt = *pSPORT1_RX;
}

В данном случае происходит переполнение FiFO, сейчас вариант немного другой:

// настройка SPORT1
*pSPORT1_RCLKDIV= 14;
ssync();
*pSPORT1_RFSDIV =6;
ssync();
*pSPORT1_RCR2= 0x10 | RXSE;
ssync();
*pSPORT1_RCR1= RCKFE | RFSR | IRCLK | IRFS | RSPEN;

Правда точно щас не скажу значение *pSPORT1_RFSDIV, потому что подбирал.... А проект на работе(( И в прерывание добавил цикл, проверки ROVF|RUVF, если они есть, заново прописать настройки порта... Работает, но мне кажется, что что-то здесь не так...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 18 2011, 13:45
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(alexeika007 @ Nov 18 2011, 17:41) *
Вот прерывание:
EX_INTERRUPT_HANDLER(SPORT1_RX_ISR)
{
if (*pSPORT1_STAT & 1)

Здесь лучше не if, а while.

Цитата(alexeika007 @ Nov 18 2011, 17:41) *
Работает, но мне кажется, что что-то здесь не так...

В прерывании выгребать данные как-то не комильфо. Используйте DMA.
Go to the top of the page
 
+Quote Post



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

 


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


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