[DM814x笔记]引脚复用配置

在TI814x设备中,复位时,默认的引脚复用配置被设置为Mode0(FUNCTION 1)。如果想将某些引脚配置成其他的功能而不是Mode0,或者说重载在U-Boot中已经设置好的引脚配置,内核需要重新配置。
       引脚配置可以有两种方法:
1、在arch/arm/mach-omap2/board-ti8148evm.c中的board_mux数组中添加特定的复用入口。比如在board_mux中添加

TI814X_MUX(MTSI_DCLK, OMAP_MUX_MODE1|OMAP_PULL_UP)或TI814X_MUX(MTSI_DCLK, OMAP_MUX_MODE1),要注意必须放在{.reg_offset=OMAP_MUX_TERMINATOR}之前。

2、在arch/arm/mach-omap2/devices.c中的初始化omap2_init_devices()函数中调用函数omap_mux_init_signal()。比如:omap_mux_init_signal("gmiil_rxclk",OMAP_PULL_UP)或omap_mux_init_signal("gmiil_rxclk",0)。
       其中引脚复用信号的名字及其使用的模式种类在内核源码目录中的arch/arm/mach-omap2/mux814x.c中的muxmodes[]数组指定。
       查看引脚的复用情况,可以使用debugfs。
# mount -t debugfs none /sys/kernel/debug
# cat /sys/kernel/debug/omap_mux/clkin32
       关于引脚复用有比较特殊的几个IO需要注意。比如GP0[1]、GP1[7]~GP1[10],要使用其GPIO的功能,需要做如下配置。
       首先,使能时钟:
//enable GP0 GP1 Clock,见TMS320DM816x Technical Reference Manual.pdf中的RCM_ALWON_GPIO_0_CLKCTRL Register
/* PRCM Base Address */
#define PRCM_BASE 0x48180000
#define CM_ALWON_GPIO_0_CLKCTRL (PRCM_BASE + 0x155c)
#define CM_ALWON_GPIO_1_CLKCTRL (PRCM_BASE + 0x1560)

__raw_write(0x102,CM_ALWON_GPIO_0_CLKCTRL);
while((__raw_read(CM_ALWON_GPIO_0_CLKCTRL)&0x03)!=0x2);

__raw_write(0x102,CM_ALWON_GPIO_1_CLKCTRL);
while((__raw_read(CM_ALWON_GPIO_1_CLKCTRL)&0x03)!=0x2);

//GP0_1 Mode7
__raw_write(0x00040080,0x4818081c);

       其次,在U-Boot中定义如下变量:
#define MLBP_SIG_IO_CTRL_FOR_GPb7b8  0x48140E18
#define MLBP_SIG_IO_CTRL_FOR_GPb9b10 0x48140E1C
#define MLBP_SIG_IO_CTRL_VAL 0x3F //set 3LB to enable;2 lvcmos buffer, padn receiver, padp receiver

#define GPIO1_OE 0x4804C134
#define GPIO1_SETDATAOUT 0x4804C194
#define GPIO1_CLEARDATAOUT 0x4804C190
#define GPIO1_DATAOUT 0x4804C13C

#define WR_MEM_32(addr,data) *(unsigned int *)(addr)=(unsigned int)(data)
#define RD_MEM_32(addr) *(unsigned int *)addr
WR_MEM_32(MLBP_SIG_IO_CTRL_FOR_GPb7b8, MLBP_SIG_IO_CTRL_VAL);
WR_MEM_32(MLBP_SIG_IO_CTRL_FOR_GPb9b10, MLBP_SIG_IO_CTRL_VAL);

//将引脚配置成GPIO功能并上拉
(*(volatile unsigned int *)(0x481408F4))=(volatile unsigned int)((1<<19)|(1<<18)|(1<<17)|(1<<7)); //GP1_7
(*(volatile unsigned int *)(0x481408F8))=(volatile unsigned int)((1<<19)|(1<<18)|(1<<17)|(1<<7)); //GP1_8
(*(volatile unsigned int *)(0x481408FC))=(volatile unsigned int)((1<<19)|(1<<18)|(1<<17)|(1<<7)); //GP1_9

//输出使能
val=__raw_readl(GPIO1_OE);
val&=(~((1<<7)|(1<<8)|(1<<9)));
__raw_writel(val, GPIO1_OE);

