搜索
bottom↓
回复: 14

收到element14和Freescale合作的HCS08的板子,稍稍做个分析!

[复制链接]

出0入0汤圆

发表于 2011-5-5 11:36:10 | 显示全部楼层 |阅读模式

正面 (原文件名:Top Side.JPG)
XL-STAR是由Freescale和element14联合推出的低成本开发板,板上带有一颗Freescale的MC9S08MM128微控制器,属于HCS08系列中的8位MCU新成员,带有128kB的flash,12kB的RAM,并且处理器的频率可以进行配置,最高为48MHz。

XL-STAR正面下方焊接了48颗橙色LED,以八角形辐射状排列,中间是一颗加速计MMA8451Q,可以通过检测引力方向来判断电路板面向的方向,并且能够检测电路板在任何方向上的运动。当电路板发生倾斜时,这些LED会在DEMO程序的控制下显示相应的状态。

电路板上方有三个按钮SW1、SW2、SW3,其中SW1用于为加速计选择不同的灵敏度,包括2g、4g和8g三个灵敏度。SW2用于选择加速计输出到MC9S08MM128的数据位宽,包括8-bit和14-bit两种选择。SW3用于为加速计选择不同的演示模式,包括倾斜、拍打、摇动、移动、自由落体检测等。中间的绿色LED用于指示当前各个按钮所选择的不同配置。

电路板顶端有一个开关,用于接通或断开电路板背面安放的纽扣电池。开关左边的USB接口用于某些支持USB的应用例如作为MP3播放器上的USB接口。电路板背面有另一个MCU JM60用于运行调试程序,还有一个用来做debug的USB接口,并且能够将应用程序烧录到MC9S08MM128的flash中,同时也能为纽扣电池充电。

MC9S08MM128右下方有4组跳线,第一组接通时可以测量该MCU的电流,第二组接通的时候,背面的JM60可以作为USB到串行的转换器(需要其他软件支持)。第三组接通时,JM60可以运行基本引导程序,允许升级debug固件。第四组接通时可以测量加速计的电流。

XL-STAR还支持节能模式。如果电路板静止20秒左右,就会进入低耗电状态。要唤醒电路板,直接拿起来即可。

开发板附带了Freescale的CodeWarrior v.63集成开发环境。先安装在计算机上,然后才能连接USB,否则计算机无法识别设备。开发环境有免费版本,但是C编译器只能编译最大32KB的代码。据说之后会发布支持64KB的版本。

安装也很简单,运行CD里面的安装向导instrall_all.hta,然后按照界面上的前5个步骤依次安装即可。安装可能有点慢,等待时一定要淡定。。。

第一步安装完成后界面上有个选项,问是否需要上网检查更新,不要选择更新,直接完成即可。

第二步安装时会弹出警告信息,不管他,选yes继续。

第五步安装CodeWarrior的演示程序,务必安装在有写权限的目录下。Vista的C:\Program Files目录被Windows保护,千万不要安在这里。

尽管第四步已经安装了一部分USB驱动,但是不同的Windows版本可能需要另外安装三个驱动,即OSBDM Debug Port、OSBDM Serial Port、OSBDM Bootloader Port。先断开JP3,然后再连接USB到计算机安装前两个驱动。安装时Windows需要指定驱动路径,直接指定第四步所安装的目录即可。前两个驱动安装好后断开USB连线,接通JP3后再连到计算机上安装第三个驱动。安装完后拔掉USB连线,断开JP3,然后再连接计算机就可以使用了。

目前正在学习中,争取明天能够把硬件部分的分析写出来,呵呵!


5月6日更新----------------------------------------------------------------------------------------------------------------------------------
电源部分:

(原文件名:POWER-Block Diagram.jpg)
XL-STAR板的可以通过自带的电池和USB接口供电。需要注意的是,当使用USB接口供电时,需要把USB电缆连接到J6的USB接头上。也许你会问,那么还有一个USB街头(J1)有什么用呢?J1是XL-STAR板扩展的一个目标MCU的USB的接口,可供用户自己的应用程序调用。并且J1的电源引脚并没有和板上的电源相连,所以在任何时候,都是不可能使用J1供电的。了解了上面的一些基本信息,下面我们再来看看XL-STAR板具体的电源回路。

无论采用电池还是USB借口供电,XL-STAR板都是单+5V供电。+5V进入XL-STAR板后,经过开关SW4,SW4可以控制整个板卡的供电。然后再经过一个Power MOSFET(Q2:IRLML6401),对板卡的电流流向进行保护。经过前面几个控制和保护过程后,+5V进入线性电源转换芯片LP2981(U2),该芯片输出+3.3V电压,供整个板卡使用。板上的D14和D15分别为+5V和+3.3V电压的状态指示灯。为了方便测量目标MCU和加速度传感器的工作电流,板卡还设置有两个跳线JP1和JP4,分别作为MCU和加速度传感器的电流测量接入点。

如果你使用USB接口供电,那么你一定会发现一个有趣的现象。那就是在USB供电的状态下,无论SW4闭合还是断开,板卡都处于供电状态。为什么会产生这个现象呢?对于这个问题,我们可以这样来理解:当你使用USB接口供电时,USB电缆另一端的设备就是PC。当使用PC连接板卡时,大部分时间你都处于调试阶段,比如实时调试和烧写二进制代码。在进行上述工作时,板卡不允许断电,以免引起器件的损坏。所以XL-STAR板采取了一些措施,保证用户使用USB接口供电时,不会因为误操作SW4,使板卡意外断电。可以说,这是一个很贴心的设计,那么具体的电路是怎样实现的呢?

(原文件名:POWER.JPG)
上面的这部分电路图说明了这一功能的原理。图中的+5VU为未经过SW4的USB +5V电压,+5VTRG为经过了SW4的+5V电压。这两个电压分别连接到IRLML6401(Q4)的2、3脚,IRLML6401的1脚(控制脚)连接到JM60 MCU的PTB1这个IO上。当使用USB供电时,JM60开始工作,PTB1被拉低,使IRLML6401中与2、3脚相连的二极管被旁路,+5VU和+5VTRG被连通。相当于旁路了SW4,所以无论SW4闭合或者断开,板卡都能够正常供电。

JM60调试器:
XL-STAR板有两个MCU,板卡正面的是主MCU-MM128,它是XL-STAR板的目标MCU。默认情况下预编程有加速度传感器和LED的演示程序。用户也可以设计自己的程序,烧入该MCU中,以实现多样的功能。

在XL-STAR板的背面,还有一个MCU-JM60。我们可以把JM60看成一个XL-STAR板载的调试器。它的主要工作是通过USB电缆连接板卡和PC,接收从PC传来的调试命令。并且通过内部预先烧入的固件,形成对目标MCU(MM128)的Open Source Background Debug Mode接口,从而达到对目标MCU进行调试的目的。目标MCU(MM128)和JM60通过BGND引脚连接。

(原文件名:Debug Trace-Block Diagram.png)
上图描述了XL-STAR板的调试数据流,调试信号通过USB电缆传输到USB接口,USB接口的D+和D-两条数据线分别连接到JM60的USBDP和USBDN两个引脚上,到这里完成了XL-STAR板调试信号的输入。JM60把接收到得调试信号转换成OSDBM可以识别的格式,再通过BGND引脚发送出去。由于发送出去的信号为+5V,所以需要把+5V转换为MM128可以承受的+3.3V电压,XL-STAR使用了SN74LVC1T45完成上述的电平转换功能。转换完成的+3.3V信号,连接到MM128的BKGD引脚上,实现BDM的实时调试功能。下面我们再来看看JM60固件的升级功能。

上面我们已经说到,JM60的固件在XL-STAR板出厂时就已经固化。在绝大多数情况下,不需要对固件进行升级。如果你确实需要升级或者重新烧入该固件,可以参考下面的步骤:
1.从PC机上断开XL-STAR板;
2.插上JP3的跳线帽,进入Bootloader模式;
3.把SW4置于OFF状态,通过USB电缆连接XL-STAR板和PC。连接后,你可以在Windows的设备管理器中看到XL-STAR板的连接状态,如下图:

