Hi,
????使用CH341PAR_LINUX資源,使用DEMO程序中的模擬SPI功能。請問SPI的波特率怎么設(shè)置?默認(rèn)狀態(tài)下的速度有限,可否提高?
謝謝!
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獲取資料。