基于openharmony的mmc5603地磁模块开发 原创
再见南丫岛
发布于 2022-4-18 09:34
浏览
1收藏
1、模块介绍
1)三轴磁传感器和电子电路全集成式芯片,几乎不需要外部元件
2)优越的量程和精度
- ±30G的量程
- 20位运行模式
- 最小分辨率为0.0625mG
- 2mG的均方根噪声
- ±1度以内的指向精度
3)实际响应频率可达1000Hz
4)超小的晶圆级封装,尺寸为0.85mm x 0.85mm x 0.4mm
5)通过内部Set/Reset置/复位磁传感单元, 保证传感器精度始终如一
- 消除温度压力等环境因素造成的零点漂移
- 消除外磁场引起的剩磁和磁滞
6)自带灵敏度补偿
7)自带温度传感器
8)具备自检功能
9)具备数据就绪中断功能(仅在I3C模式下)
10)低功耗
11)待机模式耗电仅1μA
12)I2C 从动,快速模式(≤400 KHz)
13)拥有符合MIPI I3C1.0版本标准的I3C接口
14)1.62~3.6V宽电压单电源供电
15)I2C接口支持1.2V
16)I3C接口支持1.8V
17)符合RoHS标准
2、代码移植
主要实现寄存器的I2C读和写操作即可。代码如下:
uint8_t MMC5603_I2c_Write(uint8_t reg, uint8_t dat)
{
uint8_t write_data[3] = {reg,dat};
hi_i2c_data i2c_data = {0};
i2c_data.send_buf = write_data;
i2c_data.send_len = 2;
uint32_t result = hi_i2c_write(IIC_INDEX, (MMC5603_addr<<1), &i2c_data);
if(result == 0){
result = 1;
}
return 0;
}
uint8_t MMC5603_I2c_Read(uint8_t reg, uint8_t *buf, uint8_t len)
{
hi_i2c_data i2c_data = {0};
uint8_t buffer[1] = {0x00};
buffer[0] = reg;
i2c_data.send_buf = buffer;
i2c_data.send_len = 1;
i2c_data.receive_buf = buf;
i2c_data.receive_len = len;
return hi_i2c_writeread(IIC_INDEX, (MMC5603_addr<<1), &i2c_data);
}
3、驱动使用
1)初始化
void MMC5603_Enable(void)
{
int ret = 0;
/* Inite the sensor state */
sensor_state = 1;
/* Check product ID */
ret = MMC5603_CheckID();
if (ret<0)
return;
/* Auto self-test registers configuration */
MMC5603_Auto_SelfTest_Configuration();
/* Do SET operation */
MMC5603_SET();
/* Work mode setting */
MMC5603_Continuous_Mode_With_Auto_SR(MMC5603_CMD_BW00, 50);
mmc5603_Delay_ms(20);
}
2)数据获取
STATIC mp_obj_t machine_mems_mag(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
struct magnetic_field data;
mmc5603nj_bpm_algo_handler(&data);
//DEBUG_printf("MAG %0.3f,%0.3f,%0.3f\r\n",data.x,data.y,data.z);
mp_obj_t list = mp_obj_new_list(0, NULL);
mp_obj_list_append(list, mp_obj_new_float(data.x));
mp_obj_list_append(list, mp_obj_new_float(data.y));
mp_obj_list_append(list, mp_obj_new_float(data.z));
return list;
//return mp_const_none;
}
4、驱动代码
附件。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
驱动代码.zip 3.95K 306次下载
赞
2
收藏 1
回复
相关推荐
拿到驱动代码好好学习一下