Raspberry PiはどのSPI周波数をサポートしていますか?
さらに:
- それらはすべてbootc.net SPIドライバーでサポートされていますか?
- SPIを介して他のチップと通信しようとする際に注意すべき追加の事項はありますか?
Raspberry PiはどのSPI周波数をサポートしていますか?
さらに:
回答:
Raspberry Pi SPIはAPBクロック速度で動作します。これは、コアクロック速度である250 MHzと同等です。これは、2〜65536の任意の偶数で除算して、目的の速度にすることができます。データシートでは、除数は2のべき乗でなければならないが、これは間違っています。奇数は切り捨てられ、0(または1)は65536に相当します。したがって、2より小さい除数は不可能です。
これにより、周波数範囲は3.814 kHz〜125 MHzで、間に32768ステップがあります。
(この問題に関して多くの誤った情報がありましたが、これらの結果は実験によって検証されました。その言葉を広めてください。)
SPIはコアクロック速度で実行するか、より遅い周辺機器用に分割できます。コアクロックは250 MHzです。分周器は、2 ^ 0から2 ^ 16までの2の累乗に設定できます。これは、3.8 kHz〜250 MHzのSPI周波数がサポートされることを意味します。
ソース:
.rate = 250000000, /* 250MHz */
//github.com/bootc/linux/blob/073993b3f3e23fb8d376f9e159eee410968e0c57/arch/arm/mach-bcm2708/bcm2708.cBCM2835のデータシートには、120ページに次のように記載されています。SPIブロックのクロックレジスタの値が含まれています。
BCクロック分周器SCLK =コアクロック/ CDIV CDIVが0に設定されている場合、除数は65536です。除数は2の累乗でなければなりません。奇数は切り捨てられます。最大SPIクロックレートはAPBクロックです。
APBバスの最大周波数とは何なのか参照できません。これはこのSoCではなくARM11のドキュメントの一部だと思います。
私はhttp://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.htmlで見られるようにテストし、速度を変更しました。
テストに合格したときの最大速度は15MHz = 15000KHzです:結果を参照してください:
spi mode: 0
bits per word: 8
max speed: 15000000 Hz (15000 KHz)
FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D
16MHzでのテストに失敗しました。アンドレ