SPI не работает должным образом с высокой скоростью микроконтроллера

Я соединяю некоторые датчики на основе SPI с микроконтроллером MSP430. Проблема в :

Микроконтроллер работает на частоте 20 МГц, а тактовая частота SPI составляет 1 МГц.

Когда я уменьшаю скорость микро до примерно ‹4 МГц, тогда интерфейс работает нормально, но когда я увеличиваю ее, я получаю ненужные данные от ведомого SPI.

Какие меры предосторожности мне нужно принять, чтобы справиться с такими проблемами.,


person Virendra Kumar    schedule 08.07.2015    source источник
comment
Я использую канал SPI 4 МГц между ведущим процессором 72 МГц и подчиненным процессором 100 МГц - частота процессора здесь ни о чем не говорит. Я бы порекомендовал вам использовать прерывания для обработки периферийных устройств SPI и, возможно, рассмотреть возможность использования DMA.   -  person Morten Jensen    schedule 08.07.2015


Ответы (1)


На MSP430 обычно используется периферийное устройство USCI в режиме SPI для запуска интерфейса. Это периферийное устройство позволяет выбирать источник тактового сигнала, генерируемого в качестве ведущего SPI, а также управлять делением тактового сигнала, чтобы он соответствовал тактовой частоте, принимаемой ведомым устройством SPI. Проверьте биты UCSSELx в регистре UCAxCTL1. В зависимости от выбранного источника тактового сигнала вам может потребоваться предварительно масштабировать сгенерированный тактовый сигнал с помощью регистров управления скоростью передачи данных USCI_Ax. Из вашего вопроса следует, что вы используете SPI на SMCLK без предварительного масштабирования. Это объясняет, почему снижение частоты ЦП заставляет работать периферийное устройство SPI. С точки зрения системы вам будет лучше поддерживать SMCLK на высокой частоте, а затем предварительно масштабировать главные часы SPI, чтобы они соответствовали ограничениям подключенного периферийного устройства.

Решение о том, как использовать часы, часто является системной проблемой. Вам нужно будет рассмотреть источник часов, то есть ACLK или SMCLK, и ограничения подключенных периферийных устройств. Это должно сказать вам, как вам может понадобиться предварительно масштабировать высокоскоростные часы (например, SMCLK), чтобы соответствовать ограничениям подчиненного устройства SPI. Обычно он настолько сложен, что мне приходится рисовать его, чтобы убедиться, что я могу выполнить все требования к периферийным устройствам.

person andy mango    schedule 08.07.2015