MM128、MMA8451和LED的功能:
上图为XL-STAR板的信号流程图。图的中间为MC9S08MM128 MCU,两边分别是MMA8451Q加速度传感器和48颗LED组成的LED阵列。从上图我们可以很清晰地看出XL-STAR的信号传输流程:首先,由MMA8451Q加速度传感器采集到的模拟信号,经过它内部的转换电路,转换成为数字信号,再通过IIC接口发送给MC9S08MM128 MCU;MM128内部接收到上述的信号后,经过一系列的处理算法,得到相应的结果,再通过它的IO口点亮相应的LED指示灯。下面我们就分别来看看MMA8451Q部分和LED部分的工作原理:
MMA8451Q:
上图是XL-STAR板MMA8451Q部分的原理图。MMA8451Q的电源引脚VDD和VDDIO连接到+3.3V上面,提供MMA8451Q需要的电源。MMA8451Q的GND引脚连接到地平面。在MMA8451Q的技术手册中,对NC引脚的连接方法有明确的要求,MMA8451Q的3脚必须保持悬空,即不能连接;其余的NC引脚可以连接到GND或者VDD上,所以上图中,除了3脚以外的NC引脚,都连接到了地平面上。MMA8451Q的BYP引脚必须连接一个0.1uF的旁路电容,该旁路电容在设计PCB时,需要靠近BYP引脚放置。除了BYP引脚的旁路电容外,其余的与电源引脚相连电容,也应当靠近相应的电源引脚放置。
MMA8451Q集成了IIC接口,有SCL和SDA两个引脚,分别连接到HC9S08MM128的PTF3/SCL和PTF4/SDA上,上述这两个MM128的引脚为IIC的复用引脚,可以方便的发送和接收IIC总线的信号。在SCL和SDA这两条信号线上,根据IIC总线规范,分别有一个4.7K的上拉电阻,保证总线在空闲时为高电平状态。MMA8451Q作为IIC总线上的从设备,需要有一个设备地址,供主设备寻址。MMA8451Q的设备地址为出厂固定,但有两个地址可供选择,选择的方法就是控制引脚SA0的电平高低,下面是MMA8451Q设备地址选择列表:
在XL-STAR板中,MMA8451Q的SA0引脚为高电平,所以MMA8451Q的设备地址为0x1D。
上图是MMA8451Q的中断源和中断控制器的示意图。从图中可以看出,MMA8451Q共有7个中断源,分别为Data Ready, Motion/Freefall, Tap(Pulse), Orientation, Transient, FIFO, Auto-SLEEP 。这7个中断源,通过中断控制器,可以自由的分配给两个外部中断引脚。当INT1和INT2这两个中断引脚的任意一个引脚输出中断信号,就说明7个中断源之一的事件发生了。在XL-STAR板上,这两个外部中断引脚被连接到MC9S08MM128的PTE1/KBI2P4和PTE0/KBI2P3引脚上,作为MMA8451Q的中断接收引脚。当MMA8451Q产生中断时,MC9S08MM128通过这两个引脚接收中断,并进入相应的中断服务程序,进行相应的操作。
LED阵列:
XL-STAR由共有48颗LED组成的阵列显示MMA8451Q的探测结果。这48颗LED向8个方向,按星状排列,每一个方向由6颗LED组成。从上图可以看出,每一个LED都和MC9S08MM128的两个IO口连接,如果需要驱动某一个LED,MM128就需要对相应的两个IO进行操作,例如:想要驱动D63,需要由PTD5提供低电平,PTC5提供高电平。驱动LED的IO一共需要14个,具体的连接方式是:8个方向上的LED分别连接到一个IO上,6个圆圈的LED分别连接到一个IO上。这种矩阵式的连接方法,既保证了LED驱动的灵活性,又减少了IO口的数量,可以说是两全其美。
在XL-STAR板默认的演示程序中,某些功能的演示需要用到MC9S08MM128的PWM功能。通过PWM可以调整IO口输出信号的占空比,已达到控制LED亮度的目的。使用不同亮度的LED显示功能,可以更准确、更直观的表示MMA8451Q的工作状态。在演示程序中,需要用到8个PWM通过,分别属于两个Timer/PWM模块。下表是具体的Timer/PWM模块和IO口的映射关系:
GPIO Pin TMP Module/Channel
PTD5 TPM1CH3
PTD4 TPM1CH2
PTD3 TPM1CH1
PTD2 TPM1CH0
PTE7 TPM2CH3
PTF0 TPM2CH2
PTF1 TPM2CH1
PTF2 TPM2CH0