设为首页收藏本站
查看: 19010|回复: 0

AM335x扩展口J19/J20作GPIO配置方法举例

[复制链接]

33

主题

15

回帖

855

积分

管理员

积分
855
米尔小助手1 发表于 2015-1-9 09:30:57 | 显示全部楼层 |阅读模式
以MYB-AM335X底板上J19的18引脚(SPI1_SCLK)改成通用GPIO口为例:

1、 首先确认要配置的IO口是否被其它器件复用,由核心板用户手册(名为:《MYC-AM335X 产品数据手册.pdf)可知SPI1_SCLK在A13管脚上芯片数据手册上列出A13对应GPIO3_14
am335x1.jpg
SPI1_SCLK在A13管脚上

am335x2.jpg
A13对应GPIO3_14

注意,从底板原理图可看出已经被板子上的音频SGTL5000占用,所以要把它改成通用IO口势必会影响音频的使用。

2、打开内核源码中的板级配置文件 linux-3.2/arch/arm/mach-omap2/board-am335xevm.c 找到该GPIO3_14的复用配置 mcasp0_aclkx 并注释掉,如下图:
图片1.png

3、添加自己的IO配置。创建一个引脚配置数组 gpio_extend_mux[],这里配置为默认输出功能(AM33XX_PIN_OUTPUT默认输出为低电平,AM33XX_PIN_OUTPUT _PULLUP默认输出为高电平):
图片2.png
若要配置为上拉输入用 AM33XX_PIN_INPUT_PULLUP,下拉输入用 AM33XX_PIN_INPUT_PULLDOWN。

为什么.gpio3_14 前面是mcasp0_aclkx以及为什么是MODE7,请参考内核源码 linux-3.2/arch/arm/mach-omap2/mux33xx.c 中的335x引脚复用定义:
图片3.png

4、添加引脚初始化函数 gpio_extend_init()
图片4.png

5、在myd_am335x_dev_cfg[]中添加刚才上一步的gpio_extend_init:
图片5.png

6、重新编译内核并更新到开发板。


关于重新修改开发板上的IO配置,有时候会出现有些引脚正确配置后仍然不受控制的现象,这还得取决于该引脚连了什么外围器件,有可能其所连的外围器件的本身的特性影响到了该引脚的电平,比如总是把它拉低或拉高或是一些时序,请认真参考原理图以及熟悉那些外围器件的特性后再作修改。

回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-11-24 08:24 , Processed in 0.043207 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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