[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Подключал к SPORT0 CAN контроллер SAE81C90 с последовательной шиной. Ничего не обычного.
DT0 - на MOSI, DR0 - на MISO, SCLK0 - на SCK.
TFS0 - на RFS0. Любой PF - на выборку ИМС с SPI.
Настройки SPORT0: Одноканальный, внутренние
SCLK и TFS, RFS внешняя, нормальный кадровый режим, кадровые импульсы отрицательной полярности,
компаундинг не используется, длина слова 16 бит.
Частота SCLK = 980 кГц.
Разрешены прерывания по приему слова. Передается в одном цикле команда - один байт данных. Алгоритм такой: для записи: выставляем выборку ИМС, записываем в TX0 в старшем байте команду SPI, в младшем данные. В прерывании по приему снимаем выборку.
При чтении: выставляем выборку ИМС, записываем в TX0 в старшем байте команду SPI, в младшем ничего. В прерывании по приему снимаем выборку. В принятом слове младший байт - считанный байт из SPI.
Можно продумать и чтение нескольких байт. Просто мне это было не надо.
E-mail: info@telesys.ru