1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
想请教下,TMS570的引脚使用问题,我使用别的芯片的时候,CAN引脚呀,串口TX RX引脚呀,都是和IO口可以复用的,不用这些功能的时候,是可以做普通IO口使用的,了解TMS570一段时间了,不知道这款芯片是不是这样的,我发现IO口只有GPIOA和GPIOB。
|
|
相关推荐
8个回答
|
|
dongyuan,
这个功能是支持的,你可以在我们的datasheet上面找到关于管脚的定义,那上面很清晰的描述了哪些管脚是专门做GPIO,哪些是只能做功能管脚,哪些是可以管脚复用,在功能管脚和GPIO上面切换。 谢谢 BR, KEN |
|
|
|
lining870815844 发表于 2018-5-25 05:33 可能是我的表述不明白,我重新确定下,我发现TMS570只有GIOA和GIOB两个通用输入/输出模块,是不是TMS570就这些IO口呢,比如TMS570BGA封装的B10、A10是CAN模块的CANRX 、CANTX引脚,这连个PIN脚是不是就做不了普通IO口来使用啊,是不是这个引脚功能就是固定的了! |
|
|
|
hjfsywer 发表于 2018-5-25 05:42 dongyuan, 答案是我们的芯片不止GIOA和GIOB两个只能做GPIO的模块。就拿你举的CAN模块来说,我们的CAN模块的发送和接收两个管脚就可以作为GPIO来使用,当然前提是你不把他们设置成CAN模块的工作模式。引脚的功能是软件可配的。 谢谢 BR, KEN |
|
|
|
lining870815844 发表于 2018-5-25 06:01 Dongyuan, TMS570中的GIOA和GIOB是两组特殊的GPIO引脚组,除了可以作为普通的GPIO使用外,还可以作为外部中断信号的输入引脚,来触发CPU中断;对于其它外设引脚,如CAN,是否可以作为GPIO需要去看对应datasheet上的定义,如下图,只要后面标示出可以作为GIO使用,即可被配置为GPIO引脚;一般来说只有很少的引脚无法被配置为GPIO,如ADC部分引脚。当需要将引脚配置为GPIO时,需要去配置对应外设的相关寄存器(具体请参考技术手册),也可以通过HALCoGen去配置。 谢谢! |
|
|
|
jiangjia12 发表于 2018-5-25 06:16 谢谢您的耐心解答,我到现在就是在这里迷惑,因为新接触这款芯片,比如我项目当中不可能所有模块都是用到,比如CAN,我可能就不用,我想把CAN的引脚IO来模拟1WIRE总线或者是SPI总线,您这个2.3.2.5表,我使用CAN1RX来模拟1wire总线,我都不怎么设置IO口的置高、置低,虽然在HALCOGEN里可以配置为IO口模式,但是不知道他的数据寄存器命是啥,请问在哪里可以知道。gioSetPort(hetPORT1, gioGetPort(hetPORT1) ^ 0x00000001);比如这句是设置HET1的PIN1为高电平,那么我如何设置CAN1RX引脚,也就是B10为高电平呢! |
|
|
|
hjfsywer 发表于 2018-5-25 06:25 dongyuan, 对于怎么将CANRX和TX两个管脚用作GPIO,首先你需要在HALCOGEN里面设置他们工作在GPIO模式下面,然后在我们的CAN.c文件里面有关于操作这两个端口的函数。他们分别是canIoSetDirection()和canIoSetPort(),用来设置这两个端口工作在GPIO模式下的输入或输出方向,以及相应的端口值设置。 你可以尝试使用这两个函数,来简单测试一下。 谢谢 BR, KEN |
|
|
|
lining870815844 发表于 2018-5-25 06:39 您好,实在是辛苦您了,我还是没搞懂TMS570的GPIO的使用,也按照您提供的信息canIoSetDirection()和canIoSetPort()查询了,CAN这个引脚可以这么设置,那SPI引脚呢,4个引脚要怎么使用它的GPIO功能呢,不明白TMS570的CAN SPI I2C UART等都是默认功能吗?要使用GPIO功能必须单独模块内函数使用吗,比如canIoSetDirection()和canIoSetPort()。和其他的ARM很不一样,STM LPC的都是PA PB PC等GPIO口,像CAN I2C SPI都是功能复用口,如果我不用这些功能复用口的话,直接操作GPIO寄存器就可以操作32个IO等,比如GPIOA【0..31】。TMS570要操作31个IO,那不是要用很多很多函数,CAN才2个IO,SPI才4个IO,是不是我的想法有问题,根本就不这么使用,请指点指点! |
|
|
|
hjfsywer 发表于 2018-5-25 06:59 Dongyuan, 这里有可能是我没有讲清楚,针对于我们芯片具有的类似于CAN SPI,I2C等具有功能复用的模块,他们可以通过设置相应的函数,让他工作在GPIO模式下面。但是这并不是说他们只能通过设置本身具有的函数来让他们工作在GPIO模式下。我们可以通过GPIO模块的相应函数: void gioSetDirection(gioPort_t *port, uint32_dir) // Set the direction of GIO pins at run time void gioSetBit(gioPort_t *port, uint32_t bit, uint32_t value) // Writes a value to the specified pin of given GIO port 来设置所有的具有GPIO功能复用的模块。 举个例子来说,如果你要设置MIBSPI工作在GPIO模式下,你可以这样设置: gioSetDirection(mibspiPORT1,0x01); // This will set the MIBSPI1_CS(0) as output gioSetBit(mibspiPORT1,0x01,1);// set the CS output 1. 其他的模块也是类似的操作。 不知道这样解释你能不能接受,如果还有问题的话,我们可以继续商量讨论。 谢谢 BR, KEN |
|
|
|
只有小组成员才能发言,加入小组>>
332 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
772 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1124 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
54浏览 29评论
96浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
248浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
196浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:05 , Processed in 0.839559 second(s), Total 64, Slave 56 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号