nanorobot (04.05.2015 01:04 - 10:55, просмотров: 1697)
Две платы на stm32 общаются по SPI через ISO7241CDWR(25MHz). ИСО установлена на плате являющейся слейвом (CPU STM32F373/72MHz) плата мастер(CPU STM32F407/168MHz) соединена со слейвом плоским кабелем длиной < 10см, сигнальные линии чередуются с земляными.
Слейв корректно принимает данные при битрейте 21MHz. Мастер принимает данные с ошибкой уже на частоте 10MHz, более или менее уверенно работает на 5MHz. Рекомендации по разводке/развязке питания ИСО соблюдены. Питание мастера: флайбэк 5v->LDO 3.3 v, Питание слейва: тот же флайбэк-> DC/DC 5v/5v ->LDO 3.3v Характер ошибок приема мастером - сдвиг на 1 бит вправо по сравнению с отправленными слейвом даннымиб плюс "заединичивание" некоторых нулевых битов. Прием передача в обеих платах реализованы с использованием ПДП.
Обнаружил такую хню: Если на мастере выстваить SPI_CR1_CPHA = 1, а на слейве оставить = 0, то картина меняется на обратную: Мастер - Ок, слейв - в ошибке. Разные задержки в элементах ИСО?