SPIモードのFT232H ICを使用してディスプレイを駆動したいとします。私はクロック周波数を5MHzに設定しました。私のコードをテストすると、きついループでも約120マイクロ秒の間隔でコマンドが実行されることに気付きました。以下のコードでは、4バイトを書き込むコマンドを発行します。私はVBでストップウォッチを使ってアクションを実行し、スコープ上の信号も監視します。コードは一度実行するのに約200マイクロ秒、行に二度実行するのに約320マイクロ秒、3回にわたって450マイクロ秒かかるなどがあります。バイトの実際の送信には毎回約7マイクロ秒しかかかりません。残りの時間は何も起こらず、すなわち120マイクロ秒が各送信で無駄に見える。 質問:これは、FT232Hのルーチンの復旧だけで、非アクティブな時間ですか? ここに何か不足していますか?より良いコマンドがありますか?私はSPIを使って、できるだけ速くILI9341ディスプレイドライバチップにデータをクロックします。私は他の人がそれをしたことを知っている提案は大歓迎です!FT232H書き込みコマンド間の待ち時間
'Start
'Data transmit, no receive
SendBuffer(0) = &H10 'Output on rising clock, no input, MSB first, clock a number of bytes out
SendBuffer(1) = &H3 'Length L
SendBuffer(2) = &H0 'Length H
SendBuffer(3) = &HA
SendBuffer(4) = &HAA
SendBuffer(5) = &HA
SendBuffer(6) = &HAA
'About 1-3 microseconds to this point
FT_Status = FT_Write_Bytes(FT_Handle, SendBuffer(0), 7, BytesWritten) ' Write buffer to the device
'201 microseconds to this point
'Data transmit, no receive
SendBuffer(0) = &H10 'Output on rising clock, no input, MSB first, clock a number of bytes out
SendBuffer(1) = &H3 'Length L
SendBuffer(2) = &H0 'Length H
SendBuffer(3) = &HA
SendBuffer(4) = &HAA
SendBuffer(5) = &HA
SendBuffer(6) = &HAA
FT_Status = FT_Write_Bytes(FT_Handle, SendBuffer(0), 7, BytesWritten) ' Write buffer to the device
'321 microseconds to here
'Data transmit, no receive
SendBuffer(0) = &H10 'Output on rising clock, no input, MSB first, clock a number of bytes out
SendBuffer(1) = &H3 'Length L
SendBuffer(2) = &H0 'Length H
SendBuffer(3) = &HA
SendBuffer(4) = &HAA
SendBuffer(5) = &HA
SendBuffer(6) = &HAA
FT_Status = FT_Write_Bytes(FT_Handle, SendBuffer(0), 7, BytesWritten) ' Write buffer to the device
'450 microseconds to here