Я программирую Cortex M3 для общения с SPI Flash. Один из битов конфигурации регистра управления SPI - это FRF
(формат кадра). Он может быть установлен в режим SPI Motorola (0) или в режим SPI TI (1). (См. Справочное руководство ARM на стр. 695 здесь .)
Таблица данных SPI Flash (доступна здесь ) не дает указания относительно того, какой режим мне следует использовать.
Каковы два разных режима, и какие я должен использовать для конкретной флеш-микросхемы, которую я использую?
{CPOL=0, CPHA=0}
Motorola или TI?Короткий взгляд на таблицу данных ARM предполагает, что основное различие между режимом TI и режимом Motorola связано с обработкой выходного сигнала, называемого SSPFSSOUT, который многим устройствам просто не нужен. Предполагается, что этот сигнал имеет высокий импульс между байтами, чтобы указать, какой бит каждого байта следует считать первым. В режиме TI он увеличивается во время передачи последнего бита байта, в то время как в режиме Motorola он повышается, а затем уменьшается между байтами. Микросхема флэш-памяти хочет сигнал выбора микросхемы, который удерживается на низком уровне в течение всей длительности транзакции, поэтому выходной сигнал с высоким уровнем между байтами для него не будет полезен.
Я ожидаю, что даже если SSPFSSOUT не используется, режим Motorola облегчит чтение данных в области (поскольку будет пауза после каждого байта), но режим TI может быть быстрее (поскольку он не будет тратить время на паузу). между байтами). Однако важно убедиться, что последовательность сигналов, которые генерирует контроллер, соответствует требованиям, приведенным в техническом описании периферийных устройств.
источник