Цитата(Golikov A. @ Jan 19 2015, 22:36)

Как почистить кроме входного еще и выходной SPP FIFO?
Что-то у Вас неправильно с процессом останова SSP+DMA.
Как Вы DMA выключаете? Просто запрещаете его работу?
Учитываете, что в DMA тоже есть FIFO? И если просто сделать запрет каналу, то данные там могут остаться.
Да и останов у Вас наверное неверный раз в выходном FIFO SSP данные могут остаться. Не должно так быть.
Останов по переполнению это значит, что:
Вы запрограммировали DMA (два канала: TX и RX) на передачу/приём с SSP некоторого фиксированного блока (размер TX == размеру RX (или кратны)).
И останов нужно делать только в прерывании завершения этого блока (или если блоки кратны - по завершении наибольшего (когда оба блока завершены)).
А если Вы делаете стоп посередине (зачем-то), то сами себе злобный буратино. Тогда должны позаботиться об опустошении всех FIFO перед след. операцией.
Раз у Вас SSP-slave, то ещё наверное нужно после останова DMA, ожидания завершения активности SSP и запрета SSP, вычитать RX-FIFO SSP. Он вроде не сбрасывается при запрете SSP.
А в TX-SSP у Вас и не должно остаться данных, если как я описал будете работать.