Name_006 发表于 2013-12-18 16:05:38

[nRF51822 AK II ] MPU6050 驱动 读出原始数据

拿到板子后 简单使用了一下实现了 一些基本功能
6050的驱动是 用的官方的 TWI 也就是iic 驱动软件模拟的iic协议   6050里边的代码 也就是个读取ID的代码
主要更改 一下几个地方

1.ADDRESS_SIGNAL_PATH_RESET (0x68U)6050 ad0 下拉地址为 0x68
2.加入 以下代码
#define TWI_MASTER_CONFIG_CLOCK_PIN_NUMBER (01U)
#define TWI_MASTER_CONFIG_DATA_PIN_NUMBER (00U)

宏定义的意思 就是定义 CLK= P0.01DATA= P0.00 直接改后边的数字就OK

3.6050 初始化 基本什么也没做我直接复制了之前的一段初始化代码过来 具体看附件吧

然后就是在 6050里边加入了 读取原始数据的代码

其他的 就是根据习惯 我吧官方的库.c.h文件都拿出来单独放文件夹不用任何关联 直接编译下载就OK   

最后 串口输出 波特率 为38400

Name_006 发表于 2013-12-18 17:04:12

再上传一个例程   刚搞顶上边那个 6050的想弄弄 adc的找了半天官方的没有例程
然后 首先当然是 百度 googleadc代码

然后就找到了这个{:lol:}{:lol:}https://devzone.nordicsemi.com/index.php/nrf51822-adc-samplerate

然后下载下来 划拉划拉就OK了
1.ADC_RES_8bit直接改这个 可以改 adc精度
2.ADC_INPUT_AIN4_P03直接改这个 可以改 adc通道
3.附件里边的例程我是用的 P03   在下图的那个位置检测adc起作用的方法
a.在P03上 接一根杜邦线 甩一甩 数据就会变
b.接一根杜邦线 到电流计那边输出值为 105左右(ADC_RES_8bit 模式)电压V /3.3V= 105/225V = 1.35实测电压为 1.2V左右 好像差不多 参考电压 猜测是3.3V
4.根据 上手指南中说 消耗电流= 电流计电压 1.2V左右 (运行adc检测的例程)/200 = 0.006 =6ma??

ijlc1314 发表于 2013-12-18 16:24:37

楼主厉害,最近比较懒,还没开始玩呢

kevin_me 发表于 2013-12-18 18:58:09

留名 用纽扣电池点了个跑马灯,三天就把电池跑完了。

overheat 发表于 2013-12-18 20:48:39

Name_006 发表于 2013-12-18 17:04
再上传一个例程   刚搞顶上边那个 6050的想弄弄 adc的找了半天官方的没有例程
然后 首先当然是 百度 g ...

楼主的确厉害!看签名档还是 MPU6050+HMC5883 的高手,期待写一个nRF51822 AK上跑那个很酷的电脑模拟程序的例子来!

板子上的电压是USB 5V-》LDO 3.3V-》防反二极管-》3.0V的基准电压。

功耗的确是楼主的算法,不过这里测量的是整个系统的功耗(包括MPU6050)。另外,官方也提到了,这么大的功耗是因为debug模块没有关闭。关闭的方法是:

https://devzone.nordicsemi.com/index.php/why-does-my-nrf51822-consume-1-ma-in-sleep

上面有提到是没有关闭debug mode的原因,要用nrfjprog.exe -p来关闭。

qiqirachel 发表于 2013-12-19 02:41:53

本帖最后由 qiqirachel 于 2013-12-19 03:14 编辑

留名,也买了这个,正准备捉摸一下,写个红外进去给自己相机当遥控器用

楼主好厉害

//忍不住问一个问题
楼主的printf函数为何引用起来那么正常,为何我新建一个工程,包含stdio,用printf依然打印不了呢,我在您的工程里面,没有看到关于与printf有关的其他文件啊

Name_006 发表于 2013-12-19 09:36:23

qiqirachel 发表于 2013-12-19 02:41
留名,也买了这个,正准备捉摸一下,写个红外进去给自己相机当遥控器用

