-
概述
- PORT驱动程序帮助用户将PORT引脚分配到外设,并配置底层硬件提供的特性/特性。由于可用性有限,这些端口引脚在芯片外围设备上共享。然而,在任何给定的时间点,端口引脚都被分配给一个外围设备并被它精确地使用。
- 所有涉及到物理引脚的驱动模块,都需要在PORT中提前配置好对应的pin,比如DIO, SPI, ICU等。
- 配置预览
container:PortConfigSet 中涵盖了芯片支持的所有port,默认情况下所有port均采用默认值,即有 或 的标识。用户只需要对EB工程中用到的port[x]_pin[y]进行合理的设置即可。具体每个处理器支持多少个PORT,每个PORT支持多少个PIN,请参阅文档 ;
container:PortGeneral 中包含了PORT模块的一些通用配置;
PortDevErrorDetect 是否启用开发错误诊断,本例中禁用;
PortSetPinDirectionApi 是否启用设置引脚方向api,默认禁用;
PortSetPinModeApi 是否启用设置引脚模式api,默认禁用;
PortVersionInfoApi 是否启用版本信息api,默认禁用;
PortInitApiMode 设置初始化api 为SUPERVISOR模式;
PortSafetyEnable 是否启用安全模式,本例中禁用;
PortInitCheckApi 是否启用初始化检查api,默认禁用;
container:PortConfigSet的sub-container:PortContainer 中列出了芯片支持的所有port和每个port支持的所有pin,这里是预设的默认值,不能修改。
从中我们可得出此芯片一共支持17个Port,Port所对应的PortNumber并不是连续的,每一个Port拥有的pin数也不是固定的。文档中提到的比如Port10,是指PortNumber那列的10,即PortContainer_3,而并不是PortContainer_10,这一点需要注意,同理此规则也适用于Port中pin的命名和区分。
container:PortConfigSet的sub-container:PortPin 中列出具体某个Port下pin的配置,下图中配置PortPin4, 5, 7为输出模式及PORT_PIN_OUT,同时复用功能设置为ALT4模式,默认引脚电平为高电平,即PORT_PIN_LEVEL_HIGH。
图中包含的完整配置项有:
Name: 用户自定义的引脚名,须符合命名规则,同一个Port下各pin名不可重名,不同Port下pin名可重名,也可使用默认值PortPin_x。
PortPINID:软件自动计算出的唯一pin排序号,用户禁止修改此值。
PortPinSymbolicName:软件自动生成的唯一的Port和Pin结合生成的名称,用户禁止修改此值。
PortPinDirection:由用户指定pin的数据方向,只有PORT_PIN_IN和PORT_PIN_OUT两种值。
PortPinDirectionChangeable:引脚方向是否可改变,默认值即可。
PortPinInitialMode:指定pin脚的复用模式,用户需要结合手册和所用的驱动功能从下拉选项中选择合适的值。
剩下的配置项可以使用默认值,具体每个配置项的含义可以参考开头列出的文档。
container:PortConfigSet的sub-container:PortLVDS 中列出了具体某个Port在硬件PCB上支持物理差分信号布线的引脚,下图中此Port的pin0和1,pin2和3就是两对物理上差分信号线,如果实际的需求中需要差分信号,则在这些列出的差分信号对中选择即可,差分信号支持空闲电压值,pulldown等模式的设置。
PortLVDSPinPair 用于指定支持LVDS特性的端口引脚对,此项由软件自动生成,用户无须修改;
PortLVDSRxEnController 用于指定仅适用于Rx LVDS对的开关控制器,可以选择HSCT_CONTROLLED 或 PORT_CONTROLLED;
PortLVDSRxPathEnable 用于指定pin-Pair是在LVDS模式还是CMOS模式,选择TRUE会启用LVDS收发器并禁用CMOS模式,选择FALSE会禁用LVDS收发器并启用CMOS模式;
PortLVDSRxTerminationMode 用于选择端口引脚的终端负载电阻,可以选择EXTERNAL_TERMINATION 或 INTERNAl_TERMINATION;
PortLVDSMode 用于指定信号频率模式,选择LVDSH会启用高频模式,选择LVDSM会启用低频模式;
PortLVDSPadSupply 用于指定Tx和Rx差分对的电源电压,可以选择V3_3 或 V5_0;
PortLVDSTxEnController 用于指定仅适用于Tx LVDS对的开关控制器,可以选择HSCT_CONTROLLED 或 PORT_CONTROLLED;
PortLVDSTxPathEnable 用于指定Pin-Pair是在LVDS模式还是CMOS模式,选择TRUE会开启LVDS收发器,选择FALSE会关闭LVDS收发器;
PortLVDSTxPowerDownPullDown 用于指定传输下拉电阻的状态,选择DISABLE会禁用Tx下电-下拉电阻,选择ENABLE会启用Tx下电-下拉电阻;
container:CommonPublishedInformatica 中是软件自动生成的版本号默认值,用户无需修改,保持默认即可。
涉及到pin的驱动模块的IO复用工作由外设模块支持,由port_init()实现初始化,与Dio无关。 Dio只做简单的IO输入输出配置,比如按键,点灯,开关之类,没有dio_init()这个api。