完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
今天利用HOST example/enet_lwip/m3/enet_lwip.c看了GPIO的复用配置。以其中的这段程序为例: // MII_TXD3 GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_DIR_MODE_HW); GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_TYPE_STD); HWREG(GPIO_PORTC_BASE + GPIO_O_PCTL) &= 0xFFF0FFFF; HWREG(GPIO_PORTC_BASE + GPIO_O_PCTL) |= 0x00030000; 1、我的理解是每一组的PORT,如PORTA 、PORTB等,它们都有各自的的GPIOASEL 、GPIOCSEL 、GPIOPCTL等寄存器,因为这些寄存器只有8个位的状态,必须每组PORT都有一个。2、HWREG(GPIO_PORTC_BASE + GPIO_O_PCTL) &= 0xFFF0FFFF; HWREG(GPIO_PORTC_BASE + GPIO_O_PCTL) |= 0x00030000;结果是使GPIOPCTL寄存器的PMC4为0011,然后对应功能技术手册的table4-1,选择PC4的3号(0011)功能,即MII_TXD3。这样理解是对的吗?3、GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_TYPE_STD);这句是配置管脚的什么属性?手册上有5种GPIO_PIN_TYPE_X,分别是什么?各用在什么场合?4、我看到后面有些引脚的配置使用了GPIOASEL寄存器,有些没有。我的理解是这些管脚是分成两组的,在上面组中的 GPIOASEL相应位清0,,在下面就置1,因默认是0,故在上面组无需配置,在下面组则多了配置GPIOASEL寄存器的语句。这样理解是对的吗?
|
|
相关推荐
3 个讨论
|
|
|
Hi,
你可以看一下technical reference guide中关于GPIO那一个章节。 1, 每个GPIO端口都具备那些寄存器,手册主要是这个来说明的,就是每个端口都有一个基地址,然后那些寄存器都有对应的offset地址,所以只要给个port的基地址,再给对应的offset地址就是对某个端口的某个寄存器进行操作,具体哪个寄存器可以看手册关于寄存器中的说明。当然,驱动库都已经写好了,你也可以直接用。 2. 你的理解是对的。另外你可以通过编译后查看对应的寄存器,进一步就能够确定你的理解。 3.The pad control registers allow software to configure the GPIO pads based on the application requirements. The pad control registers include the GPIOODR, GPIOPUR and GPIODEN registers. These registers control open-drain configuration, pull-up resistors, and digital input enable for each GPIO. 只有3种而已,即OD, 上拉使能,digital input enable 这个是对数字功能必须要使能的。 至于OD或上拉电阻可以作为什么用途,你可以google一下,很多。不过一般用上拉电阻功能比较多。 4. GPIOASEL是配置该引脚是作为GPIO功能还是外设功能而已。 Eric - ERIC |
|
|
|
|
|
|
|
guigui_7044 发表于 2018-11-16 20:08 你好!我看手册的datasheet的引脚复用部分,发现几个版本对于管脚复用的说明不是一致。一份是Cocerto F28M35x Technical Reference Manual。一份页头写着 F28M35H20B1,F28M35H20C1 F28M35H22B1,F28M35H22C1,F28M35H32B1,F28M35H32C1 F28M35H50B1,F28M35H50C1,F28M35H52B1,F28M35H52C1 SPRS742D–JUNE2011–REVISEDAUGUST2012 以对PF5_GPIO37为例,后一份比前一份多M_MIITXEN的功能。我个人理解是不是后一份是前一份的子集,所以功能多些。但在查看头文件hw_gpio.h: #define GPIO_PCTL_PF5_M 0x00F00000 // PF5 mask#define GPIO_PCTL_PF5_CCP2 0x00100000 // CCP2 on PF5#define GPIO_PCTL_PF5_MIIRXD3 0x00300000 // EMAC MIIRXD3 on PF5#define GPIO_PCTL_PF5_EPI0S15 0x00800000 // EPI0S15 on PF5#define GPIO_PCTL_PF5_SSI1TX 0x00900000 // SSI1TX on PF5发现还是没有M_MIITXEN这个功能。这是什么原因?是不是具体到某个型号芯片,还有自己的头文件?还有一个问题是:F28M35H52C1的不同版本的(一份是11年6月,一份是12年8月)对同一管脚的复用功能也并不是一致的。在设计中以那个版本的为准?是否有更新的版本?期待您的解惑! |
|
|
|
|
|
|
|
mvueyrswer 发表于 2018-11-16 20:19 timberrain, 这应该是datasheet的一个error,GPIO37没有MII_TXEN的功能。 Eric - ERIC |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
545 浏览 0 评论
1609 浏览 0 评论
2045 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1507 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1331 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1723浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:25 , Processed in 0.567200 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2482