Я делал так
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 123 20 мая 2004 г. 14:22
В ответ на: Народ! Поговорите со мной про SPI. Нужны свежие идеи. Любые идеи отправлено bialix 19 мая 2004 г. 22:23

Для передачи пакета мастер выставляет на SS "0" и делает паузу(величина паузы зависит от частоты опроса SS слейвом), slave постоянно опрашивает состояние SS(по таймеру или в основной программе это уж кому как...) обнаружив переход SS в "0" слейв устанавливает указатель приемного буфера на начало буфера.

Обработчик прерывания записывает данные в буфер(по адресу указанному в указателе премного буфера с автоинкрементом последнего) после приема заданного к-ва байт выставляет флажек.

Если во время обмена на SS выставляется 1 - ошибка.
Прием данных от слейва приемерно также.

Все операции начинаются с посылки коммандного пакета следующего содержания(размер известен!):
1 - адрес
2 - команда/тип следующего пакета/прием-передача итд
3 - CRC

Таким образом к-во принимаемых/предаваемых данных всегда известно заранее.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru