我已经参考52840 SDK usb_msc 修改成SD卡外设
在裸机下该例程可以正常使用,将SD卡挂载到PC上,但是移植到蓝牙透传例程下测试时发现,蓝牙协议栈一旦初始化,貌似是时钟时序冲突,会导致USB不能使用。
想请问:
1.在蓝牙协议栈下使用USB是不是有什么需要注意的地方,比如这个52840的USB是不是只能裸机下使用?
2.如果全速USB是可以在蓝牙协议栈下使用的,可否指示下参考设计资料,目前sdk 蓝牙主从机例程里好像没有带USB操作的例程。。。
下面是我的USB初始化和移植的重点位置。我试过把USB_Init函数放置在协议栈初始化之后,但是会导致直接log打印报错,并死机重启。放置在协议栈初始化之前,不会死机,但是USB没有作用。

    treh2014 1.在蓝牙协议栈下使用USB是不是有什么需要注意的地方,比如这个52840的USB是不是只能裸机下使用?

    这上应该是可以同时使用的

    treh2014 2.如果全速USB是可以在蓝牙协议栈下使用的,可否指示下参考设计资料,目前sdk 蓝牙主从机例程里好像没有带USB操作的例程。。。

    根据你的测试,应该是USB_init()里与协议栈里的定时器有冲突,你可以跟进去看看是不是用了同一个定时器

      5 天后

      Wireless-Tech 经过多次测试,最终发现问题在USB挂载SD卡这里,一旦开启广播,USB挂载SD卡就会失败,表征为PC端只能看到盘符,驱动“大容量存储设备”正常,(类似读卡器不插卡状态下插入电脑)。然后将USB挂载对象改为内部RAM,在开启广播下就可以正常挂载了,因此怀疑是SPI数据线挂载时对蓝牙协议栈有冲突,这种情况在之前spi高速写入sd卡数据测试时尤为明显。初步认为使用USB挂载SD卡,在蓝牙协议栈下只能在蓝牙广播关闭/扫描关闭的情况下才能使用。如果有误,请指出斧正谢谢。

        treh2014 鉴于这个问题,是否有尝试将SPI的速率调高?挂载失败的返回值是多少?

          Wireless-Tech APP_SDCARD SPI调成8M了+125k初始化了,还是一样的情况,我把damo程序分享到链接了,大佬有时间可以帮忙看下吗?这个例程的main函数里屏蔽开启广播那一句代码就可以正常使用,不屏蔽就不行。。。https://pan.baidu.com/s/1Kw75-z6NJekTd6fuY-tWWw 提取码:xksr

            treh2014 这个没办法调试,手上都没有你一样的硬件;为什么不把两个SPI的速率调高,你用逻辑分析仪看过调了速率生效了吗?有没有尝试相应地将广播间隔调长些?

              8 个月后

              我也遇到类似的问题了,我用52840 dongle做了一个虚拟串口的应用,可是当我把SD卡集成进去后,USB就不能工作了,单独的USB_CDC_ACM是可以工作的,单独的FATFS案例也是可以工作的,合并起来就有问题
              我在想这两个部分是不是底层有什么冲突,可是我没找到,有人遇到同样的问题吗

                撰写回复...