Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-окт-18 17:52

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 2018-июл-25 13:48 
Не в сети

Зарегистрирован: 2018-июн-15 15:11
Сообщения: 3
Добрый день!

Поработав с контроллером 1986BE8T, с модулем SPI заметили некоторые особенности, а именно, буфер FIFO приемника не очищается при считывании данных из него.

Мы принимаем данные по SPI(пусть будет 20 байт) по прерыванию и записываем их в массив, когда буфер FIFO приемника заполняется (8 байт), дальнейшая запись данных в него становится невозможной(буфер не обновляется и новые данные в него не записываются, следовательно остальные 12 байт невозможно считать), хоть в статус регистре написано, что буфер пуст.

Единственное решение, это выключать и включать модуль SPI, что бы данные в буфере приемника FIFO "обнулялись" и снова записывались в буфер FIFO(остальные 12 байт), но это тогда не соответствует принципу работы FIFO.

Может есть какой другой способ очищать буфер FIFO и принимать данные в любом количестве.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-июл-26 16:23 
Не в сети

Зарегистрирован: 2017-июл-14 15:02
Сообщения: 33
Откуда: АО "ПКК Миландр"
Открыть Добрый день!
NoName писал(а):
Добрый день!

Поработав с контроллером 1986BE8T, с модулем SPI заметили некоторые особенности, а именно, буфер FIFO приемника не очищается при считывании данных из него.

Мы принимаем данные по SPI(пусть будет 20 байт) по прерыванию и записываем их в массив, когда буфер FIFO приемника заполняется (8 байт), дальнейшая запись данных в него становится невозможной(буфер не обновляется и новые данные в него не записываются, следовательно остальные 12 байт невозможно считать), хоть в статус регистре написано, что буфер пуст.

Единственное решение, это выключать и включать модуль SPI, что бы данные в буфере приемника FIFO "обнулялись" и снова записывались в буфер FIFO(остальные 12 байт), но это тогда не соответствует принципу работы FIFO.

Может есть какой другой способ очищать буфер FIFO и принимать данные в любом количестве.
Закрыть


Добрый день! Нам не удалось добиться описанного Вами поведения блока SSP. Приём данных, количество которых больше, чем размер FIFO приёмника, успешно выполняется. При этом для своевременного считывания принятых данных использовались прерывание по заполнению FIFO приёмника на половину и более (SSPRXINTR) и прерывание по таймауту (SSPRTINTR).

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-июл-30 15:01 
Не в сети

Зарегистрирован: 2018-июн-15 15:11
Сообщения: 3
Спасибо за совет, все получилось.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB