2016-06-08 66 views
0

我正在使用FTDI 2232H迷你模塊作爲我正在使用的系統的模塊。我試圖使用FTDI的GPIO而不是TDO/DI引腳(MPSSE模式)從設備串行讀取數據。因此,例如,我的想法可能是將GPIO輸入連接到器件輸出,並在FTDI發送的每個SCLK處檢查GPIO輸入是高電平還是低電平。通過這樣做,我可以分別將這些高點或低點分別存儲爲1或0。在FTDI 2232H迷你模塊上使用GPIO輸入代替TDO/DI

是否有可能做到這一點,或類似的FTDI?

有沒有辦法保持SCLK脈衝計數或上升/下降沿?

我在Windows環境中使用C++。

感謝

+0

MPSSE基本上是設定或一組命令,以產生波形的指令。那麼就有點模式,你必須爲每個狀態變化發送一個命令。我假設你想要mpsse模式,並且「簡單地」發送正確的命令來創建你想要的波形。 –

+0

現在PC沒有任何東西可以用作GPIO,所以看起來你運氣不好。 – Lundin

+0

@Lundin - 有問題的GPIO位於FT2232芯片上,而不是PC上。然而,如果必須通過USB明確地完成某些操作,那麼使用這些操作可能會大幅度降低速度,而不是讓MPSSE在本地執行操作,而只是通過USB移動塊數據。所以問題是如果MPSSE可以通過任意GPIO引腳工作,或者只能通過某些指定引腳工作。FT2232文檔將會有答案。 –

回答

0

你所使用位模擬其FTDI芯片支持 包括FT232H描述。 這是我用於我的設備的技術Nusbio和所有位撞擊 計算是用C#編寫的。

這裏有一些源執行SPI位撞擊從EEPROM中讀取數據。 EEPROM/SPI/EEPROM_25AAXXX_BASE.cs

位反轉對FT232RL或FT231X等芯片有好處。 但是如果你有一個FT232H,你可以做得更好。

要回答您的問題,關鍵是知道什麼是通信 協議使用的設備,您正試圖從中讀取數據。

如果協議是SPI,I2C,JTAG或串行端口,那麼您應該使用FT232H支持的本地 模式。如前所述,它被稱爲mpsse,多協議同步串行引擎 ,以簡化同步串行協議(USB轉JTAG,I2C,SPI(MASTER)或bit-bang)設計。

如果你的設備支持一些你剛纔提到的CLOCK線的外顯協議,你可能必須寫自己的位打。

有沒有辦法保持SCLK脈衝計數或上升/下降沿? Windows PC很可能會考慮主人,所以你的程序負責時鐘的高和低,並跟蹤它。

I2C Bit banging Adafruit 16x9 LED Matrix with Nusbio

mpsse SPI with the FT232H and OLED 128x64 display

+0

感謝您的回覆。我前一陣子想到了。其實很簡單。 器件使用SPI在每個正時鐘沿從不同引腳並行輸出數據。我將這些引腳中的每一個連接到FTDI上的GPIO(設置爲輸入)。我所需要做的就是發送FTDI命令來切換代表串行時鐘的引腳(也是SPI設備的串行時鐘),提取FTDI輸入引腳的狀態,解析它們,然後重複,直到全部數量的數據位被提取。 所以,正如你所說,有點砰的一聲。 – RCRod21