您当前的位置:五五电子网电子知识电子知识资料机器人-智能车基于MCU的室外移动机器人导航定位系统 正文
基于MCU的室外移动机器人导航定位系统

基于MCU的室外移动机器人导航定位系统

点击数:7682 次   录入时间:03-04 12:03:21   整理:http://www.55dianzi.com   机器人-智能车
MS5803-02BA[3]是由MEAS公司生产的数字压力传感器,分辨率达10cm。芯片内部包含一个高线性的压力传感器和一个内部工厂标定系数的超低功耗24位ΔΣ型ADC。该款芯片有SPI和I2C两种接口方式,通过芯片的PS引脚配置了选择不同的接口方式(PS置低时,采用SPI工作模式;PS置高时,采用I2C工作模式)。本文所阐述的定位系统将气压计配置为SPI工作模式。MS5803-02BA与微控制器间的接口电路设计如图4所示。

 

 

图4 MS5803-02BA接口电路
图4 MS5803-02BA接口电路

 

MS5803-02BA的控制命令包括复位命令、温度ADC命令、气压ADC命令、ADC读取命令、PROM读取命令。控制命令如表2所示。

控制命令通过SDI口移位输入,响应结果从SDO移位输出。输入的电平判定在时钟信号的上升沿,输出的电平判定在时钟信号的下降沿。输出的气压值可以进行温度补偿,需要利用芯片内部PROM中的系数来补偿。ADC读取命令输入之后,输出24位ADC结果;PROM读取命令输入之后,输出16位补偿系数。

 

 

表2 MS5803-02BA控制命令

 

 

下面是读取ADC的C语言代码:

CSN_OFF_MS();//CS置低

SPI_WRITE_8BIT(CMD);//SDI移入8位CMD

delay_ms(10); //延时10ms

CSN_ON_MS();//CS置高

CSN_OFF_MS();//CS置低

SPI_WRITE_8BIT(0x00);//SDI移入8位0x00

result = SPI_READ_24BIT();//SDO移出24位

CSN_ON_MS();//CS置高

下面是读取PROM的C语言代码:

CSN_OFF_MS();//CS置低

SPI_WRITE_8BIT(CMD); //SDI移入8位CMD

result=SPI_READ_16BIT();//SDO移出24位

CSN_ON_MS();//CS置高

结合器件的使用手册及手册疏漏的地方,使用MS5803-02BA时需要注意:

1、温度和气压ADC命令发送之后,芯片内部需要一定的时间进行采样转换,具体时间与过采样率(OSR)有关,最大需求时间为10ms,因此本文采用的延时时间为10ms;

2、片选信号CS的下降沿到时钟SCLK信号的第一个上升沿至少要有21ns的时间延迟,否则命令无法正确写入芯片;

3、8位的ADC读取命令之后,必须保持CS片选信号持续为低,再产生24位时钟信号输入,将24位的ADC结果读取出来(即一个命令字为8位,但实际需要32个连续的时钟周期才能完整读取ADC结果);

4、对于PROM读取命令同ADC读取命令,一共需要24个连续的时钟周期完成,其中8位命令字输入,16位数据读出。

5、对于所有从SDO移位输出数据的同时,都需要SDI输入端保持低电平。

 

 

2.5 SPI转UART电路

由于MSP430F149的片上UART资源都被IMU器件和GNSS接收机占用,因此需要扩充一个UART接口才能满足定位系统与PC机间的通信。为此将MSP430F149上的GPIO模拟SPI,再通过MAX3111E芯片转成UART接口。

MAX3111E是MAXIM公司推出的全功能收发器,内部包含UART和RS232电平转换两个独立的部分。UART部分包括兼容于SPI的串行接口、可编程波特率发生器、发送移位寄存器、接收移位寄存器、8字长的FIFO以及4种可屏蔽中断发生器;RS232部分包括电泵电容、硬件关断(SHDN管脚),具有±15kV静电保护作用。它可以选择1.8432MHz或3.6864MHz两种晶振作为外部晶振,芯片能够工作在300bps~230kbps波特率,本文使用的是3.6864MHz晶振。MAX3111E与MSP430F149连接电路如图5。

 

 

图5 SPI转UART电路
图5 SPI转UART电路

 

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:机器人  机器人-智能车电子知识资料 - 机器人-智能车