This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] [常见问题解答] TM4C 解决的常见问题和一般信息

Guru**** 1785650 points
Other Parts Discussed in Thread: EK-TM4C123GXL, EK-TM4C1294XL, UNIFLASH
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/755561/faq-common-tm4c-solved-issues-and-general-information

主题中讨论的其他器件:EK-TM4C123GXLEK-TM4C1294XLUNIFLASH

尊敬的 TI E2E 社区:  

我们更新了之前的"诊断 TM4C 器件的常见开发问题和提示与信息"帖子、其中包含一些新信息和改进的格式。 由于此常见问题解答主题的性质、我们会将其锁定在注释中、以简化信息、因此我们可以根据需要向第一页添加更多内容。

此帖子将包含常见问题解答部分和一般信息部分。


常见问题解答

1) 1) 某些 GPIO 端口不工作

 TM4C123x 器件的受影响 GPIO 端口:

  • 端口 C0、C1、C2、C3
  • 端口 D7
  • 端口 F0

 TM4C129x 器件的受影响 GPIO 端口:

  • 端口 C0、C1、C2、C3
  • 端口 D7
  • 端口 E7

解决方案:端口引脚 C0-3、D7和 F0/E7分别是用于 JTAG、NMI 和 NMI 特定功能的锁定引脚。 要在 GPIO 或任何其他功能中使用它们、需要解锁它们并设置提交寄存器。 以下示例函数显示了如何在调用任何 GPIO 引脚配置函数之前解锁和提交引脚。

注意: 随着 TivaWare 版本2.2.0.295的发布、已向 DriverLib 添加了一个 API 来满足此需求: GPIOUnlockPin

正确使用 API 的示例包括:

GPIOUnlockPin (GPIO_PORTF_BASE、GPIO_PIN_0); 

以前用于旧版 TivaWare 的方法:

步骤1)包含头文件:

#include "inc/hw_types.h"
#include "inc/hw_gpio.h"
#include "inc/hw_memmap.h" 

步骤2)根据所需的端口和目标器件使用以下代码

TM4C123x 器件

  • 端口 C
HWREG (GPIO_PORTC_BASE_GPIO_LO_LOCK)= GPIO_LOCK_KEY;

HWREG (GPIO_PORTC_BASE_GPIO_O_CR)|=(GPIO_PIN_0|GPIO_PIN_1_1|GPIO_PIN_2|GPIO_PIN_3); 
  • 端口 D
HWREG (GPIO_PORTD_BASE_GPIO_O_LO_LOCK)= GPIO_LOCK_KEY;

HWREG (GPIO_PORTD_BASE_GPIO_O_O_CR)|= GPIO_PIN_7; 
  • 端口 F
HWREG (GPIO_PORTF_BASE_GPIO_O_LOCK)= GPIO_LOCK_KEY;

HWREG (GPIO_PORTF_BASE_GPIO_O_CR)|= GPIO_PIN_0; 

TM4C129x 器件

  • 端口 C
HWREG (GPIO_PORTC_AHB_BAS+GPIO_LO_LOCK)= GPIO_LOCK_KEY;

HWREG (GPIO_PORTC_AHB_BASE_GPIO_CR)|=(GPIO_PIN_0|GPIO_PIN_1_1|GPIO_PIN_2|GPIO_PIN_3); 
  • 端口 D
HWREG (GPIO_PORTD_AHB_BAS+GPIO_O_LOCK)= GPIO_LOCK_KEY;

HWREG (GPIO_PORTD_AHB_BASE_GPIO_O_CR)|= GPIO_PIN_7; 
  • 端口 E
HWREG (GPIO_Porte AHB_BAS+GPIO_O_LOCK)= GPIO_LOCK_KEY;

HWREG (GPIO_Porte AHB_BAS+GPIO_O_CR)|= GPIO_PIN_7; 

2) 2)仅 EK-TM4C123GXL:GPIO 的 PD0/PD1 PB6/PB7存在问题

观察到的问题: PD0、PD1、PB6和/或 PB7中的一个或多个出现意外行为。

解决方案:EK-TM4C123GXL 组装了一对连接在一起的零欧姆电阻器:PD0与 PB6、PD1与 PB7。 这些电阻器仅用于支持与 BOOSTXL-SENSHUB BoosterPack 配合使用的 Airmouse 示例。 只要当前未使用该示例、就可以移除它们以允许 GPIO 独立运行。

