在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5068|回复: 9

[求助] AMBA2.0中hready信号的理解

[复制链接]
发表于 2015-1-14 09:54:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
hready.png
如图,在设计flash 控制器的时候,flash编程时间20us,页擦除时间2ms,我是使用hready直接拉低直到操作完成,显然这个时间
是百个周期以上了,不知道这样有没有什么影响。请各位高手帮忙解答。多谢了!
ps:现在的问题是,flash可以正常运行程序,编程、擦除也都ok,但通过keil使用jtag下载程序到flash时,出现了"can't stop arm device"
的问题,flash编程算法是参考keil的arm/flash目录下其他的编程算法改的。
发表于 2015-4-28 21:47:57 | 显示全部楼层
hready是AHB  master拿來跟Slave溝通的信號,假若Slave在busy的時候,hready就會為Low.
但是應為你一busy就會是2ms,,這對於system來說可能會太久了
因為你busy,system就lock住.
我在懷疑ARM裡面是否有check busy 時間長度的機制.
當busy超過多久的時間之後,ARM會判斷到錯誤.
发表于 2015-5-6 21:15:27 | 显示全部楼层
学些顶贴!!!!!!!!!
发表于 2015-8-5 16:12:32 | 显示全部楼层
谢谢分享!
发表于 2015-8-20 09:47:25 | 显示全部楼层
要清楚一点,ahb master的hready是告诉ahb的控制或者数据信号有效,这个是slave给出的。
对于slave有两个hready,一个输出hready_out用于控制自己对于数据的控制能力。一个hready_in用于在有效的位置采样控制和数据。
发表于 2015-8-25 09:43:28 | 显示全部楼层



   yangweijlu说的很正确,看你的描述,你拉低的是slave输出的hready,由于AHB总线是共享总线,你拉低该信号后表示flash这个slave正在使用总线,那么其他模块就没法使用总线,导致总线被挂住,系统暂停,影响了系统的使用效率。   建议修改为hready不拉低,flash控制器那里给出一个擦除完成的状态寄存器,软件间隔一段时间去读该寄存器来保证操作完成,如此的话,总线还能被其他模块使用,提高总线的使用效率。
发表于 2015-9-23 11:12:53 | 显示全部楼层
发表于 2016-4-27 09:32:47 | 显示全部楼层
回复 1# lkiller_hust


   你这个问题应该就是总线被卡住了,你这样弄总线的效率比较低,还是采用楼上的做法吧
发表于 2016-5-7 15:35:59 | 显示全部楼层
slave送出的hready拉低会hold住整个AHB总线的。你的控制器在收到AHB总线的编程或者擦除命令时,不要拉低hready,而是等编程或擦除命令完成之后,送出中断或者状态位,再让master来查询处理
发表于 2016-5-20 00:18:28 | 显示全部楼层
很有用,赞一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 00:18 , Processed in 0.028733 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表