TI中文支持网
TI专业的中文技术问题咨询交流网站

在应用TM4C1230时,将PC0、PC1用作GPIO,出现程序运行错误

你好:

 目前在研制一款新型3D打印机时,用TM4C123X MUC作为主控芯片,在应用过程遇到一些问题:

  1. 将芯片的51(PC1)、52(PC0)引脚用做普通IO口(PC0、PC1为JTAG的TCK、TMS的复用口),由于芯片资源不够,所以将JTAG引脚用做GPIO,PC0、PC1设置为输入,采用查询方式;
  2. 在调试过程中,当PC0和PC1反复改变状态后,出现程序运行错误的情况,表现为其他IO口输出状态不正确,其他输入IO检测不到状态改变,但是PC0和PC1可以检测到端口状态改变,在此情况下芯片的USB通信可用,上位机可以收到USB的信息;
  3. IO输入采用查询方式,用定时器实现循环定时查询,USB采用中断接收,接收到有效数据后发送的方式,发送在主循环中进行,可以判断程序主循环在运行;
  4. 程序中已将GPIOLOCK寄存器设置为0X4C4F434B,GPIOCR寄存器已设置,GPIO的配置程序是TI的官方例程;
  5. 在程序中设置系统变量可以看到程序运行到了不应被调用的函数里,如何进入的不清楚,系统USB通信正常,中断正常,采用3.3V供电;
  6. 在PC0和PC1输入某个特殊时序后,程序可以恢复正常,其他IO口的状态也正常,但是可以判断不是程序复位重启,因为USB一直可以通信,且通信连续没有重连过;
  7. 如果将PC0、PC1其中一个用替他IO代替,就不会出现上述现象;

  请帮忙分析造成上述现象的原因和解决办法,非常感谢!!

xyz549040622:

你解锁PC0、PC1的代码是什么,贴上来看看,参考下面这段代码试试
HWREG(GPIO_PORTC_BASE+GPIO_O_LOCK) = GPIO_LOCK_KEY;

HWREG(GPIO_PORTC_BASE+GPIO_O_CR) |= (GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);

Susan Yang:

请问您所描述的“将芯片的51(PC1)、52(PC0)引脚用做普通IO口”具体是如何实现的?

51和52脚在上电时的默认状态时JTAG的TCK、TMS。另外您在使用其普通IO后还需要进行调试吗?

在www.ti.com/…/tm4c1230c3pm.pdf 的9.2.1 数据控制给出了一个注意事项:

(建议您对照下英文版www.ti.com/…/spms329e.pdf)

用户可以建立一个软件序列来阻止调试器连接到 TM4C1230C3PM 微控制器。如果将程序代码加载到 Flash 中会立即将 JTAG 管脚变成其 GPIO 功能,那么在 JTAG 管脚功能切换之前,调试器将没有足够的时间去连接和终止控制器。结果调试器可能被锁定在该部分外。通过使用一个基于外部或软件的触发器来恢复JTAG功能的软件程序可以避免这个问题。如果未实施软件例程,且器件锁定在此部分以外,则可通过 TM4C1230C3PM Flash 编程器的“解锁”功能解决此问题。有关详细信息,请参阅 TI 网站的 LMFLASHPROGRAMMER 部分。

Hank Wang:

回复 xyz549040622:

解锁代码是一样的,HWREG(GPIO_PORTC_BASE+GPIO_O_LOCK) = GPIO_LOCK_KEY;完全一样

Hank Wang:

回复 Susan Yang:

1.‘’将芯片的51(PC1)、52(PC0)引脚用做普通IO口‘’就是设置相应的寄存器,将其复用成IO功能,
2.是系统的调试过程,相当于整机的工作过程,不是程序调试;
谢谢

Susan Yang:

回复 Hank Wang:

请问您现在具体使用的是哪款芯片呢?您可以先用TI的pinmux工具来操作一下 dev.ti.com/…/app.html

另外在TivaWare内有相关的例程,您可以参考一下

C:\ti\TivaWare_C_Series\examples\boards\ek-tm4c123gxl\gpio_jtag

需要注意的是,一旦应用程序中把JTAG配置为GPIO并执行,仿真器将无法通过JTAG口连接。可以通过解锁芯片来进行还原。

Hank Wang:

回复 Susan Yang:

TM4C1230D5PM,这个工具的作用是什么?谢谢!

Susan Yang:

回复 Hank Wang:

您可以看一下,一个网页版的pinmux复用小工具,另外请您参考下例程

Hank Wang:

回复 Susan Yang:

你好,那个pinmux工具的连接打不开,谢谢

Susan Yang:

回复 Hank Wang:

什么报错呢?

从下面这个链接进去试试

https://dev.ti.com/

Hank Wang:

回复 Susan Yang:

连接超时,这个也一样

赞(0)
未经允许不得转载:TI中文支持网 » 在应用TM4C1230时,将PC0、PC1用作GPIO,出现程序运行错误
分享到: 更多 (0)