楼主好厉害


你新建的程序 可能没勾选USE MicroLib这个选项   

直接复制官方的例程出来就OK了没必要自己建               

alongzhang 发表于 2013-12-22 22:43:49

qiqirachel 发表于 2013-12-19 02:41
留名,也买了这个,正准备捉摸一下,写个红外进去给自己相机当遥控器用

楼主好厉害


需要加个重定向fputc你看他main最下面,这样选Use Microlib才有用。

mmy168 发表于 2013-12-25 13:50:13

呵呵,自己也有一个开发板在玩。。。

610570143 发表于 2014-1-2 15:48:14

Thanks,怎么下不了啊  

LZ19992005 发表于 2014-1-3 15:20:00

顶一个 学习了

jinchenaquarius 发表于 2014-2-23 19:17:48

终于找到了

jinchenaquarius 发表于 2014-2-23 21:16:53

我也用的是这块板子,但所有不包含BLE协议栈的工程文件都不能烧录请问楼主是怎么回事?

Name_006 发表于 2014-2-24 16:39:09

jinchenaquarius 发表于 2014-2-23 21:16
我也用的是这块板子,但所有不包含BLE协议栈的工程文件都不能烧录请问楼主是怎么回事? ...

用 nRF studio 试试不行的话 看Jlink能不能连接上 确定Jlink没问题要是Jlink的问题的话 需要在XP下更新Jlink固件   win7 更新固件不行哦

jinchenaquarius 发表于 2014-2-24 16:59:41

Name_006 发表于 2014-2-24 16:39
用 nRF studio 试试不行的话 看Jlink能不能连接上 确定Jlink没问题要是Jlink的问题的话 需要在XP下更 ...

我在nordic的论坛上找到了是编译工程类型的问题把工程类型改为nrf51822_xxaa_s110就行了但还有一个问题是printf 函数始终用不了你给的那个程序编译时warning说是printf函数非法声明后来我加了#include<stdio.h>又显示fputc函数has been defined

无线音频 发表于 2014-2-26 19:56:02

BTLE 4.O与ANT+技术交流群238165859,里面都是工程师

flyheart33 发表于 2014-3-3 14:30:48

Name_006 发表于 2013-12-18 17:04
再上传一个例程   刚搞顶上边那个 6050的想弄弄 adc的找了半天官方的没有例程
然后 首先当然是 百度 g ...

很好,正需要,感谢

ouyj_0210 发表于 2014-3-25 16:32:17

标记一个,也正需要,感谢

SZHjy 发表于 2014-5-31 16:11:26

请问楼主
#define MPU6050_GYRO_OUT      0x43
#define MPU6050_ACC_OUT         0x3B
地址怎么找到的啊,还有uint8_t addr= MPU6050_ADDRESS << 1;有什么用啊,希望楼主不吝赐教

ycwjl728 发表于 2014-5-31 17:50:51

mark,学习一下

SZHjy 发表于 2014-6-3 16:32:39

请问楼主,有研究NRF51822spi的程序吗

Name_006 发表于 2014-6-3 16:39:36

SZHjy 发表于 2014-5-31 16:11
请问楼主
#define MPU6050_GYRO_OUT      0x43
#define MPU6050_ACC_OUT         0x3B


IIC通信地址需要左移一位

Name_006 发表于 2014-6-3 16:39:56

SZHjy 发表于 2014-6-3 16:32
请问楼主,有研究NRF51822spi的程序吗

官方的 sdk有 你可以看一下                                             

SZHjy 发表于 2014-6-3 22:06:40

Name_006 发表于 2014-6-3 16:39
官方的 sdk有 你可以看一下

嗯,谢谢咯{:smile:}

CandD 发表于 2014-6-25 14:49:15

楼主,请问一下,我的6050读出来的数据不变是怎么回事啊?

Name_006 发表于 2014-6-29 18:08:22

CandD 发表于 2014-6-25 14:49
楼主,请问一下,我的6050读出来的数据不变是怎么回事啊?

