Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SAM7X и SPI
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Terminator
Подскажите как быть.

Для работы с SPI использую PDC и прерывание окончания передачи/приёма буфера (ENDRX/ENDTX)
Сделал "ручное" дёрганье CS-ами. Выяснилось что прерывание ENDTX происходит до того как реально окончится передача SPI и CS поднимается до того как вылетят последние битики.
Эта проблема решилась переключением CS-а на аппаратное управление.

Однако если идут две посылки по разным девайсам, последний байт первой посылки доходит не полностью. Явно идёт запуск новой посылки до окончания предыдущей.

Как разрулить эту ситуацию?
Я пока вижу один вариант, все посылки переделать в чтение и ждать прерывания ENDRX.
Terminator
Цитата(prottoss @ Feb 29 2008, 16:38) *


Спасибо за наводку, добавил обработку TXEMPTY.
В этом драйвере, если скорость SPI сделать поменьше, прерывание случится несколько раз впустую.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.