3) 3)代码进入 FaultISR

情况1:启用外设后、程序进入 FaultISR

解决方案:使能函数写入 xxx 外设的 SYSCTL.RCGCxxx 寄存器。 它需要5个系统时钟周期、之后外设将可寻址。 建议延迟、或者更好地从外设获取就绪状态。 以下代码执行后者:

SysCtlPeripheralEnable (SYSCTL_Periph_I2C2);
while (!(SysCtlPeripheralReady (SYSCTL_Periph_I2C2))); 

情况2:在正常程序执行期间进入 FaultISR

典型的根本原因:故障 ISR 意味着 CPU 在内部或外部(w.r.t 外设)遇到无法解决的情况。

解决方案:

1:需要检查以开始分析的寄存器是绝对地址0xE000ED28和0xE000ED38上的 NVIC_FAULTSTAT 和 NVIC_FAULTADDR 寄存器。

NVIC_FAULTSTAT 中的精确总线故障意味着在 NVIC_FAULTADDR 中捕获故障位置的地址

同样、所述的每种故障类型都有相关原因、有些故障易于诊断、有些故障难以诊断。 要诊断故障、请参阅以下涵盖不同故障类型的文档: http://www.ti.com/lit/spma043

4.如果在咨询 SPMA043后找不到解决方案、请在 E2E 上发帖、详细介绍故障类型以及尝试解决该问题所采取的步骤。

4) 4) ROM 引导加载程序在定制 TM4C129x 板上不起作用  

问题:即使在 EK-TM4C1294XL LaunchPad 上使用相同的软件进行评估、尝试调用 ROM 引导加载程序也无法正常工作

可能的根本原因:勘误项 ETH#03: http://www.ti.com/lit/spmz850

解决 方案:根据数据表、如果未使用片上 PHY、支持以太网 PHY 的器件可接受的做法是与 RBIAS 引脚无连接(NC)。 但是、当以太网 PHY 器件的闪存被擦除时、ROM 引导加载程序会启用以太网 PHY、这会导致 ROM 引导加载程序失败。 此外、如果在没有 RBIAS 电阻器的情况下使用25MHz 晶体、则 JTAG 可能无法工作。

即使应用不需要以太网 PHY、也需要 RBIAS 电阻器。 在这种情况下、可使用4.7KOhm 10%容差电阻器代替 RBIAS 引脚和 GND 之间的4.87KOhm 1%容差电阻器。

5) 5) TM4C 器件未在 Windows 7/8/10中正确枚举、或者 Windows 设备驱动程序未正确签名

根本原因:Windows 的 USB 驱动程序不是最新的

解决方案: 通过以下下载内容安装最新的 USB 驱动程序: http://www.ti.com/tool/download/SW-TM4C

注:对于具有 TivaWare 2.1.4或更低版本的 Windows 10、USB 复合设备示例项目 USB_DEV_cserial 无法正常工作。 此问题已通过 TivaWare 2.2.0.295得到解决。 此外、还提供了单端口 USB CDC 器件示例 USB_dev_cdcserial。

6) 6) JTAG 未连接到我的定制 TM4C 板上

查看资源:TM4C JTAG 指南 http://www.ti.com/lit/spma075


一般信息

1) 1)如何申请使用 TI 的 USB VID 和 PID

TI 允许在特定条件下重复使用 TI 的 USB 供应商标识号(VID)并使用 TI 分配的 USB 产品标识号(PID)。  您可以在以下链接中找到许可条款。

VID:PID 应用现在处于联机状态、可在以下链接中找到。

http://software-dl-1.ti.com/dsps/forms/vidtrackerMature.html 

请填写申请并详细阅读许可条款。

2) Windows ICDI 驱动程序下载

最新的 Windows ICDI 驱动程序可从 http://www.ti.com/tool/stellaris_icdi_drivers 下载

3) 3)可以使用 XDS100v2和 XDS200调试以及 CCS Uniflash 执行器件解锁。

有关如何执行此操作的详细信息、请参阅《TM4C JTAG 指南》 的第5.3.2节:http://www.ti.com/lit/spma075