Saya pemrograman bare-metal Cortex M3 untuk berbicara dengan SPI Flash. Salah satu bit konfigurasi register kontrol SPI adalah FRF
(format Frame). Ini dapat diatur ke mode SPI Motorola (0) atau ke mode TI SPI (1). (Lihat buku petunjuk referensi ARM 695 di sini .)
Datasheet SPI Flash (tersedia di sini ) tidak memberikan indikasi mengenai mode mana yang harus saya gunakan.
Apa dua mode yang berbeda, dan mana yang harus saya gunakan untuk chip Flash spesifik yang saya gunakan?
{CPOL=0, CPHA=0}
Motorola atau TI?Pandangan sekilas pada lembar data ARM akan menunjukkan bahwa perbedaan utama antara mode TI dan mode Motorola ada hubungannya dengan penanganan mereka terhadap sinyal output yang disebut SSPFSSOUT yang banyak perangkat tidak perlu. Sinyal ini seharusnya berdenyut tinggi di antara byte untuk menunjukkan bit mana dari setiap byte yang harus dianggap sebagai yang pertama. Dalam mode TI, ia berjalan tinggi selama transmisi bit terakhir dari byte, sedangkan dalam mode Motorola pergi tinggi dan kemudian rendah antara byte. Chip flash menginginkan sinyal pilih chip yang ditahan rendah selama seluruh durasi transaksi, sehingga output yang tinggi antara byte tidak akan berguna untuk itu.
Saya berharap bahkan ketika SSPFSSOUT tidak digunakan, mode Motorola akan membuat data lebih mudah dibaca pada lingkup (karena akan ada jeda setelah setiap byte) tetapi mode TI mungkin lebih cepat (karena tidak akan membuang waktu jeda antara byte). Yang penting, bagaimanapun, adalah untuk memastikan bahwa urutan sinyal yang dihasilkan oleh pengontrol memenuhi persyaratan yang diberikan dalam lembar data periferal.
sumber