(原文件名:Bootloader.jpg)
4.使用PE Firmware Updater program version 1.01,对JM60的固件进行更新:Using PE Firmware Updater program version 1.01 to update:
  •选择OSDBM/OSJTAG为硬件模式  
  •选择Embedded OSBDM/OSJTAG Device为设备;
  •选择S08为MCU架构
  •选择Choose Firmware Update File or S-Record option,不要选择自动模式
  •选择你需要烧入的固件烧写文件
  •点击Update Firmware,进行固件烧入
  •完成烧入后,去掉JP3的跳线帽,使XL-STAR板恢复到普通模式

先写到这儿,呵呵。

出0入0汤圆

发表于 2011-5-5 14:47:24 | 显示全部楼层
就Accelerometer有点意思

出0入0汤圆

发表于 2011-5-5 15:10:31 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-5-6 11:46:26 | 显示全部楼层
自己顶下,嘿嘿!

出0入0汤圆

发表于 2011-5-6 13:13:26 | 显示全部楼层
不错,不知楼主怎么得到的。多年前得到一个jm badge,也很好玩

出0入0汤圆

 楼主| 发表于 2011-5-6 13:48:49 | 显示全部楼层
回复【4楼】CarlLee
不错,不知楼主怎么得到的。多年前得到一个jm badge,也很好玩
-----------------------------------------------------------------------

公司买来学习的,呵呵。

出0入0汤圆

发表于 2011-5-11 17:40:44 | 显示全部楼层
回复【1楼】flyhouse  丷_丷
-----------------------------------------------------------------------

我也超喜欢那个加速度传感器,前段时间还到Freescale官网上申请了几个样品,不过不是MMA8451Q,是MMA7455。可惜是QFN还是什么封装的,pin距小的很,根本无法手工焊接。有没有焊接高手请教一下怎么焊这样超小型的芯片?

有了加速度传感器应该可以做个计步器之类的吧,不知道算法复杂不?我的moto手机就有这个功能, 不过好像计算不精确。唉,免费的软件,也没啥好高的奢望,后来删除了那个计步器软件。

另外,楼主能不能告诉我哪里能买到这个板子?

出0入0汤圆

发表于 2011-5-11 17:48:05 | 显示全部楼层
回复【6楼】Gecko  
-----------------------------------------------------------------------

忘记说了,等我不太忙的时候一定要DIY一个计步准确的计步器,带在身边可以看看锻炼身体的效果,嘎嘎!

不知道这个板子可不可以像Arduino平台那样自己扩展需要的功能?不过看到图上两边的接口,感觉应该可以。

遭了是不是跑题了???闪人

出0入0汤圆

发表于 2011-5-12 09:33:49 | 显示全部楼层
在哪弄到的?

出0入0汤圆

 楼主| 发表于 2011-5-12 14:33:10 | 显示全部楼层
电池部分:

(原文件名:Battery.jpg)
XL-STAR板的电池位于电路板的背面,用于非调试时的板卡供电。电池采用+5V输出的可充电锂电池。在上面的电路图中,BT1为电池夹,锂电池就安装在里面。电池的正极与SW4的一端相连,作为SW4的输入。SW4的另一端,也就是输出端通过MOSFET连接到LDO的输入端,在经过了LDO把+5V电压转换成+3.3V电压后,就可以给整个板卡供电了。通过以上的连接关系,在使用电池供电时,SW4就可以控制电池供电的通断。

出0入0汤圆

 楼主| 发表于 2011-5-12 14:38:41 | 显示全部楼层
