CH341 SPI 应用

Hi,

    使用CH341PAR_LINUX资源,使用DEMO程序中的模拟SPI功能。请问SPI的波特率怎么设置?默认状态下的速度有限,可否提高?

谢谢!

                                     

Hi,

    使用CH341PAR_LINUX资源,使用DEMO程序中的模拟SPI功能。请问SPI的波特率怎么设置?默认状态下的速度有限,可否提高?

谢谢!

           

您好:

    可以使用如下提供的库文件中的如下API进行SPI设置:

/*

 * ********************************************************************

 * 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 )   函数里


    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;
    }

这里有个调整I2C为低速的地方,但是其它高速、中速调整没有语句体现?

另外需用的是SPI,则调用 :

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

但是这个函数中没有发现类似( StreamMode & 0x03 )的设置速度的语句


                           

BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer,
            ULONG iReadLength, PVOID oReadBuffer )   函数里


    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;
    }

这里有个调整I2C为低速的地方,但是其它高速、中速调整没有语句体现?

另外需用的是SPI,则调用 :

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

但是这个函数中没有发现类似( StreamMode & 0x03 )的设置速度的语句

                       

您好:

需要把库中的如下CH34xSetStream API用下面代码定义进行替换即可:

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默认速度不可调,约56KB/s,如果需要修改速度,需要方案定制。


哪位大侠可以发一下CH341 usb2spi驱动API和测试案例给我?

最近在设计一个VS烧录SPIFLash的小软件

Q:931500274


有能在WINDOWS上运行的   USB转SPI调试助手吗


您好,麻烦发邮件至tech@wch.cn获取资料。


只有登录才能回复,可以选择微信账号登录