前言
工作原因,要根据需求配置MCAL,虽然之前有过了解,但停留在理论层面,本篇注重实战。也不按必须的模块顺序进行配置了,从Port开始吧。
顺便问大家一句 TC37x_DP 跟 TC37x_ED啥的有啥区别?
(完整版请移步: 英飞凌community)
Port
打开EB Tresos 软件的Port模块,General和Published Information的部分没啥好说的,我就按默认了。
(其实是我也不清楚这个API我要不要用,也没人告诉我,先按默认来,不能因为非重要的地方阻碍了脚步)
PortContainer
-
首先,打开DataSheet 第二个章节 TC37x Pin Definition and
Functions看到有很多PortPin的说明:P00.1-P00.12 P01.3-P01.7 P02.0-P02.11 P10.0-P10.8 …
每个Port算一个Container, TC37x一共17个,具体数出来,还是建立工程时自动生成 有待研究;
上图中PortNumber 也就是Port号,不连续
PortNumberofPortPins 是不同的Port下包含几个Pin;
- 双击进入Container内部,会有Pin的具体配置: General部分,与上述内容相一致 LVDS还没用到,先空着吧;
至于一个Port内是否需要把所有引脚都配置里,还是只配置用到的pin,有待研究;
可以再此表格基础上配置,当然双击进入能一目了然,
- 我们双击进入一个Pin的配置
一目了然的我就不讲了,我讲讲我自己配置的时候有疑惑的几个配置项
PortPinDirection为 IN时,灰色部分不可更改,其实也就是不重要,所以不用关心PULL_UP和Level为LOW冲突的问题,只需要配置上拉或者下拉,和PadLevel
(一般都是CMOS,以太网用RGMII,不特殊说明就按默认)
PortPinDirection为 OUT时,上拉下拉不重要。
首先为复选模式选择,普通IO就选GPIO,ALT1-7要根据需求和手册,配成O1到O7
LevelValue 为默认时输出的是高电平还是低电平,也是根据需求来,需求没强调就随便咯。
DriverStrength 没研究,按DEFAULT
DriveMode PUSHPULL,驱动能力强一些;OPENDRAIN,如果需要驱动能力,需要外界=接上拉电阻。(想知道为什么,得去看看IO口的物理组成:CMOS的原理,b站一堆是哦,自行观看)
PortPinMode这个项,按默认,不知道有啥用
Dio
Dio 我的理解是单纯的数字IO口,只有高低电平的区别,不属于ADC,SPI…等外设的范畴;
General部分同理,我们来看DioPort。上面配了不同的Pin,但根据需求可能只有几个pin脚是数字IO,可能就点个灯?类似的;
此处的DioPortId即为Port号,根据需求,不连续
双击进入:
DioChannel Container:可以自己命名每个Channel的名字,此处的ChannelId为pin脚号,如果P33.5外接一个LED,那么上文的DioPortId为33,此处ChannelId为5.由此类推
DioChannelGroup Container:
其实就是我如果有好几个数字IO口,但我想一起控制高低电平,那么就依靠这个Port创建一个Group;不能依靠Pin
DioPortMask 设置Port那几个Pin需要翻转;Offset也不太清楚。。。。