JM60调试器:
XL-STAR板有两个MCU,板卡正面的是主MCU-MM128,它是XL-STAR板的目标MCU。默认情况下预编程有加速度传感器和LED的演示程序。用户也可以设计自己的程序,烧入该MCU中,以实现多样的功能。
在XL-STAR板的背面,还有一个MCU-JM60。我们可以把JM60看成一个XL-STAR板载的调试器。它的主要工作是通过USB电缆连接板卡和PC,接收从PC传来的调试命令。并且通过内部预先烧入的固件,形成对目标MCU(MM128)的Open Source Background Debug Mode接口,从而达到对目标MCU进行调试的目的。目标MCU(MM128)和JM60通过BGND引脚连接。

(原文件名:Debug Trace-Block Diagram.png)
上图描述了XL-STAR板的调试数据流,调试信号通过USB电缆传输到USB接口,USB接口的D+和D-两条数据线分别连接到JM60的USBDP和USBDN两个引脚上,到这里完成了XL-STAR板调试信号的输入。JM60把接收到得调试信号转换成OSDBM可以识别的格式,再通过BGND引脚发送出去。由于发送出去的信号为+5V,所以需要把+5V转换为MM128可以承受的+3.3V电压,XL-STAR使用了SN74LVC1T45完成上述的电平转换功能。转换完成的+3.3V信号,连接到MM128的BKGD引脚上,实现BDM的实时调试功能。下面我们再来看看JM60固件的升级功能。
上面我们已经说到,JM60的固件在XL-STAR板出厂时就已经固化。在绝大多数情况下,不需要对固件进行升级。如果你确实需要升级或者重新烧入该固件,可以参考下面的步骤:
1.从PC机上断开XL-STAR板;
2.插上JP3的跳线帽,进入Bootloader模式;
3.把SW4置于OFF状态,通过USB电缆连接XL-STAR板和PC。连接后,你可以在Windows的设备管理器中看到XL-STAR板的连接状态,如下图:

(原文件名:Bootloader.jpg)
4.使用PE Firmware Updater program version 1.01,对JM60的固件进行更新:
  •选择OSDBM/OSJTAG为硬件模式  
  •选择Embedded OSBDM/OSJTAG Device为设备;
  •选择S08为MCU架构
  •选择Choose Firmware Update File or S-Record option,不要选择自动模式
  •选择你需要烧入的固件烧写文件
  •点击Update Firmware,进行固件烧入
  •完成烧入后,去掉JP3的跳线帽,使XL-STAR板恢复到普通模式

出0入0汤圆

发表于 2011-5-13 10:43:35 | 显示全部楼层
又更新了,LZ效率好高

出0入0汤圆

 楼主| 发表于 2011-6-13 16:38:41 | 显示全部楼层
MM128、MMA8451和LED的功能:

(原文件名:Main Function-Block Diagram.png)
上图为XL-STAR板的信号流程图。图的中间为MC9S08MM128 MCU,两边分别是MMA8451Q加速度传感器和48颗LED组成的LED阵列。从上图我们可以很清晰地看出XL-STAR的信号传输流程:首先,由MMA8451Q加速度传感器采集到的模拟信号,经过它内部的转换电路,转换成为数字信号,再通过IIC接口发送给MC9S08MM128 MCU;MM128内部接收到上述的信号后,经过一系列的处理算法,得到相应的结果,再通过它的IO口点亮相应的LED指示灯。下面我们就分别来看看MMA8451Q部分和LED部分的工作原理:

MMA8451Q:

(原文件名:MMA8451Q.JPG)
上图是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设备地址选择列表:

(原文件名:SLAVE ADDRESS.jpg)
在XL-STAR板中,MMA8451Q的SA0引脚为高电平,所以MMA8451Q的设备地址为0x1D。

(原文件名:Interrupt.jpg)
上图是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阵列:

(原文件名:LED_Array.PNG)
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

出0入0汤圆

发表于 2011-9-20 14:59:38 | 显示全部楼层
很不错的样子!

出0入0汤圆

发表于 2011-9-26 13:06:02 | 显示全部楼层
回复【楼主位】roykid
-----------------------------------------------------------------------

回复【12楼】roykid
------------------------------------------------------------------
mark^
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 01:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表