ch347的 DLL调用延迟时间

你好

我所使用的开发板是从淘宝上muselab买的贵司的开发板,usb转uart/i2c/spi/jtag。我所使用的是SPI功能。

我用python简单写了个调用CH347DLL.DLL里面的两个函数实现单字节的读写:

CH347.CH347StreamSPI4(dev_index,0x80,2,spi_buf)

CH347.CH347SPI_WriteRead(dev_index,0x80,2,spi_buf)

另外SPI的结构体配置如下:

classspi_config(Structure):

_fields_=[

("iMode",c_ubyte),

("iClock",c_ubyte),

("iByteOrder",c_ubyte),

("iSpiWriteReadInterval",c_ushort),

("iSpiOutDefaultData",c_ubyte),

("iChipSelect",c_ulong),

("CS1Polarity",c_ubyte),

("CS2Polarity",c_ubyte),

("iIsAutoDeativeCS",c_ushort),

("iActiveDelay",c_ushort),

("iDelayDeactive",c_ulong),

]

CH347_spi_cfg=spi_config()

CH347_spi_cfg.iMode=0x00

CH347_spi_cfg.iClock=0x01

CH347_spi_cfg.iByteOrder=0x01

CH347_spi_cfg.iSpiWriteReadInterval=0x00

CH347_spi_cfg.iSpiOutDefaultData=0xff

CH347_spi_cfg.iChipSelect=0x80

CH347_spi_cfg.CS1Polarity=0x00

CH347_spi_cfg.CS2Polarity=0x00

CH347_spi_cfg.iIsAutoDeativeCS=0x01

CH347_spi_cfg.iActiveDelay=0x00

CH347_spi_cfg.iDelayDeactive=0x00

CH347.CH347SetTimeout(dev_index,0xffffffff,0xffffffff)

CH347.CH347SPI_Init(self.dev_index,pointer(CH347_spi_cfg))

目前情况是调用前面的两个函数读写是正常的,能够正常读写数据,

但是测试时间(按上面的参数调用1W次上面的函数,计算平均时间)时,

发现调用CH347StreamSPI4/CH347SPI_WriteRead这两个函数,

都存在大概200us的延时才返回数据,

这样的话导致SPI的各种频率(64M/32M/16M/......400khz)设置都没有意义,

都是花了差不多时间。发起SCK的的频率确实是按照32Mhz去发,

但是大部分时间都是啥都没干,被浪费掉了。


想请教下:

1.我前面的spi配置以及调用方法有问题吗?

2.如何提高效率?


PS1:使用的UART1+I2C+SPI(VCPMode)

PS2:中途没有使用函数CH347OpenDevice/CH347CloseDevice

PS3:win10系统


谢谢


里面空格全部变成问号,在我更新了问题之后,试了几次一直去不掉。。。。不知道啥原因。最后把空格全部删除了


您好,此处代码显示不完全,已私信您麻烦发送一下完整代码,感谢配合。


微信发你


我和你的问题一模一样,请问后续是怎么解决的呢?


您好,已私信您,请注意后台消息。


这个问题解决了吗?我也遇到这个问题


您好,已私信您,请注意后台消息。


你好,我也是刚买了这个CH347做SPI, 也碰到这个问题,请帮忙看怎么处理,谢谢1


您好,可以邮件给我们,或者微信与工程师联系。联系方式已私信您这边。


我也有同样的问题,使用python速度提不上去


Hi,请确认下您使用的动态库是否为官网新版,此前其他工程师反馈的效率问题是因为CS单独控制影响,我们已经基于此优化了库和应用程序。SPI操作API需使用:CH347StreamSPI4/CH347SPI_WriteRead 


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