L3G4200D_亲译手册2.docx_第1页
L3G4200D_亲译手册2.docx_第2页
L3G4200D_亲译手册2.docx_第3页
L3G4200D_亲译手册2.docx_第4页
L3G4200D_亲译手册2.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3启动顺序一旦设备上电,它就会自动把内部闪存的标准配置装载到内部寄存器。当引导程序结束,也就是上电5毫秒之后,设备自动进入省电模式。要开启设备并且采集角速率数据,就要通过CTRL_REG1选择运行模式,并且使能至少一个轴。下面顺序可以用于配置设备:1. Write CTRL_REG22. Write CTRL_REG33. Write CTRL_REG44. Write CTRL_REG65. Write Reference6. Write INT1_THS7. Write INT1_DUR8. Write INT1_CFG9. Write CTRL_REG510. Write CTRL_REG13.1读取角速率数据设备包含一个状态寄存器STATUS_REG,应该检测当新的一组数据有效产生。读取顺序应该:1. Read STATUS_REG2. If STATUS_REG(3) = 0 then go to 13. If STATUS_REG(7) = 1 then some data have been overwritten4. Read OUT_X_L5. Read OUT_X_H6. Read OUT_Y_L7. Read OUT_Y_H8. Read OUT_Z_L9. Read OUT_Z_H10. Data processing11. Go to 1第3步执行的检测用于判断数据读取的速度是否适合数据产生的速度,STATUS_REG的ZYXOR位应该被设置为1,以防止由于过慢的读取速度导致一个或者多个角速率数据被新的数据覆盖。当设备中所有的现有数据已经被读取并且期间新的数据还没有产生,那么超限的位被自动清除。3.1.2 使用数据就绪(DRY)信号设备应该被配置有一个HW信号以确定一组新的测量数据可以读取。这个信号由STATUS_REG的XYZDA位表示。这个信号可以由DRY/INT2引脚检测(通过设置CTRL_REG3的I2_DRDY位为1,并且通过设置CTRL_REG3的H_Lactive位决定高电平有效或者低电平有效(详见5.1章节)当一组新的角速率数据产生并且准备好可读取时Data_ready信号上升为1。当三个轴之一的数据高位被读取后中断复位。3.1.3 Using the block data update (BDU) feature3.1.3使用(阻塞数据更新)数据块更新(BDU)特征如果角速率的读取速度特别慢无法与STATUS_REG 的XYZDA位或者中断RDY信号同步,那么强烈推荐把CTRL_REG4的BDU位设置为1。这个特征避免了对不同数据值的读取。当BDU有效时,与每一个通道有关的数据寄存器包含由设备产生的最新的角速率数据。为了防止三轴的每一个数据对(高字节和低字节)被影响,当正在读取的同时,被读取的轴的数据将暂停刷新直到MSB和LSB部分被读完。注释:只有当OUT_X(Y,Z)_L和OUT_X(Y,Z)_H同时被取样时BDU才是最合适的。比如,若读取速度太慢,可能读取X和Y在T1,读取Z在T2。3.2理解角速率数据测得的角速率数据被发送到了OUT_X_H, OUT_X_L, OUT_Y_H, OUT_Y_L,OUT_Z_H, 和OUT_Z_L寄存器,这个寄存器包含最重要的角速率信号,三轴完整的数据双字节以二进制补码的形式存在三轴寄存器中。3.2.1数据列角速率数据以左对齐的16位数字描述。3.2.2大,小尾数的选择设备允许交换角速率数据的高字节和低字节,以此配合little-endian 和 big-endian。Little Endian表示最低字节存在最低地址,最高字节存在最高地址(小端先出)。这种模式需要将CTRL_REG4中的BLE置0(默认为0)。Big Endian表示高字节存储在最低的地址,低字节存在高地址。3.2.3角速度举例表6提供了一些关于角速率数据的基本的例子,数据是在假设设备工作在标准环境下所列出来的,实际上显示的是BLE位的作用表6. Output data registers content vs. angular rate (FS = 250 dps)角速率值BLE = 0BLE = 1寄存器地址28h29h28h29h0dps00h00h00h00h100dpsA4h2Ch2ChA4h200dps49h59h59h49h-100dps5ChC4hC3h5Ch-200dpsB7hA6hA6hB7H4数字滤波器(CTRL_REG2、 CTRL_REG5)设别提供了嵌入式的低通滤波器可以轻易去掉测得角速率的直流成分,通过CTRL_REG5的HPen, INTx_Sel和Out_Sel位,可以把滤波器应用到输出或者FIFO的数据,或者用在中断数据,这意味着当中断产生工作在非过滤数据时可以得到被过滤的数据。LPF低通滤波器;HPF高通滤波器;4.1滤波器配置根据表格8,HPen和Out_sel位用于驱动数据到输出寄存器和FIFO表8:Out_Sel配置设置HpenOUT_SEL1OUT_SEL0DescriptionX00数据寄存器和FIFO中的数据都是非高通过滤X01数据寄存器和FIFO中的数据是高通滤波01X数据寄存器和FIFO中的数据由LPF2低通过滤11X数据寄存器和FIFO中的数据是由LPF2高通和低通过滤表9:INT_SEL配置设置HpenINT_SEL1INT_SEL0DescriptionX00非高通滤波数据用于产生中断X01高通滤波的数据用于产生中断01X低通滤波器的数据用于中断产生11X高通和低通滤波器的数据用于产生中断4.2低通滤波器低通滤波器的频带宽度取决于所设定的ODR,低通滤波器截止频率见表12。表10.低通滤波器截止频率4.3高通滤波器频带宽度取决于所选择的ODR和CTRL_REG2的HPCFx位的设置,截止频率见表格12。表13.高通滤波器模式:HPM1HPM0模式00正常模式(通过阅读REFERENCE寄存器复位)01参考信号进行过滤10普通模式11自动复位对中断事件4.3.1 普通模式在这样的配置下,高通滤波器可以通过读取REFERENCE寄存器而复位,去除角速率的直流部分。4.3.2参考模式在此配置下,输出数据根据输入角速率和参考寄存器的内容的差别计算,寄存器以2进制补码形式,这些8位寄存器的1LSB的值取决于所选的量程(表14)。满量程参考模式LSB值(mdps)25025004200016图4.参考模式4.3.3 自动复位当配置的中断事件发生时滤波器是自动复位的。HP_RESET用于设置瞬时滤波器提示:一个中断之后,xyz 数据置位用于复位滤波器Note: XYZ dataset used to reset the filter is the one after the interrupt.5中断产生中断信号可以被配置在一个非常适合的方式以允许识别三轴独立X,Y,Z的转动,中断信号由INT1引脚产生,INT2引脚专用于DRY和FIFO中断。51中断引脚配置(CTRL_REG3)设备带有data-ready和中断信号的两个中断引脚,通过CTRL_REG3设定引脚的功能。5.2中断配置设备提供了几种常见的个性化中断信号,中断行为涉及到的寄存器是INT1_CFG, INT1_THS 和INT1_DURATION.Table 18. INT1_CFG descriptionAND/ORAND/OR中断事件的组合。默认值:0(0:或中断事件的组合;1:AND中断事件的组合LIR锁存中断请求。默认值:0(0:不锁存中断请求;1:中断请求锁存)通过阅读INT1_SRC章清零。ZHIE启用Z高事件时产生中断。默认值:0(0:禁止中断请求;1:使能中断请求当测量到加速度高于预设的阈值)ZLIE启用Z低事件时产生中断。默认值:0(0:禁止中断请求;1:使能中断请求当测量到加速度低于预设的阈值)YHIE启用Y高事件时产生中断。默认值:0(0:禁止中断请求;1:使能中断请求当测量到加速度高于预设的阈值)YLIE启用Y低事件时产生中断。默认值:0(0:禁止中断请求;1:使能中断请求当测量到加速度低于预设的阈值)XHIE启用X高事件时产生中断。默认值:0(0:禁止中断请求;1:使能中断请求当测量到加速度高于预设的阈值)XLIE启用X低事件时产生中断。默认值:0(0:禁止中断请求;1:使能中断请求当测量到加速度低于预设的阈值)无论什么时候,一个中断条件确定产生变产生一个中断信号,同时凭借读取INT1_SRC寄存器可以了解发生的是什么条件。读取INT1_SRC寄存器也可以清INT1_SRC的IA位(在INT1引脚上的最终的中断信号),如果latched选项关闭,将允许INT1_SRC寄存器中数据的刷新。5.3临界值临界值寄存器INT1_THS和INT_THS_xL(分别是MSB和LSB)定义了中断发生电路所参考的角速率。临界值的1LSB的值取决于所选满量程(表22)5.4持续时间Duration寄存器的Dx位的内容设定了中断事件被识别的最小时间。持续步骤操作和最高值取决于所选择的ODR。持续时间由n除以ODR计算得到,n由Duration的内容设定,ODR是输出数据速率:100,200,400或800。表25.普通模式下持续时间最小分辨率值WAIT等待位具有以下含义:等待= 0:如果信号跨越选定的阈值,中断立即下降等待= 1:如果信号跨越选定的阈值,只有当超过已经设定在持续时间计数器中选定的采样次数,才有中断信号的下降。图20。等待禁用5.5 选择轴的运转,唤醒中断陀螺仪随着识别到轴的运动唤醒产生中断信号,whenever一个中断条件确定后,中断信号产生同时通过读取INT1_SRC寄存器以辨别发生了什么条件。选择的轴运动信号selective axis movement detection signal(SA),和唤醒中断信号信号wake-up signal(WU)见图9.通过INT1_CFG寄存器的AOI位选择由SA或WU来产生中断。如果AOI位为0,来自INT1_CFG寄存器所使能的轴的比较信号被进行逻辑或运算。在这种情况下,当至少一个轴的数据超过由寄存器INT1_THS_xL和INT1_THS_xH设定的阈值时产生中断。否则,如果AOI位是1,比较信号进入与非门。在这种情况下只有当所有的启用轴超过阈值才产生一个中断信号。INT1_CFG的LIR位决定中断请求是否需要锁定或不锁。如果LIR位是“0”(默认值),中断条件满足时中断信号变高;如果中断的条件不再有效则立即变低。否则,如果的LIR位为1,一旦中断信号产生便维持高电平即使中断的条件不存在,直到阅读INT1_SRC后才降低电平。INT1_CFG寄存器的ZHIE,ZLIE,YHIE,YLIE,XHIE,HLIE位允许决定哪一个轴哪一个方向超过阈值,产生中断请求。判断没有移动或唤醒事件的阈值是由INT1_THS寄存器定义的。阈值表示为7位无符号数,与0值对称。无符号的X角速度值(Y,Z轴)大于INT1_THS时XH(YH,ZH)的值是真。同样,无符号的X(Y,Z轴)角速度值低于INT1_THS时XL(YL,ZL)为真。更多细节,请参考图10。5.5.1 Wake-up唤醒中断用到INT1_CTRL的一个特殊配置,当指定的轴的角速度超过定义的阈值时产生中断(图11)。5.5.2 HP filter bypassed高通滤波器旁路本段提供了一个基本的算法使用唤醒功能。下面的代码,将设备配置为当X轴的绝对角速率超过预设的阈值时才有识别(以100DPS为例)。设备内部锁存触发中断的事件,其发生信号通过INT1引脚使用。1 Write 0Fh into CTRL_REG1/ 开传感器的三轴X,Y,和Z并且ODR = 100 Hz2 Write 00h into CTRL_REG2 / 关闭高通滤波器3 Write 80h into CTRL_REG3 / 中断信号送到INT14 Write 00h into CTRL_REG4 /量程FS = 250 dps5 Write 2Ch into INT1_THS_XH / H阈值= 100 dps6 Write A4h into INT1_THS_XL / L阈值= 100 dps7 Write 00h into INT1_DURATION /持续时间Duration = 08 Write 02h into INT1_CFG / 开XH中断9 Poll INT1 pad; if INT1=0 then go to 8/ waiting for the wake-up event10 Read INT1_SRC/返回产生中断的事件11(Wake-up event has occurred; insertyour code here)/中断处理12 Go to 85.5.3使用HP滤波下面提供的代码给出了一个基本的例程显示实际使用高通滤波数据执行唤醒功能。1 Write 0Fh into CTRL_REG1 / enable X, Y, and Z,ODR = 100 Hz2 Write 00h into CTRL_REG2 / High-pass filter in normal mode3 Write 80h into CTRL_REG3 / Interrupt driven to INT1 pad4 Write 00h into CTRL_REG4 / FS = 250 dps5 Write 05h into CTRL_REG5/数据寄存器和FIFO中的数据时高通滤波,高通滤波数据用于产生中断6 Write 2Ch into INT1_THS_XH / Threshold = 100 dps7 Write A4h into INT1_THS_XL / Threshold = 100 dps8 Write 2Ch into INT1_THS_YH / Threshold = 100 dps9 Write A4h into INT1_THS_YL / Threshold = 100 dps10 Write 2Ch into INT1_THS_ZH / Threshold = 100 dps11 Write A4h into INT1_THS_ZL / Threshold = 100 dps12 Write 00h into INT1_DURATION / Duration = 013 Read REFERENCE/ Dummy read to 迫使高通滤波器到最近的角速率数值/ (i.e. set reference angular rate)14 Write 6Ah into INT1_CFG/ 开XH,YH和ZH中断,中断锁存15 Poll INT1 pad; if INT1=0 then go to 8/ Poll INT1 pin waiting for the wake-up event16 Read INT1_SRC/ Return the event that has triggered the interrupt17中断处理18 Go to 15在第13步,在参考寄存器的虚拟阅读进行设置现在的/参考角速度/倾斜状态,对设备进行的阈值比较。这种阅读可以在任何时间执行,它需要设置当前利率作为参考状态无需等待的过滤器来稳定走势。5.6选择性轴运动检测选择性轴运动检测是指INT1_CTRL寄存器的一个特定的配置只识别围绕选定的轴的旋转。参照图12,“没有旋转区”是指围绕零刻度如果角速率足够小,被认为是零。由INT1_CFG寄存器配置,以便产生一个中断,仅当,即X和Y的旋转角速度轴在零附近,而Z轴不为0。这这意味着设备是做一个纯粹的偏航旋转。本款规定的基础知识,使用选择性轴运动检测功能。以下是报告的例子代码实现了SW的例行选择性轴动作识别:1 Write 0Fh into CTRL_REG1/ 开X, Y, and Z; ODR = 100 Hz3 Write 80h into CTRL_REG3 / Interrupt driven to INT1 pad4 Write 00h into CTRL_REG4 / FS = 250 dps6 Write 2Ch into INT1_THS_XH / Threshold = 60 dps7 Write A4h into INT1_THS_XL / Threshold = 60 dps8 Write 2Ch into INT1_THS_YH / Threshold = 60 dps9 Write A4h into INT1_THS_YL / Threshold = 60 dps10 Write 2Ch into INT1_THS_ZH / Threshold = 60 dps11 Write A4h into INT1_THS_ZL / Threshold = 60 dps12 Write 01h into INT1_DURATION / Duration = 10 ms13 Write 65h into INT1_CFG/ Enable XL, YL and ZH interrupt generation in AND/ configuration. Interrupt latched14 Poll INT1 pad; if INT1=0 then go to 8/ Poll INT1 pin waiting for the wake-up event15 Read INT1_SRC/ Return the event that has triggered the interrupt16(Wake-up event has occurred; insertyour code here)/ Event handling17 Go to 15该代码示例利用60DPS选择性轴运动检测和设置阈值事件是由硬件信号INT1通知。在第7步,INT1_DURATION寄存器这样的配置为了避免误检而忽略短比1/DR= 1 / 100= 10毫秒的事件。一旦发生选择性轴运动检测,对INT1_SRC寄存器的读操作会自动清除请求,设备准备其他事件。6先入先出(FIFO)缓冲器为了减少主机处理器互动,方便后期事件识别数据处理,L3G4200D为X,Y,Z每个通道嵌入先入先出缓冲区(FIFO)。FIFO只有当需要和从FIFO读取数据时才唤醒。FIFO缓冲区可以根据四个不同的模式,保证在应用程序的开发过程中的高度灵活性:旁路模式,FIFO模式,流模式,以及流FIFO模式。可编程水印水平和FIFO溢出事件可以启用生成DRDY/INT2引脚上的中断。6.1 FIFO descriptionFIFO缓冲器,能够存储多达32角速度样本,每个通道16位;数据存储在16位2进制补码左对齐。数据样本集由6个字节(XL,XH,YL,YH,ZL,和zh),他们按照选定的输出数据速率output data rate(ODR)从FIFO输出。新的样本集是摆在了第一个空FIFO插槽,直到缓冲区已满,因此,最古老的数据将被覆盖。表26。FIFO缓冲区充分的代表性(前32位样本集存储)表27。FIFO溢出代表(第33样本集存储,第一样本丢弃)表26表示FIFO满状态时,32个样本,而在缓冲存储表27代表第33样品插入到FIFO时第1样本(X0)被覆盖。新的最古老的样本集(X1)到输出寄存器。当FIFO使能和旁路模式不同,L3G4200D输出寄存器(28H2DH)总是包含最古老的FIFO样本集。6.2的FIFO寄存器FIFO缓冲区是由三个不同的加速度寄存器管理,其中两个允许启用和配置FIFO的行为,第三提供有关缓冲区的状态信息。6.2.1控制寄存器5(0x24)为了启用内部FIFO,必须将CTRL_REG5的FIFO_EN位设1。一旦而此位被设置,陀螺仪的输出寄存器(28H2DH)不包含角速度的立即值,但它们总是包含FIFO中最早的价值。6.2.2 FIFO control register (0x2E)该寄存器是专用于FIFO模式的选择和水印配置。FM1:0 专用于定义FIFO行为:1. FM2:0 = (0,0,0): 旁路模式2. FM2:0 = (0,0,1): FIFO模式3. FM2:0 = (0,1,0): 流模式4. FM2:0 = (0,1,1): 流FIFO5. FM2:0 = (1,0,0): 旁路-FIFO用于激活流_FIFO和旁路流模式触发相关的INT1_SRC寄存器的IA位值的选定不依赖于中断引脚值和极性。如果选定的中断没有驱动到中断引脚,触发也产生。WTM4:0位是为了定义水印的水平;当FIFO内容超出此值,在FIFO中的源寄存器的WTM位设置为“1”。6.2.3FIFO源寄存器(0x2F)该寄存器在每一个ODR更新,并提供有关的FIFO缓冲区的状态信息。窗体顶端当FIFO含量超过水印水平,WTM位被设置为高。OVRN位被设置为高,FIFO缓冲区满时。这意味着FIFO缓冲区包含32个未读样品。在下一个ODR新的样本集取代FIFO中最早的值。当读第一个样本集时OVRN位复位。空标志EMPTY被设置为高,当所有FIFO样品已阅读并FIFO为空时。FSS的4:0字段总是包含当前存储在FIFO缓冲区的未读样本数。当FIFO使能,这个值随ODR的频率增加,直到缓冲区满。但是,它随FIFO中每一个样本集的读取而降低。窗体底端寄存器的内容更新与FIFO的写和读操作同步。通过配置CTRL_REG3可以启用的水印标志、FIFO溢出、FIFO空的事件在DRY/INT2针生成一个专门的中断。I2_WTM位将水印标志(WTM)驱动到DRY/INT2引脚。I2_OVRN位将超限事件(OVRN)驱到动DRY/INT2Y引脚。I2_Empty位将空的事件((EMPTY)驱动到DRY/INT2引脚。如果一个或多个位被设置为“1”,DRY/INT2引脚的状态是三个信号的逻辑或组合。6.3FIFO模式L3G4200DFIFO缓冲区可以由FIFO_CTRL_REG寄存器的FM2:0配置为五种不同的模式。有效的配置确保了高层次的灵活性同时可扩展在应用程序开发中可用功能的数量。旁路模式,先进先出,流,流FIFO和旁路流模式。6.3.1旁路模式启用旁路模式时,FIFO是不具有可操作性:缓冲区的内容被清除,输出寄存器(0x280x2D)被冻结在最后装载值,FIFO缓冲区保持空,直到设定为另一种模式。旁路模式配置按照下列步骤:1。通过控制寄存器5(0x24)的FIFO_En位设置为“1”打开FIFO,。在此操作之后,虽然启用FIFO缓冲区,但不收集数据,因为输出寄存器被冻结在最后一个加载的样本。2将FIFO控制寄存器(0x2E)的FN2:0字段设置为“000”,激活旁路模式。如果启用此模式,FIFO源寄存器(0x2F)是被强制为0x20。当运行另一种模式时,必须使用旁路模式,以停止并复位FIFO缓冲区。请注意,进入旁路模式FIFO清除整个缓冲区内容。6.3.2先进先出模式在FIFO模式下,该缓冲区将继续填充直到全满(存储32样本集),然后它停止收集数据,FIFO内容将保持不变,直到选择不同的模式。按照这些步骤配置FIFO模式:1。通过控制寄存器5(0x24)的FIFO_En位设置为“1”打开FIFO,。在此操作之后,虽然启用FIFO缓冲区,但不收集数据,因为输出寄存器被冻结在最后一个加载的样本。2。将FIFO控制寄存器(0x2E)的FN2:0字段设置为“000”,激活FIFO模式。通过选择此模式,FIFO启动数据收集,源寄存器(0x2F)根据样本存储的数量变化。在该过程结束时,源寄存器设置为0xDF,如果控制寄存器5中选择I2_OVRN位,OVRN标志会产生一个中断。OVRN设置为“1” 时,执行32次从输出寄存器样本读取,可以重复获取数据;如果应用程序需要的样本数量较少也可检索WTM标志,而不是OVRN。在FIFO模式,通信速度不非常重要的因为数据收集停止,采集的数据没有覆盖风险。重新启动FIFO模式前,在阅读过程结束时有必要从进入旁路模式。窗体底端一个FIFO模式的应用程序提示现报告如下:1。设置FIFO_En= 1:启用FIFO2。设置FN2:0 =(0,0,1):启用FIFO模式3。等待OVRN或WTM中断4。从陀螺仪输出寄存器读取数据5。设置FN2:0=(0,0,0):启用旁路模式6。重复从第2点如果启用FIFO模式,缓冲区以选定的输出数据速率开始收集数据,并填写所有32个插槽(从F0到F31)。当缓冲区满时,OVRN位上升,数据收集永久停止,用户可以决定在任何时候读取FIFO内容,因为它是保持不变,直到选择旁路模式。阅读程序由6个字节构成了32个样品集共192字节,检索数据从保存在FIFO(F0)最古老的样本起始。第一个样本集已被读取时OVRN位复位。进入旁路模式,自动复位FIFO以允许用户再次启用FIFO模式。6.3.3流模式在流模式,FIFO持续填充。当缓冲区满时,FIFO指针从起始位置重新启动,旧的数据被新数据取代。最早的数据继续被覆盖直到读操作释放FIFO的可用槽。为了保证FIFO释放速度比新的数据产生速度快,主机处理器阅读速度是最重要的。FM2:0是用来配置停止此旁路模式的。按照这些步骤配置FIFO模式:1。通过控制寄存器5(0x24)的FIFO_En位设置为“1”打开FIFO,。在此操作之后,虽然启用FIFO缓冲区,但不收集数据,因为输出寄存器被冻结在最后一个加载的样本。2。在FIFO控制寄存器(0x2E)将激活流模式的FN2:0字段设置为“011”。OVRN设置为“1” 时,执行32次从输出寄存器样本读取,可以重复获取数据;如果应用程序需要的样本数量较少也可检索WTM标志,而不是OVRN。在流模式中,FIFO缓冲区(从F0到F31)根据选定输出数据速率ODR不断填充。当缓冲区满时,OVRN标志上升为高电平,建议的解决方案是:利用比1*ODR快的速度阅读所有FIFO样本(192字节),以便给新的角速率数据空出位置。这使得以避免数据丢失,并减少主机处理器交互提高了系统的效率。如果读程序速度不够快,可以观察到三个不同的情况下:1。FIFO样本集(6字节)读取速度大于1*ODR:数据是正确的检索,因为能在新数据产生之前提供可用的自由插槽。2。FIFO样本集(6字节)读取速度与1*ODR同步:数据是正确检索的,因为能在新数据产生之前提供可用的自由插槽。但FIFO的好处没有发挥。3。FIFO样本集(6字节),读取速度比1*ODR慢:在这种情况下,因为数据读取速度不够快,不能及时释放FIFO槽,导致新的数据丢失。在图16中,由于读取速度较慢,“JJ”的数据被系统所产生的新的陀螺仪样品替换。窗体顶端流模式启用后,在每个ODR结束时填充FIFO。一旦OVRN标志设置为“1”,必须尽快启动阅读程序。读操作的开始便从FIFO获取数据。当读命令发送到设备,输出寄存器的内容被移到的SPI/I2C寄存器,当前FIFO最古老的数据移入寄存器,以便下一次的读操作。如果,阅读比1*ODR慢,新的样品被插入到处理的位置之后有些数据可以从FIFO检索。在图17中,在F3指针刷新之后开始第四个读命令,并在读取数据时产生一次断开。OVRN标志提醒用户这一事件已经发生。在这个例子中,三个样品已正确阅读,正确回收的样本数是取决于目前ODR和FIFO样本集时间表的差别。窗体底端6.3.4流FIFO模式这种模式是以上所述流和FIFO模式的组合。在流至FIFO模式中,FIFO缓冲区开始在流模式,当选定的中断发生进入FIFO模式。按照这些流FIFO模式配置步骤:1。使用寄存器INT1_CFG(0x30)配置所需的中断发生器。2。通过控制寄存器5(0x24)的FIFO_En位设置为“1”打开FIFO,。在此操作之后,虽然启用FIFO缓冲区,但不收集数据,因为输出寄存器被冻结在最后一个加载的样本。3。寄存器(0x2E)FN 2:0字段设置为“011”激活流FIFO模式。中断触发相关INT1_SRC寄存器的IA位,中断信号可以产生即便不驱动到中断引脚。如果IA和OVRN位同时变高则切换模式开关。流FIFO模式是电平触发,而不是边沿触发,这意味着,如果流FIFO模式中断条件消失,FIFO缓冲区返回到流模式,因为IA位变为零。建议锁存中断信号,以避免丢失触发中断事件的信号。如果选定的中断锁存,需要读取寄存器INT1_SRC清除IA位;读取完之后,IA位需要2 * ODR的时间降低。FIFO缓冲区在流模式的不断填充。当缓冲区满,OVRN位置高,新样本覆盖最古老的。当触发发生时,可以观察到两种不同的情况:1。如果FIFO缓冲区已经满了(OVRN =“1”),触发后它在第一个样品停止收集数据。FIFO的内容是由触发事件前收集的30个样本。产生中断的样品和触发器之后的一个样品。2。如果FIFO尚未满(初始瞬态),继续填充,直到填满(OVRN =“1”)。那么,如果触发仍然存在,它就会停止收集数据。流FIFO模式,以分析产生中断的样品历史;标准操作是当触发FIFO模式并且FIFO缓冲区已满且停止时候要进行读FIFO内容。6.3.5旁路流模式这种模式是以上所述的旁路和流模式的结合。在旁路流模式,FIFO缓冲区开始在旁路模式,选定的中断发生时切换操作流模式。旁路流模式配置按照这些步骤:1。使用寄存器INT1_CFG(0x30)配置所需的中断发生器。2。在控制寄存器(0x24)的FIFO_En位设置为“1”打开FIFO。在此操作之后启用FIFO缓冲区,但不收集数据,输出寄存器被冻结到最后一个加载的样本。3。在FIFO控制寄存器(0x2E)FN2:0字段设置为“100”激活旁路流模式。中断触发与INT1_SRC寄存器的IA位有关,甚至当中断信号没有驱动到中断垫也会产生中断。旁路流模式是电平触发,而不是边

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论