[an error occurred while processing this directive]
Для начала можно посчитать
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено BLACKEAGLE 28 февраля 2003 г. 10:24
В ответ на: 2 BLACKEAGLE: с8051f006 (25МГц) для выхода на прерывание от спай нужно минимум ~750nS, ну хоть тресни. И битики хоть так, хоть эдак - по барабану. отправлено sdy 28 февраля 2003 г. 03:48

Сначала считаем затяжку прерываемой программы. Берем наихудший случай, когда прерывание угодило в начало самой длинной (8 тактов/320 нс) команды DIV. Потом - один такт/40 нс на детектирование флага прерывания. Следующая команда - неявный LCALL (4 такта/160 нс) самОй ISR, итого - 13 тактов/520 нс. Кроме того, если флаг прерывания взвелся в момент исполнения чьей-то RETI, то еще 5 тактов/200 нс, т.к. после RETI одна команда выполняется принудительно (в нашем случае - тот же DIV). В таком печальном случае будет затрачено 18 тактов/720 нс, и это теоретический максимум.

В сАмом оптимистическом раскладе получается 1 такт/40 нс на детектирование флага прерывания (когда флаг взвелся в конце команды) и неявный LCALL (4 такта/160 нс), итого - 5 тактов/200 нс, и это теоретический минимум.

Полагая, что SPI ISR должна сделать что-нибудь простое, назначим ее длину в 10 двухтактовых команд, т.е. 800 нс. В результате получим худший случай - 720+800=1520 нс, дадим небольшой запас - пусть будет 2000 нс, это даст 500 Кбайт/сек или 4 Мбит/сек - выше этой скорости SPI на 25-МГц Cygnal'ах гонять нэ нада, болно будэт ;)

Вот, и без железа обошлись.

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

Ответы



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

E-mail: info@telesys.ru