Есть задача. Надо на фиксированной частоте(50 или 100 МГц) на 8 бит шину выдавать данные. Очень критично, чтобы данные шли строго равномерно во времени с одинаковыми промежутками между байтами. Одна из идей, поместить массив данных размером 100МБ в SDRAM, на асме написать процедуру, которая будет эту память читать в цикле байт за байтом и т.о. на шине памяти мы и получим необходимую последовательность байт. Вопрос в том, можно ли так настроить контроллер SDRAM контроллеров AT91RM9200 или AT91SAM9260 чтобы из памяти данные выходили равномерно? Почитав описания я понял, что могут помешать две вещи: 1. При циклическом чтении, по достижении границ страницы или строки, контроллер памяти указанных процессоров будет генерировать команду precharge, потом заново активировать строку и давать новую команду чтения. Этот процесс заберет в сумме 8 тактов. Т.о. в потоке данных будут появляться пробелы.
2. Авто рефреш. Я должен буду настроить количество тактов через которое контроллер будет передавать в SDRAM команду ато рефреша, что так же сделает паузу в выходе данных на 16 тактов.
Верны ли мои опасения, что таким подходом не получить равномерного потока данных или я что-то не допонял в работе SDRAM и указанных выше контроллеров?
|