搜索
bottom↓
回复: 17

陀螺仪的iic读取出问题

[复制链接]

出0入0汤圆

发表于 2011-11-8 15:04:02 | 显示全部楼层 |阅读模式
小弟现在用dsp28335的i2c与陀螺仪itg3200进行通信,采用的是用读板上rtc的程序。调试时改变了地址,也根据51的例程写了相应的读函数,但是总是没成功,是不是还有时钟或者其他方面的问题啊

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-11-8 15:56:52 | 显示全部楼层
资料里I2C的移位脉冲挺详细的,再有就是I2C地址得正确(CS置高=I2C接口通讯,SDO/SA0是地址选择,高为1,低为0)

出0入0汤圆

发表于 2011-11-8 18:42:37 | 显示全部楼层
程序贴上来我给你看看.

出0入0汤圆

 楼主| 发表于 2011-11-11 19:57:00 | 显示全部楼层
回复【2楼】oldbreadman  
-----------------------------------------------------------------------


(原文件名:QQ截图20111111195318.jpg)


(原文件名:QQ截图20111111195441.jpg)


(原文件名:QQ截图20111111195458.jpg)


部分代码是这样,各位帮忙看看   thx

出0入0汤圆

发表于 2011-11-12 16:07:01 | 显示全部楼层
你的读写时序没有严格按照PDF中的读写时序来。
这可能是读不出来的原因。请对照PDF仔细检查。
而且你用的WriteData,ReadData例程是否符合ITG3200的读写时序也要严格检查。

我用ITG3200时,最初就是因为读写时序不对而读不到准确值。

不过即使不初始化,直接读0x68或0x69(看你的地址设定),如果程序没问题,也能读到0x68或0x69出来。

出0入0汤圆

 楼主| 发表于 2011-11-13 12:25:54 | 显示全部楼层
回复【5楼】oldbreadman  
-----------------------------------------------------------------------

谢谢啊。这个程序本来是读写板上RTC的,没有问题。我就想IIC通讯应该是差不多,就直接移植过来ITG3200这边了,但是用虚拟示波器看了一下,读写都不行

出0入0汤圆

发表于 2011-11-15 14:32:58 | 显示全部楼层
哈哈,也是用335的同仁,学习学习,不过我是用335的ADC读数据,不是数字的传感器。

出0入0汤圆

发表于 2011-11-16 16:59:12 | 显示全部楼层
你可以先试试写数据,我调试28335与L3G4200时就是这样一步一步来的,一般写只要地址对了都应该可以看到波形

出0入0汤圆

 楼主| 发表于 2011-11-27 13:45:31 | 显示全部楼层
还有一个问题就是在ITG3200的datasheet里面在读寄存器的时候并没有分高地址和低地址,而我参考RTC的程序是有这样分的,然后就按RTC的分为高地址和低地址了 这样有没有问题呢

出0入0汤圆

发表于 2011-11-27 13:55:54 | 显示全部楼层
高低地址可以理解为28335发送buffer的前后字节

出0入0汤圆

发表于 2011-11-27 14:09:00 | 显示全部楼层
高低地址可以理解为28335发送buffer的前后字节

出0入0汤圆

 楼主| 发表于 2011-11-27 14:11:07 | 显示全部楼层
回复【8楼】nnnkey  
-----------------------------------------------------------------------


(原文件名:QQ截图20111127141010.jpg)
还有就是这个频率要不要改

出0入0汤圆

 楼主| 发表于 2011-11-27 14:15:24 | 显示全部楼层
回复【10楼】nnnkey  
-----------------------------------------------------------------------

谢谢啊 不同的硬件读写时序程序都要重新写的吗

出0入0汤圆

发表于 2011-11-28 07:05:29 | 显示全部楼层
高低电平赋值可能有区别,不过只要是标准的400k的iic,应该都一样,我现在也只是调通了4200,345和5883,其它的没接触过

出0入0汤圆

 楼主| 发表于 2011-12-7 10:50:26 | 显示全部楼层
回复【14楼】nnnkey  
-----------------------------------------------------------------------

现在有了模拟的I2C,可以读了,但是只读时都有问题

出0入0汤圆

发表于 2011-12-8 22:41:04 | 显示全部楼层
这个是我的IIC初始化部分,你可以参考下
I2caRegs.I2CPSC.all = 14;   // Prescaler - need 7-12 Mhz on module clk (150/15 = 10MHz)
   
   I2caRegs.I2CCLKL = 5;                        // NOTE: must be non zero
   I2caRegs.I2CCLKH = 2;                        // NOTE: must be non zero
   I2caRegs.I2CIER.all = 0x24;                // Enable SCD & ARDY interrupts

   I2caRegs.I2CMDR.all = 0x0020;        // Take I2C out of reset
                                                                           // Stop I2C when suspended

   I2caRegs.I2CFFTX.all = 0x6000;        // Enable FIFO mode and TXFIFO
   I2caRegs.I2CFFRX.all = 0x2040;        // Enable RXFIFO, clear RXFFINT,

   return;

出0入0汤圆

 楼主| 发表于 2011-12-9 12:03:20 | 显示全部楼层
回复【16楼】nnnkey  
-----------------------------------------------------------------------

thx,你用的是硬件的IIC,我现在改用模拟的了,就是在读0x00时,出现的是0xD1,而这个本来是要出现ITG3200的ID0x68的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 03:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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