G-SENSOR芯片BMA250调试笔记

来源:互联网 发布:怎样联系淘宝客服人员 编辑:程序博客网 时间:2024/06/05 16:37


1BMA250采用I2C通信,CLK设置为400K

2、BMA250INT1作为中断输出,接CPUEINT25。主要用来做特定的中断使用,比如倾角(XYZ角度)达到设定值时,将产生中断,通知CPU。这种功能主要做某些特定功能使用,比如翻车时,如果没有熄火,BMA250检测到垂直角度有变化,将提示是否自动报警,如果在规定时间内没有反应,就会自动报警,从而达到尽快救援的目的。

3、原厂提供了相应的Kernelandroid 驱动,只需要按步骤添加即可。但原厂提供的kernel代码需要修正,即每次读取XYZ数据完成后,会调用input_sync(bma250->input)函数告诉上层数据要刷新,这个函数会导致外部的其它设备数据也跟着刷新,产生的现象有:机器支持USB鼠标功能,但没插入鼠标,界面上也显示鼠标的光标。把input_sync(bma250->input)函数修改为input_mt_sync(bma250->input)即可解决。

4、测试方法:

(1)把kernelandroid驱动都添加完成后,勾上“设置”---->“显示”---->“自动旋转屏幕”,旋转机器时,界面显示顺序也会跟着实际方向变化,若变化的角度与实际角度不符,需要修改androidXYZ的数据处理。

(2)开机后,若把kernel中读XYZ数据的函数bma250_read_accel_xyz相关LOG放开,会发现上层一直在不断的读取这些数据。翻转机器时,这些数据会相应的跟着改变。若在同一角度XYZ数据无特别大的变化,说明数据读取正常。

(3)使能BMA250_ENABLE_INT1时,设置好BMA250_INT_ENABLE1_REG寄存器,则可以看到当翻转机器时,CPUEINT25会检测到BMA250产生的中断,执行中断线程。

原创粉丝点击