larrybirdkobe 发表于 2011-9-9 15:08

ADXRS450陀螺仪的理解

<p class="MsoNormal"><span lang="EN-US"><span style="text-decoration: none; ">      <b>  <a href="http://www.analog.com/zh/ADXRS450" target="_new">ADXRS450 </a></b></span></span><b><span style="font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman";
mso-font-kerning:0pt">是一款数字输出陀螺仪,主要用于医疗、工业、仪器仪表、稳定和其它高性能应用。这款陀螺仪具有极佳的抗冲击和振动能力,适合恶劣环境下的应用。</span> <span lang="EN-US"><o:p></o:p></span></b></p>

<p class="MsoNormal"><b><span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";mso-font-kerning:0pt">使用</span><span lang="EN-US">ADXRS450</span><span style="font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman";
mso-font-kerning:0pt">等数字输出陀螺仪时,无需进行模数转换,从而可以节省系统成本和电路板面积。</span><span lang="EN-US">ADXRS450</span><span style="font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman";
mso-font-kerning:0pt">通过</span><span lang="EN-US">SPI</span><span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman";mso-font-kerning:0pt">接口进行通信。下面的电路演示了如何实现支持这种通信的硬件设置。</span><span lang="EN-US" style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;
color:#323E32;mso-font-kerning:0pt"><o:p></o:p></span></b></p>

<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:宋体;
mso-bidi-font-family:宋体;color:#323E32;mso-font-kerning:0pt"><o:p><b> </b></o:p></span></p>

<p class="MsoNormal"><b><span style="font-size: 12pt; font-family: 宋体; ">    在介绍陀螺仪之前先要简要说一下其他两种运动传感器——加速度传感器和电子罗盘。</span><span class="Apple-style-span" style="font-family: 宋体; font-size: 16px; ">加速度传感器相当于一个重锤在中间的弹簧系统,四面八方有弹簧撑着它。平放在桌面时,有的弹簧被拉长,有的被压扁。变化时,不同的弹簧受到不同的压缩,从而侦测出不同方向的力。它的典型应用包括手机<span lang="EN-US">/</span>相机画面水平和垂直的切换。</span></b></p>

<p class="MsoNormal"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; "><b> <o:p></o:p></b></span></p>

<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体; "><b>    电子罗盘主要侦测地磁。常见的电子罗盘主要基于霍尔效应。但是地磁环境不完美,比如地磁的南极在地球不同的表面不一定指的同一个北方;而在地球不同纬度,地磁的方向和水平方向的夹角也不同。因此电子罗盘只能指一个大致的方向,然后进行修正。此外,电子罗盘还容易受到如金属、扬声器、天线等磁场的干扰。尤其是应用在手机上时,需要特别小心地在<span lang="EN-US">PCB</span>上选一个合适的位置。<span lang="EN-US"><o:p></o:p></span></b></span></p>

<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体; "><b>虽然以重力为参照的加速度传感器和以地磁为参照的电子罗盘可以在地球表面形成垂直和水平面的三维空间覆盖,但因为二者均以地球而并非物体本身为参照物,因此不能很好地模拟物体的整个运动过程。此外,由于加速度传感器容易受到线性运动时产生的力的干扰、电子罗盘容易受到诸如金属及手机等其他磁场的干扰,其应用受到了很大的局限。陀螺仪这个测量角速度的传感器不仅以物体本身作为参照物,而且具有很高的精度,因此可以对其他运动传感器做有益的补充,从而使得运动检测更加完备。<br>    </b><span lang="EN-US" style="color: rgb(50, 62, 50); "><o:p></o:p></span></span><span class="Apple-style-span" style="border-collapse: collapse; "><b>ADXRS450是数字输出的,无需进行AD转换,可直接与MCU接口,从而简单的实现角速度等运动参量的测量。主要是通过SPI接口,如果对SPI接口不熟的可以看一下振南电子视频教程中有关SPI的部分,讲得还是比较详细的,个人觉得它比I2C接口要好用;以前用过的</b></span><b style="word-wrap: break-word; line-height: normal; font-weight: bold; "><span style="word-wrap: break-word; line-height: normal; font-size: 12pt; font-family: 宋体; ">电子罗盘,它也是SPI接口的。<br>    由于</span></b><span class="Apple-style-span" style="border-collapse: collapse; "><b style="word-wrap: break-word; line-height: normal; font-weight: bold; ">ADXRS450价格比较贵,等仔细检查了电路后可以测试软件了,需要注意的问题是:</b></span><b><span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial; line-height: 24px; ">1. 器件上电后,要等待100ms以上再访问ADXRS450,以保证其内部电路初始化正常。</span><span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial; line-height: 24px; ">2. 你在发送当前指令的时候,MISO总线上反应的是你上一条指令要访问的地址空间,这从所有SPI通信协议图上都可以看出来。</span></b></p><span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial; line-height: 24px; "><b>3. 、0x20000000是sensor data指令,具体请见Table 8,datasheet上在写0x200...时,少了一个0.</b></span>

[ 本帖最后由 larrybirdkobe 于 2011-9-9 08:10 编辑 ]

saxmcu 发表于 2011-9-14 21:57

虽然看的不是很懂,但是谢谢你,辛苦啦

pitt.tian 发表于 2011-10-8 14:00

再能更加详细的介绍下就更好了,不过还是要感谢楼主的辛苦!!!

开心每一天哈 发表于 2016-10-30 20:29

请问楼主,我现在调试ADXRS450陀螺仪,按照手册上所写,刚启动的时候,延时100ms,然后发送0x20 00 00 03,会返回固定数0x 00 00 00 01.可是我返回的是0x 1e 04 00 ff。我所有的操作,读取返回的都是这个数值。cs拉高后,读取回来的全是ff。可能是我哪里出了问题?

priestyoyo 发表于 2016-11-19 21:39

<div class='shownolgin' data-isdigest='no'>开心每一天哈 发表于 2016-10-30 20:29
请问楼主,我现在调试ADXRS450陀螺仪,按照手册上所写,刚启动的时候,延时100ms,然后发送0x20 00 00 03, ...

adi官方网站有他们自己MCU写的驱动,拷贝下来 稍微改动一下就可以用,我已经用上了,没有问题</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

SupermanYang 发表于 2019-4-16 11:01

<div class='shownolgin' data-isdigest='no'>有哪位能够把 STM32 上的开发程序,卖给我的呀?</div><script>showreplylogin();</script>
页: [1]
查看完整版本: ADXRS450陀螺仪的理解