ID不对?   IIC定义不对还是 芯片焊接问题不确定                        

CandD 发表于 2014-6-29 22:09:37

Name_006 发表于 2014-6-29 18:08
ID不对?   IIC定义不对还是 芯片焊接问题不确定

好了,可以读出来了,供电的问题

auxjiang 发表于 2014-9-10 17:40:44

正在搞nrf51822,学习下

opiviqo 发表于 2014-9-13 16:22:04

这个真的挺不错的,mark
谢谢楼主!~~~

Charliexie 发表于 2014-10-15 14:09:15

谢谢楼主分享,我最近在用51822写BMP085的驱动,希望这份程序对我有所帮助

opiviqo 发表于 2014-11-4 15:02:51

Name_006 发表于 2013-12-18 17:04
再上传一个例程   刚搞顶上边那个 6050的想弄弄 adc的找了半天官方的没有例程
然后 首先当然是 百度 g ...

hi楼主 有没有nRF1822 按键中断的例子啊?

Name_006 发表于 2014-11-4 16:37:05

opiviqo 发表于 2014-11-4 15:02
hi楼主 有没有nRF1822 按键中断的例子啊?

应该很简单 你看下 官方的例子                              

opiviqo 发表于 2014-11-5 15:03:44

Name_006 发表于 2014-11-4 16:37
应该很简单 你看下 官方的例子

hi哥们 我有个问题想请教一下,按键中断:

GPIOE的事件触发源可以不仅仅只是某个引脚,还可以是某个port(nRF51把32个引脚分为4个port),同属一个port的任意一个引脚只要被检测到上升沿发生都会触发Port Event。

这个地儿如果设置为port 那么这个初始化这里应该怎么写呢?

下面是单个按键初始化的:
void EXIT_Init(void)
{
    NRF_GPIOTE->CONFIG = (GPIOTE_CONFIG_POLARITY_HiToLo<<GPIOTE_CONFIG_POLARITY_Pos) | (17<<GPIOTE_CONFIG_PSEL_Pos) | (GPIOTE_CONFIG_MODE_Event<<GPIOTE_CONFIG_MODE_Pos);   //下降沿触发,17引脚
        NVIC_EnableIRQ(GPIOTE_IRQn);
        NRF_GPIOTE->INTENSET = GPIOTE_INTENSET_IN0_Set << GPIOTE_INTENCLR_IN0_Pos;
}

Name_006 发表于 2014-11-6 12:05:16

opiviqo 发表于 2014-11-5 15:03
hi哥们 我有个问题想请教一下,按键中断:

GPIOE的事件触发源可以不仅仅只是某个引脚,还可以是某个po ...

我好久没看过 51822 的了最近 准备吧我的板子 在做一批我也只是跑了几遍官方历程 没仔细研究过

richie550 发表于 2014-11-6 12:54:16

不错!多谢楼主分享!

opiviqo 发表于 2014-11-6 13:22:00

Name_006 发表于 2014-11-6 12:05
我好久没看过 51822 的了最近 准备吧我的板子 在做一批我也只是跑了几遍官方历程 没仔细研究过   ...

画51822那个PCB天线的时候应该注意一些什么?
对于PCB天线从来没有涉及过,能否指教一下?

Name_006 发表于 2014-11-6 14:19:47

opiviqo 发表于 2014-11-6 13:22
画51822那个PCB天线的时候应该注意一些什么?
对于PCB天线从来没有涉及过,能否指教一下? ...

官方就有PCB 直接按照官方来就行                        

opiviqo 发表于 2014-11-6 14:49:32

Name_006 发表于 2014-11-6 14:19
官方就有PCB 直接按照官方来就行

哪里?我咋找了好久也没找到
能否给个链接谢谢!

xly2014 发表于 2014-11-6 14:59:35

MPU6050 驱动 读出原始数据

彪悍的飞翔 发表于 2014-11-7 13:48:00

一直在学

eleboss 发表于 2015-2-22 10:16:00

很棒
页: [1]
查看完整版本: [nRF51822 AK II ] MPU6050 驱动 读出原始数据