DSP切换主频后,导致USB访问读卡器失败,该怎么处理? - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7427|回复: 12
打印 上一主题 下一主题

DSP切换主频后,导致USB访问读卡器失败,该怎么处理?

[复制链接]

24

主题

125

帖子

1466

积分

金牌会员

Rank: 6Rank: 6

积分
1466
跳转到指定楼层
楼主
发表于 2016-11-3 14:55:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在开发的产品要求控制功耗,因此在操作过程中,会根据不同情况设置不同的CPU主频。
在程序中的操作是,改变PLL0的配置参数。

现在遇到的问题是:切换CPU主频后,会导致USB访问读卡器失败,也不是每次都失败。
请问该如何解决?
每次切换主频,都先调用 USBHMSCDriveClose( )关闭USB设备,然后重新连接吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
沙发
发表于 2016-11-4 20:03:05 | 只看该作者
您有试过用不同的读卡器测试吗?
回复 支持 反对

使用道具 举报

24

主题

125

帖子

1466

积分

金牌会员

Rank: 6Rank: 6

积分
1466
板凳
 楼主| 发表于 2016-11-5 09:14:44 | 只看该作者
本帖最后由 lushidegreen 于 2016-11-7 14:39 编辑
human 发表于 2016-11-4 20:03
您有试过用不同的读卡器测试吗?

没有,我们产品PCB上用的是AU6435,是一个读卡器芯片。
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
地板
发表于 2016-11-8 13:50:51 | 只看该作者

USB 子系统模块的时钟需要由主时钟二分频提供的 更改主频后必须 重新初始化 USB 子系统

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

24

主题

125

帖子

1466

积分

金牌会员

Rank: 6Rank: 6

积分
1466
5#
 楼主| 发表于 2016-11-8 15:15:20 | 只看该作者
嗯,这部分我是理解的,USB2.0的内部总线是由PLL0_SYSCLK2驱动的。而外部的USB2.0 PHY是由PLL0_AUXCLK驱动的,这个时钟起始就直接来自外部晶振,我们硬件上是24M。

如前面所述,也不是每次切换CPU主频后,都会导致USB访问读卡器失败。但是在无法确定什么时候会失败的情况下,只能关闭USB再重新连接了。

点评

如果不能准确确定发生问题的具体情况 恐怕很难解决 你具体是怎么调频的?  详情 回复 发表于 2016-11-9 09:09
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2016-11-9 09:09:46 | 只看该作者
lushidegreen 发表于 2016-11-8 15:15
嗯,这部分我是理解的,USB2.0的内部总线是由PLL0_SYSCLK2驱动的。而外部的USB2.0 PHY是由PLL0_AUXCLK驱动 ...

如果不能准确确定发生问题的具体情况 恐怕很难解决 你具体是怎么调频的?
回复 支持 反对

使用道具 举报

24

主题

125

帖子

1466

积分

金牌会员

Rank: 6Rank: 6

积分
1466
7#
 楼主| 发表于 2016-11-9 09:42:11 | 只看该作者
我是直接把GEL文件的函数写入C文件,然后调用device_PLL0( )函数,修改PLL0的倍频和后分频系数。

点评

跑 SYS/BIOS 可以试试 ti.sysbios.family.c674.power 组件来调频  详情 回复 发表于 2016-11-9 13:45
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
8#
发表于 2016-11-9 13:45:54 | 只看该作者
lushidegreen 发表于 2016-11-9 09:42
我是直接把GEL文件的函数写入C文件,然后调用device_PLL0( )函数,修改PLL0的倍频和后分频系数。 ...

跑 SYS/BIOS 可以试试 ti.sysbios.family.c674.power 组件来调频
回复 支持 反对

使用道具 举报

7

主题

104

帖子

705

积分

高级会员

Rank: 4

积分
705
9#
发表于 2016-11-9 23:16:47 | 只看该作者
不知道楼主的工程编译有没有优化,device_PLL()中的延时变量在不同的优化等级情况下结果是不同的,会不会是因为优化选项作祟
回复 支持 反对

使用道具 举报

24

主题

125

帖子

1466

积分

金牌会员

Rank: 6Rank: 6

积分
1466
10#
 楼主| 发表于 2016-11-10 15:33:21 | 只看该作者
本帖最后由 lushidegreen 于 2016-11-10 15:35 编辑

@希望缄默
“跑 SYS/BIOS 可以试试 ti.sysbios.family.c674.power 组件来调频”
(先反映个问题,论坛里点“回复”怎么无效呢?)

回正题,我是跑SYS/BIOS。power组件没用过,不知道怎么用。
我在C文件中添加了#include <ti/sysbios/family/c674/power.h>,打开power.h文件,没看到有函数接口。

恕我水平有限,还望“希望缄默”给予指点,也能让大家多学几招。
就比如,我要切换PLL0的频率,用power组件该怎么实现呢?能否给出代码示例?
再如,要使能或者禁止某个外设模块,又该怎么实现?

点评

可能是装的某个插件与 chrome 内核浏览器不兼容 用 IE 是可以的 实例同事还在搞  详情 回复 发表于 2016-11-10 16:03
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-6-18 06:38 , Processed in 0.056523 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表