[an error occurred while processing this directive]
|
при просмотре осциллом наблюдаются большие временные промежутки между последовательными чтениями SPI,
есть такое, ибо у данного LPC обращение к периферии занимает до 12 тактов + анализ на окончание передачи байта тоже забирает эти 12 тактов и в сумме это становится соизмеримо с передачей самого байта
на такой скорости.
Выход: использовать SPI1 у которого FIFO на 8 байт
и кидать в него сразу пачками. А еще лучше сделать размер SPI фрейма
на 2 байт. Итого можно кинуть до 16 байт за раз.
Например:
S1SPDR = W1; (2 байта)
S1SPDR = W2;
.....
S1SPDR = W7; (2 байта)
и гдето между передачей половины (там есть такой флаг)
начинать считывать первые 4 слова а по окончанию всей передачи
(тоже есть такой флаг) считывать оставшиеся 4 слова.
Убыстряет процесс обмена по SPI значительно (проверено)
попытка ускорить работу контроллера (скорости чтения из флешь памяти) приводит к зависаниям,
при включении МАМ почемуто приходится делить частоту спиай еще на два...
слово =почемуто= меня просто убило:)) изучайте LPC вобщем.
E-mail: info@telesys.ru