牛卧堂MCU技术交流

标题: M487怎么提高高速U S B 转虚拟串口的传输速率呢? [打印本页]

作者: 匿名    时间: 2021-3-16 10:17
标题: M487怎么提高高速U S B 转虚拟串口的传输速率呢?
参 考 b s p 例 程 写 的 高 速 u s b 转 虚 拟 串 口,速 率 很 低,2 1 6 K B / s,想 问 下 有 没 有 能 提 升 速 率 的 办 法 ,或 者 有 这 方 面 的 其 他 的 例 程 ?
另 外,分 包 传 输 有 什 么 好 的 办 法 么 ?
我 现 在 是 先 传 一 个 最 大 包,然 后 在 中 断 处 理 器 里 判 断 缓 存 为 空,再 继 续 发 下 一 个 包。

感 谢 感 谢 !
作者: Angus    时间: 2021-3-16 10:47
M487 是USB做从机吗? 传输速率是  HOST决定的。在枚举时,HSOT会问USB Device转发的UART速率,然后HOST会控制下发速率,你可找新唐或其代理,具体咨寻。
作者: admin    时间: 2021-3-16 10:49
若您还有疑问,可以咨询您的代理 或 来电 021-6236-5999 原厂FAE咨询
作者: 匿名    时间: 2021-3-16 12:03
Angus 发表于 2021-3-16 10:47
M487 是USB做从机吗? 传输速率是  HOST决定的。在枚举时,HSOT会问USB Device转发的UART速率,然后HOST会 ...

M487是做usb设备,我之前查资料看到说传输跟波特率无关?
第一次用新唐的芯片,有很多不懂的。要是说错了请多包涵
作者: 匿名    时间: 2021-3-16 12:05
参考的例程是:M480BSP\SampleCode\StdDriver\HSUSBD_VCOM_SerialEmulator
作者: 匿名    时间: 2021-3-16 12:07
admin 发表于 2021-3-16 10:49
若您还有疑问,可以咨询您的代理 或 来电 021-6236-5999 原厂FAE咨询

我是直接淘宝旗舰店买的开发板
作者: admin    时间: 2021-3-16 13:44
游客 119.123.134.x 发表于 2021-3-16 04:07
我是直接淘宝旗舰店买的开发板

感谢您的回复!
您的问题涉及的点比较多,不是可以简单就讲清楚的.
如果您方便的话,建议还是来电原厂吧
作者: admin    时间: 2021-3-16 13:46
游客 119.123.134.x 发表于 2021-3-16 04:07
我是直接淘宝旗舰店买的开发板

或者 您觉得麻烦的话 可以直接向我们的天猫客服提问 也会有人帮您解答
作者: Angus    时间: 2021-3-16 23:14
游客 119.123.134.x 发表于 2021-3-16 12:03
M487是做usb设备,我之前查资料看到说传输跟波特率无关?
第一次用新唐的芯片,有很多不懂的。要是说错了 ...

发送速率是由主机决定的。 具体来说,USB设备插入主机后,主机会索要设备描述符,通过设备描述符,主机知道VCOM 的波特率和每次传输的数据包大小等等信息。主机"参考"描述符信息,决定多久发一个数据包。
速率慢,具体是什么原因,要查看调试一下代码。
作者: 匿名    时间: 2022-7-1 17:21
Numaker-PFM-M487开发板下载官方M480_BSP_CMSIS_V3.05.003内的SPIM测试case后,日志上均显示fail。
写开发板上的W25Q32数据时,也异常,使用的步骤是:

(1)erase,代码是:SPIM_EraseBlock(u32Addr, 0, OPCODE_SE_4K, 1, 1);

(2)enable Write,代码是  spim_set_write_enable(1, 1UL);

(3)send data,,先发02命令,再发24位地址,之后发送数据,代码如下:(测试时写入地址设置为0,发送数据为1~256,一共256个字节)

        SPIM_SET_SS_EN(1);

        cmdBuf[0]=OPCODE_PP;//02命令 Page program

        SwitchNBitOutput(1);

        spim_write(cmdBuf, 1);



        addBuf[0]=(uint8_t)(u32Addr >>16);

        addBuf[1]=(uint8_t)(u32Addr >>8);

        addBuf[2]=(uint8_t)(u32Addr >>0);

        SwitchNBitOutput(1);

        spim_write(addBuf, 3);

                 

        SwitchNBitOutput(1);

        spim_write(pu8TxBuf, sizeof(pu8TxBuf));

        SPIM_SET_SS_EN(0);

(4)wait done,代码是:spim_wait_write_done(1UL);



除此之外还采用了库函数中的写函数,但是结果也是error,哪位能帮忙解答一下,不甚感激。






欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2