//置位
val=__raw_readl(GPIO1_SETDATAOUT);
val|=((1<<7)|(1<<8)|(1<<9));
__raw_writel(val, GPIO1_SETDATAOUT);

//清零
val=__raw_readl(GPIO1_CLEARDATAOUT);
val|=((1<<7)|(1<<8)|(1<<9));
__raw_writel(val, GPIO1_CLEARDATAOUT);

Reference:
http://repository.timesys.com/buildsources/u/u-boot/u-boot-2010.06/u-boot-2010.06-ti81xx-201202011623.patch
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/153934.aspx

转载地址:http://weimenlove.blog.163.com/blog/static/177754732012101311230450/
<think>好的,我现在需要帮助用户查询STM32F107VCT6微控制器的管脚配置引脚图。首先,用户提到了三个引用来源,我需要先仔细查看这些引用内容,看看是否有相关信息。 引用[1]提到“STM32F107VCT6微控制器PCB封装深度解析”和下一章讨论引脚功能及原理图标注,说明在引用[1]中可能详细讲解了引脚功能,但用户可能需要具体的数据手册来获取完整的引脚图。引用[3]提到官方原理图和PCB,这可能包含引脚配置的信息,但同样需要数据手册作为参考。 接下来,我应该考虑用户的需求。用户明确想要管脚配置引脚图,以及数据手册。通常情况下,微控制器的引脚图和数据手册可以在制造商的官方网站找到。STMicroelectronics作为生产商,应该提供这些资料。因此,正确的做法是指导用户去官网下载数据手册,里面会有详细的引脚定义和功能描述。 另外,用户提供的引用中,引用[1]可能已经部分涉及引脚功能,但可能不够全面。因此,建议用户查阅官方数据手册以获取完整信息。同时,引用[3]提到了官方原理图和PCB,这可能包含实际应用中的引脚连接示例,但原理图需要结合数据手册来理解每个引脚的具体用途。 用户可能需要知道如何找到数据手册,所以步骤应该是:访问ST官网,搜索型号,下载PDF文档。数据手册中通常会有引脚排列图(Pinout Diagram),每个引脚的功能说明,电气特性等。此外,应用笔记或参考手册也可能提供更详细的使用案例,如引用[2]中的例程可能涉及特定引脚的使用,比如USB或SD卡接口,但具体引脚配置仍需参考数据手册。 需要确保用户明白,不同封装的STM32F107VCT6可能有不同的引脚排列,比如LQFP100封装,因此确认封装类型很重要。数据手册中会有针对不同封装的详细引脚图,用户需根据实际使用的封装查找对应的信息。 总结回答要点:指导用户前往ST官网下载数据手册,解释数据手册中包含引脚图和详细功能说明,并提醒注意封装类型。同时,引用提供的资料可能辅助理解,但官方文档是最权威的来源。</think>关于STM32F107VCT6微控制器的管脚配置引脚图,可以通过以下步骤获取权威信息: ### 1. 获取官方数据手册 STMicroelectronics官网提供完整的技术文档: - 访问[ST官网](https://www.st.com) - 搜索框输入"STM32F107VCT6" - 在"文档"标签页下载《STM32F107xx数据手册》PDF文件 数据手册包含: - 第3章完整引脚定义(含LQFP100封装引脚图) - 各引脚复用功能映射表 - 电气特性参数[^3] ### 2. 关键引脚功能解析(以LQFP100封装为例) | 引脚编号 | 引脚名称 | 主要功能 | |----------|------------|-----------------------------------| | 11-14 | PA0-PA3 | GPIO/USART2_CK/ADC输入 | | 44-47 | PB12-PB15 | GPIO/SPI2接口/CAN接口复用 | | 83-85 | PC10-PC12 | SDIO接口/UART4通信 | | 96-98 | PD0-PD2 | FSMC总线接口/CAN信号 | ### 3. 推荐参考资源 - 官方原理图库:包含标准开发板的引脚连接范例 - STM32CubeMX工具:可视化配置引脚复用功能 - STM32标准外设库:提供引脚初始化代码模板[^2] ### 4. 引脚配置注意事项 1. 电源引脚必须按手册要求连接滤波电容 2. BOOT0/BOOT1引脚决定启动模式 3. 特殊功能引脚(如USB_DP/DM)需保持信号完整性设计[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值