Перейти к содержанию
    

Битые данные из RX_FIFO MAX3107

Всем доброго времени суток. Проблема - может быть кто сталкивался.

 

Имеется устройство (к сожалению, не моей разработки), и в нем MAX3107, стоящий на макетной плате в качестве моста между SPI-интерфейсом проца (CC5515) и одним устройством с UART. UART - полнодуплексный, 921600. SPI - от 6 до 15 МГц. CS SPI-интерфейса расходится еще на три устройства, которые в данной конфигурации спят. Обмен через мост идет пакетами по 64 байта.

 

На передачу связка работает без нареканий. При приеме же наблюдаю следующее - в вынимаемом из приемного FIFO потоке байт попадаются перестановки или вставки последовательностей байт из свежепринимаемых пакетов. Например, прилетели пакет P1 и за ним пакет P2. Последовательность вынимаемого из FIFO может выглядеть так:

 

P1[1], P1[2],..., P1[18], P2[1], P2[2], P1[19], P1[20], P1[30], P1[31], P1[21],..., P1[29], P1[30], P[31].

 

Последовательность получается длиннее на длину "вклинившихся" кусков.

 

Пробовал читать как одинарными обращениями к регистру RHR, так и пакетом (запись "0" в 0х00 MAX, затем пачка чтений). При одинарных обращениях ошибка возникает заметно реже (1-2 в 32 мбайтах потока), чем при пакетных (1 ошибка на 30-40 кбайт). При пакетной записи проблема отсутствует (проверяли логическим анализатором/бордой для приема UART на 921600).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...