Я хочу использовать микросхему FT232H в режиме SPI для управления дисплеем. Я установил тактовую частоту на 5 МГц. При тестировании своего кода я заметил, что даже в тесном цикле команды выполняются с разницей примерно в 120 микросекунд. В приведенном ниже коде я даю команду записать 4 байта. Я измеряю действие секундомером в VB, а также смотрю сигналы на прицеле. Код занимает около 200 микросекунд для выполнения один раз и около 320 микросекунд для выполнения два раза подряд, 450 микросекунд для 3 раз и так далее. Фактическая отправка байтов занимает всего около 7 микросекунд каждый раз. В остальное время ничего не происходит, т.е. 120 микросекунд тратятся впустую на каждую передачу. Вопросы: Является ли это неактивное время просто восстановлением процедур в FT232H? Я что-то упустил здесь? Есть ли лучшая команда для использования? Я хочу использовать SPI для синхронизации данных с чипом драйвера дисплея ILI9341 как можно быстрее. Я знаю, что это сделали другие. Предложения приветствуются!
'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