TI 已经Not Recommand for New Design (NRND) 不推荐新的设计应用LM3S,原来LM3S的产品主页也已经从TI的产品线中撤下。现在主推TM4C(刚开始称为LM4F,现在正式换为TM4C)。TM4C的性能更高,价钱更低(相同性能,其价格与ST接近)——有必要从昂贵的LM3S迁移到TM4C。
本文记录了从LM3S迁移到TM4C的过程。LM3S的固件为Stellarisware,TM4C的固件为TivaWare。
总的思想是:不管是在M3还是M4开发中,尽量用驱动库的接口Driver Library APIs,以利用驱动库提供的应用接口的延续性来实现应用程序升级。
当从M3迁移到M4后,在M3的软件工程中,用M4的驱动库替代M3的驱动库,这样就已经完成了大部分的软件迁移工作,剩下的就是资源配置修改工作了。因为,从M3到M4,虽然硬件发生本质变化,但驱动库同时也配合硬件变化做了改动,并且驱动库变化的同时保持了提供给用户相同的接口,因此用户软件不需要大幅修改。
1,在迁移之前,让我们来看看当前的TM4C与LM3S的异同
参考文件:
《Differences Among Stellaris® LM3S and Tiva™ C Series TM4C123x MCUs》
《Transitioning Designs from Stellaris® to Tiva™ C Series Microcontrollers》讲具体的各个外设变化
1)PB7 由LM3S的NMI变为普通I2C接口
2)Reset的操作有调整。但是StellarisWare 和 TivaWare的驱动库接口(Driver Library APIs)会自动处理这个调整。
3)核心电压降到了1.2,不过是由内部LDO来处理的。整个片子为单3.3V供电。
4)主晶振频率接受5~25MHZ。
5)增加了外设准备好的寄存器Peripheral Ready Registers
6)增加了动态功耗管理,深度睡眠时消耗电流约为1mA,Run mode 1 (Flash loop, all peripherals on)消耗电流为50mA,均比LM3S低50%或以上
7)RTC,时钟管理,休眠和电池管理变化很大,凸显TM4C低功耗的决心
8)增加了EEPROM,目前是2KB
9)对ROM一如既往的支持,但不支持SafeRTOS
10)目前没有TM4C支持Ethernet和I2S。但根据TI的资料显示,LM3S所有外设功能将会在TM4C的其他系列新品中实现。
(TM4C Roadmap)
11)GPIO的最大变化是针对ADC和DMA。支持任意GPIO作为ADC的trigger。
12)PWM,Watchdog,Timer的功能更为强大
13)ADC的变化有:无内置参考电压(利用3.3V VDDA GNDA作为参考电压),不能设置ADC分辨率,新支持dither控制,输入阻抗为500欧姆
14)UART SSI USB变化不大,I2C功能更加齐全
15)完全重新设计的休眠模块,解决了LM3S休眠模块的问题
2,迁移LM3S软件工程到TM4C
参考文件:
《Migrating Software Projects from StellarisWare® to TivaWare》
主要修改的是:
具体修改步骤:
3,开始全新的TM4C硬件设计
参考文件:《Tiva™ C Series MCU System Design Guidelines》
该参考资料主要是关于PCB布线方面。