SPI: Mode TI atau Motorola?

8

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?

Randomblue
sumber

Jawaban:

1

Mode Motorola dan TI merujuk ke berbagai konfigurasi polaritas jam (CPOL) dan fase jam (CPHA). Polaritas jam menentukan apakah sinyal tinggi atau rendah menandai jam, fase memberi tahu perangkat kapan untuk mengambil sampel jalur data.

Menurut lembar data ARM Anda, Anda dapat mengatur CPOL dan CPHA untuk pengontrol SPI Anda.

Chip flash Anda (Lihat bab 3) mendukung {CPOL = 0, CPHA = 0} atau {CPOL = 1, CPHA = 1}.

Untuk informasi lebih lanjut, http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Clock_polarity_and_phase

Toby Jaffey
sumber
Aha, terima kasih! Jadi yang mana? Apakah {CPOL=0, CPHA=0}Motorola atau TI?
Randomblue
Saya tidak ingat, atau menemukan sumber yang berwibawa.
Toby Jaffey
1
Setiap kali saya menentukan bahwa @Randomblue telah menggunakan cakupan, saya merasa lebih mudah untuk mengukur daripada melihat ke atas.
Kortuk
1
@Kortuk: Dengan "ruang lingkup" maksudmu "osiloskop", kan? Kedengarannya sangat menarik, tetapi saya belum pernah melakukan hal seperti itu sebelumnya. Bisakah Anda menunjuk tutorial semacam menjelaskan bagaimana melakukan ini?
Randomblue
7
Maaf, tapi jawaban itu salah. Mode TI tidak ada hubungannya dengan polaritas. Untuk informasi lebih lanjut, buka di sini: infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0194g/...
4

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.

supercat
sumber