CH341 SPI 應(yīng)用

Hi,

????使用CH341PAR_LINUX資源,使用DEMO程序中的模擬SPI功能。請問SPI的波特率怎么設(shè)置?默認(rèn)狀態(tài)下的速度有限,可否提高?

謝謝!

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Hi,

????使用CH341PAR_LINUX資源,使用DEMO程序中的模擬SPI功能。請問SPI的波特率怎么設(shè)置?默認(rèn)狀態(tài)下的速度有限,可否提高?

謝謝!

? ? ? ? ? ?

您好:

????可以使用如下提供的庫文件中的如下API進(jìn)行SPI設(shè)置:

/*

?* ********************************************************************

?* FUNCTION : Set Stream Mode

?* arg:

?* Mode : Set Stream Mode

?* -> bit0~1 : set I2C SCL rate

?* ? --> 00 : Low Rate /20KHz

?* ? --> 01 : Default Rate /100KHz

?* ? --> 10 : Fast Rate /400KHz

?* ? --> 11 : Full Rate /750KHz

?* -> bit2 : set spi mode

?* ? --> 0 : one in one out(D3 :clk/ D5 :out/ D7 :in)

?* ? --> 1 : two in two out(D3 :clk/ D4,D5 :out/ D6,D7 :in)

?* -> bit7 : set spi data mode

?* ? --> 0 : low bit first

?* ? ? ? ? --> 1 : high bit first

?* other bits must keep 0

?* ********************************************************************

?*/

BOOL CH34xSetStream( ULONG Mode )


BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer,
?? ??? ??? ?ULONG iReadLength, PVOID oReadBuffer )?? 函數(shù)里


??? mWrBuf[i++] = CH341A_CMD_I2C_STREAM;
?? ?if(( StreamMode & 0x03 ) == 0 )
?? ?{
?? ??? ?mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10;
?? ??? ?mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10;
?? ?}

這里有個調(diào)整I2C為低速的地方,但是其它高速、中速調(diào)整沒有語句體現(xiàn)?

另外需用的是SPI,則調(diào)用 :

BOOL CH34xStreamSPIx( ULONG iChipselect, ULONG iLength,
?? ??? ??? ?PVOID ioBuffer, PVOID ioBuffer2 )

但是這個函數(shù)中沒有發(fā)現(xiàn)類似( StreamMode & 0x03 )的設(shè)置速度的語句


? ? ? ? ? ? ? ? ? ? ? ? ? ?

BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer,
?? ??? ??? ?ULONG iReadLength, PVOID oReadBuffer )?? 函數(shù)里


??? mWrBuf[i++] = CH341A_CMD_I2C_STREAM;
?? ?if(( StreamMode & 0x03 ) == 0 )
?? ?{
?? ??? ?mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10;
?? ??? ?mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10;
?? ?}

這里有個調(diào)整I2C為低速的地方,但是其它高速、中速調(diào)整沒有語句體現(xiàn)?

另外需用的是SPI,則調(diào)用 :

BOOL CH34xStreamSPIx( ULONG iChipselect, ULONG iLength,
?? ??? ??? ?PVOID ioBuffer, PVOID ioBuffer2 )

但是這個函數(shù)中沒有發(fā)現(xiàn)類似( StreamMode & 0x03 )的設(shè)置速度的語句

? ? ? ? ? ? ? ? ? ? ? ?

您好:

需要把庫中的如下CH34xSetStream?API用下面代碼定義進(jìn)行替換即可:

BOOL CH34xSetStream( ULONG Mode )

{

UCHAR mBuffer[CH341_PACKET_LENGTH];

ULONG mLength;

if( VenIC < 0x20 )

return false;

StreamMode = (UCHAR)( Mode & 0x8F );

mBuffer[0] = CH341A_CMD_I2C_STREAM;

mBuffer[1] = (UCHAR)(CH341A_CMD_I2C_STM_SET | StreamMode & 0x0F);

mBuffer[2] = CH341A_CMD_I2C_STM_END;

mLength = 3;

if( CH34xWriteData( mBuffer, &mLength ))

{

if( mLength >= 2 )

return true;

}

return false;

}

SPI默認(rèn)速度不可調(diào),約56KB/s,如果需要修改速度,需要方案定制。


哪位大俠可以發(fā)一下CH341 usb2spi驅(qū)動API和測試案例給我?

最近在設(shè)計一個VS燒錄SPIFLash的小軟件

Q:931500274


有能在WINDOWS上運(yùn)行的? ?USB轉(zhuǎn)SPI調(diào)試助手嗎


您好,麻煩發(fā)郵件至tech@wch.cn獲取資料。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频