|
|
发表于 2009-12-23 17:46:31
|
显示全部楼层
先说我不是大牛喔
" k# a, `& ?/ s% Y; C! p1 B7 S+ F8 i7 ?; z+ a' Y
没错,读clockgen是用block r/w
$ Q, B |' _+ x2 N6 @! P- q
7 R- U. S4 r( k( f* G* q1 k$ h流程和byte,word r/w类似; f, l. r( y& L+ L
! r: q# x" _9 ]1) check host_status reg(smbusbase+0x0)的busy bit(bit0)=0,否则clear status(写0xfe进去)
% j$ B# R" q& x6 G2)按部就班,写clkgen的slave address和protocol和cmd到相应的寄存器并且开始读写(smbusbase+0x2 bit6)9 M1 o6 `8 E1 {$ u0 S' \
3)等待smbusbase+0x0 bit7,bit2=1并且check smbase+0x0 bit4位看有没有错误(=0就OK)/ h' z- w. |* s, A
4)在host data0 reg可以拿到block count,然后依次在smbase+0x07就可以拿到clkgen data啦2 |. P4 \7 L, K' C
- S7 y+ I* I# ~+ A
写也类似
. M. e8 l3 ~( Z" r6 o
' c& {- I0 f0 t: n/ R9 \小弟这里也写了一个类似的工具hwiotest
hwiotest.rar
(566.7 KB, 下载次数: 1437)
|
|