Цитата(zombi @ Mar 28 2016, 18:51)

Предлагаете и в приёмнике и в передатчике использовать DMA?
А сколько тактов необходимо для передачи одного байта из увв во внутр. память и наоборот?
И как оба процесса синхронизировать?
Может я чето не понял
у вас есть 10 линий ио для реализации параллельного интерфейса
и нужно перекачать 1600 байт за 1 мс
так?
по схемотехнике:
на приемнике:
задействуем 1 полный порт для приема передачи
1 пин ввода вывода произвольный (разрешение интерфейса)
1 пин (строб для чтения данных) - если надумали работать через PWM таймера то зарезервировать вывод OC таймера если через евент систем - то любую ножку.
---
далее:
условимся что приемник будет командовать передатчиком т.е разрешать работу и стробить
----
что делает сигнал строба:
по спаду - передатчик готовит данные на выдачу на порт
по подъему приемник читает это все дело в буфер
можно и наоборот главное четко это для себя определить.
----
в приемнике разрешаем работу ножки вывода строба
определяем длительность спада как ОСА
определяем длительность подъема как ОСВ
задаем вершину счета (переменные PER или TOP) именно по ним коунтер таймера обнуляем
----
длительность периода можно регулировать
мне хватило 3 такта длит спада 3 такта подъема итого 6 на период + ещё запас до вершины таймера (TOP) , хотя top может равняться = OCB
31,25 нС * 6 = 187,5 нС/байт *1600 = 300 мкС
под ваше условие 1мс -
можно спокойно сделать период 10тактов +10тактов = 20*31,25 *1600 = 1000мкС
----
свои тайминги можете крутить как хотите переменными OCA OCB и PER.
---
Главное здесь то, что процу нужно обрабатывать только старт,стоп пакета и флаг прерывания дма.
зыы:
такие опыты я делал когда получил из образцов мега а1 ещё давным давно