赵大小高手
驱动牛犊
驱动牛犊
  • 注册日期2003-05-30
  • 最后登录2004-08-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1667回复:10

怎样读D12的ID?

楼主#
更多 发布于:2003-06-11 16:34
各位大虾:
请教两问题:
1 怎样读D12的ID?我看到别人说用READ chip ID(命令FD)来读,发完命令后,是要接着读出两BYTE数据吗?数据值为多少才表示命令生效了,是不是不为0就是生效了呢?
2,发的命令好像都无效有那些原因?
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-03 18:22
怎么没人知道?
z_bing
驱动中牛
驱动中牛
  • 注册日期2002-09-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-03 18:47
好象没有这条命令?反正我在命令表中没查到。
爱国守法,明理诚信,团结一致,战胜非典!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-03 19:58
呵呵,其实那就是个寄存器而已,你怎么读写别的寄存器就怎么读这个寄存器,这个寄存器的值是固定的,只能读不能写,datasheet上会告诉你寄存器的地址是多少。
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-03 23:03
没有,我找了半天也没有FD这个命令
CObject
驱动大牛
驱动大牛
  • 注册日期2002-08-18
  • 最后登录2017-07-22
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望106点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-07-04 08:40
D11的数据手册上好象有
[img=501x116]http://www.driverdevelop.com/forum//upload/CObject/2004-01-13_2.jpg[/img]
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-04 10:09
没有,我找了半天也没有FD这个命令

我估计它不是个命令,只是个寄存器而已,而你之前提到的那个函数里也就是几条读寄存器的指令而已,你怎么读的其他寄存器就读这个寄存器。
xjLegend
驱动小牛
驱动小牛
  • 注册日期2002-11-04
  • 最后登录2005-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-04 13:49
使用读取ID命令(0xfd)去读,读回两个字节的内容,第一个字节应为0x12,第二个字节为0x10。如果正确,则表明D12向单片机发送数据没有问题。

unsigned short D12_ReadChipID(void)
{
unsigned short i,j;

  if(bEPPflags.bits.in_isr == 0)
DISABLE;

outportb(D12_COMMAND, 0xFD);
i=inportb(D12_DATA);
j=inportb(D12_DATA);
i += (j<<8);

if(bEPPflags.bits.in_isr == 0)
ENABLE;

return i;
}
我想要点分,这样才有成就感嘛!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-04 22:18
为什么我读出的不是0x12,0x10,而是0x10,0x00?
难道是硬件有错?
puppypyb
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-04 23:08
jinghuiren 真是热心!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-06 16:58
读出的ID不是0x1210是否说明硬件有问题,但可以进行软连接。而且clockout时钟频率可以变化
游客

返回顶部