完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
如果您了解ti Hercules产品,采用Hercules产品做过设计,请您分享出Hercules产品的设计心得,有分享、有惊喜! 2012年10月29日 - 2012年11月30日 分享Hercules设计心得,有机会获得价值79美金的TMS570LS31x Hercules USB Stick Development Kit ! 分享要求(不符合以下要求不具备获奖资格): - 每篇主题不少于200字 - 内容要求清晰、详细写出设计心得的具体过程(例如设计中使用哪款产品碰到的问题及其解决的方法和步骤。) - 发表以跟贴形式,需为原创贴 (最好同时配上合适的图片或视频) 奖项设置: - 奖项由 TI 技术专家团队评选,取前五名为优秀分享奖。奖品为TMS570LS31x Hercules USB Stick Development Kit。 - 阳光普照奖 – TI 16G U盘 - 每个ID拥有一次获奖机会。 - TI拥有获奖最终解释权。 |
|
相关推荐
71个回答
|
|
|
|
|
|
学习Hercules 从_c_int00了解Hercules的初始化过程!
在IAR工程项目配置中 Linker/Library/Override default program entry Entery symbol 中 填入 _c_int00 在download and debug 后就直接跳到右边 _c_int00 函数 该函数与 “Initialization of the TMS570LS043x, TMS570LS033x and RM42L432 Hercules ARM Cortex-R4 Microcontrollers.pdf”文件结合起来可以了解Hercules初始化中到底做了重要工作! |
|
|
|
TI网站上发现的hercules全部27个应用
TitleAbstractTypeSize (KB)DateViews
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
没有板子,没有应用开发就不会有经验积累,没有经验积累,就没话可说,没话可说就无法争取到板子,然后还是没经验!! 支持活动,希望能获得板子!! |
|
|
|
1:系统性能
显示了如何使用高端定时器传输单元 (HTU),一个 TMS570 和 RM4x 器件上专门用于多用途 可编程定时器 协处理器 (NHET) 的本地 DMA ,通过在主存储器和 NHET 间进行传输来从主 CPU 上减轻任 务负担。 它显示了如何设置 HTU,涉及当使用 HTU 时需要考虑的 特定细节,并且列出了使用 HTU 而不是 CPU 用于数据传输的优势。 很对基于微控制器的应用需要生成脉宽调制 (PWM) 输出,显示复杂的脉冲图形,测量一个进入信号的周期 或者脉冲宽度 以及更多。 HET(还有 NHET,N2HET)是一款 Hercules MCU 上的可编程定时器协处理 器, 它有助于减少常用定时器/捕捉任务所需的主 CPU 处理量 并且还执行一些不能由传统硬件定时器完成 的任务。 然而,在大多数 应用中,CPU 仍然需要在定时器和 主存储器之间传送有很多数据,对于输入和输 出信号都是如此,从而减少了 CPU 用于其它任务的时间。 HTU 在处理这些传输时非常有用。 为了有助于 以下讨论,图 1显示了一个 TMS570 或者 RM4x 安全微控制器 架构的简化方框图。 对于适用于您器件的方 框图,请参阅器件专用数据 表。 如果 CPU 必须访问 NHET RAM 来更新值或检索数据,路径为 通过交换式中央资源到外设中央资源 (PCR)。 在很多情况下, 这些总线运行在不同的频率上,这意味着一个单周期可花费 几个周期的时间。 CPU 需进行的访问的数量越多,它们对于 总体系统性能的影响越大。 所以,为什么不使用系统 DMA 来将所有这些数据传送至定时器? 它可以 完成并且它将分配 CPU 的一些空 载时间去进行其它操作,但是 CPU 和 DMA 共用到 PCR的同一个单总线接口。 所以如果两个外设都进行访 问,那么在两个外设间将出现竞争 和仲裁,这将使得其中一个外设慢下来。 HTU 通过提供到 NHET RAM 的直接访问和一个用于直接访问 R-4 TCM RAM 的 主控端口来解决这个瓶 颈。 SCR 将通过不同主控到系统的不同受控来实现并发 处理。 在图 1中的示例中,一个 CPU 到 CRC 模 块的访问,一个到 外设的 DMA 访问,和一个到 CPU 主 RAM 的 HTU 传输,可同时进行。 其它优势 是,CPU 所需的或者需要更新的数据驻留在本地 CPU RA 中,通常计时为一个 单周期访问。 所以 CPU 能 够更快速地获得相关数据并且能够自由访问针对 DMA 的 PCR,从而增加了总体系统性能。 在边注上,在看见图 1时,用户也许会感到奇怪,为什么 HTU 没有到 NHET RAM 的直接访问。 虽然 NHET 架构允许同时方位多个不同的 RAM 位置,在同一个 时钟周期内,NHET 和 HTU 仍然 有可能在访问 同一个存储器位置时发生竞争。 通过在能够访问 NHET RAM 的不同 主控之间加入仲裁器,已经将这个情 况考虑在内。 NHET 将一直获得优先级,这样 NHET 程序执行不会被停止。 针对大多数访问情 况,Hercules 架构已经被设计用于提供非常高的 性能。 2: HTU 特性 现在已经对 HTU 如何有助于提升总体系统 性能有了一些基本的了解,是时候进一步了解 HTU 的特性以及 它们是如何工作的。 这个应用报告将不会专注于每一个单一的 HTU 特性,但是将为解决更加复杂应用情况 提供一个 好的基础。 如上所述,HTU 是一个到 NHET 的本地 DMA,并且可实现 与 NHET RAM 间的数据传输。 由于有 多达八 条请求线路 (HTUREQ[x]) 将 NHET 和 HTU 连接起来,它的工作方式与系统 DMA 相似。 某些 NHET 指令 能够在特殊 事件出现时在请求线路上生成触发事件。 请求被接至控制数据包,此数据包可编辑传输方向, 源和目的地址以及应传输多少数据。 然后根据 存储在控制数据包内的信息,一个被触发的请求 开始一个单 一或者多个与 NHET 间的数据传输 控制数据包被称为双控制数据包 (DCP),这是因为 它们提供为双向数据 传输建立两个缓冲器的功能。 例 如,HTU 能够在 CPU 工作在另外一个缓冲器上时,将数据传输到一个缓 冲器。 一旦 HTU 已经将其它缓冲器填满,它能够自动切换至另外一个并且开始用 新数据来填充此缓冲器。 |
|
|
|
在 Hercules™ ARM® MCU 上 配置 一个 CAN 节点
德州仪器 (TI) 生产的 Hercules 系列微控制器是系列 32 位 RISC 微控制器,此微控制器具有高级 ARM 架构 和一个丰富的外设集。 1:控制器局域网络(CAN) 控制器局域网是一个串行多主控通信协议, 此协议高效支持分布式实时控制,具有高级安全级别,和一个 高达 1Mbps 的通信速率。 CAN 总线是嘈杂和恶劣的环境,诸如 汽车和其他要求可靠通信的工业领域应用的理想选择。 外设支持一下 特性 • 协议: – 支持 CAN 协议 版本 2.0 部分 A.B • 时钟和 速度: – 高达 1M 位每秒的比特率 – 双时钟 源 • 消息目标/消息 对话框: – 16,32,64 或 128 消息目标(器件 专用) – 针对每个消息 目标的独立标识符掩码 – 针对消息 目标的可编程先进先出 (FIFO) 模式 • 中断: – 到中断模块的两条 中断线路 • 低功耗 支持: – 全局断电和唤醒支持 – 本地 断电和唤醒支持 • 突发传输 支持 – 通过 DMA 的数据传输 • 调试 支持: – 针对自检 运行的可编程回路模式 – 测试 期间到消息 RAM 的直接访问 – 针对调试 支持的挂起模式 • 其它: – 由一个 32 位定时器实现的总线关闭后的自动总线 打开 – CAN Rx/Tx 引脚 可配置为通用输入输出 (IO) 引脚 1.2 CAN收发器接口图 2.初始化CAN 下面常见的步骤涉及初始化 CAN。 • CAN RAM 初始化(建议在引 导期间使用) • CAN 配置 • CAN 波特率 配置 初始化 CAN 之后,邮箱需要按照 应用的要求配置。 下面的小节 详细介绍了 CAN 初始化过程。 CAN RAM 初 初始 始化 化 CAN RAM 保存 CAN 消息目标(也被成为邮箱)。 要开始 件被初始化为零。 为了初始化 CAN RAM: 1. 切换到存储器初始化模式: MINITGCR.MINITGNA = 0x 2. 设定 MSINENA。 相对于 DCAN RAM 的存储器初始化使 3. 通过检查存储器硬件初始化状态寄存器 (MINISTAT),等 4. 从存储器初始化模式中退出。 初始化 RAM 的代码示例: SYS_Ptr->MINITGCR_UN.MINITGCR_UL = 0xA; SYS_Ptr->MSINENA_UL = MEM_CH_DCANRAM; while (SYS_Ptr->MINISTAT_UL == 0); SYS_Ptr->MINITGCR_UN.MINITGCR_UL = 0x5; CAN 配置 通过软件可配置 CAN 的以下特性: • 禁用/启用总线活动时的自动唤醒。 [位: CCR.WUBA - 总线 • 启用/禁用自动总线打开定时器。 [位:CCR.ABO - 自动总线 • 启用/禁用奇偶校验 / ECC。 [位:CCR.PMD - 奇偶校验模式 • 启用/禁用全局中断线路 0 和 1。[位:CCR.IEx - 中断 使能 • 启用/禁用错误中断。 [位:CCR.EIE - 错误中断 使能] • 禁用/启用状态中断。 [位:CCR.SIE - 状态中断 使能] • 设置消息的自动重传。 [位:DAR - 禁用自动 重传] • 请求到配置寄存器的写入权限。 [位:CCR.CCE - 配置改变 • 进入调试状态前,设置消息完成。 [位:CCR.IDS] • 禁用/启用本地断电模式。 [位:CCR.PDR] • 禁用/启用 DMA 请求线路。 [位:DEx] • 启用/禁用测试模式。 [位:CCR.Test] Void CanInit (void [ /**@b Initializ @b DCAN1: */ canREG1->CTL = 0x00021443U; /* Configure CAN */ /** - Clear all pending error flags and reset current status */ canREG1->ES = ox0000031Fu; /** - Assign interrupt level for messages */ canREG1->INTMUXx[0U] = MessageBoxNo; canREG1->INTMUXx[1U] = 0x00000000U; /** - Setup auto bus on timer period */ canREG1->ABOTR = 0U; ] 配置 CAN 波特 率 通过计算位时序值并且 将这个值编辑进位时序寄存器 (BTR) 来设定 CAN 数据传输波特率。 要初始化 CAN 波特率: 1. 设定 CANCONTROL.init 位。 这将把 CAN 置于初始化 模式中。 2. 设定配置改变使能 (CANCONTROL.CCE) 位。 这将 启用到 BTR 寄存器的写入访问。 3. 将经计算的位时序 元件值写入 BTR 寄存器。 4. 清除 CANCONTROL.init 位之前的 CANCONTROL.CCE 位。 /* Baudrate configuration */ DCAN1_Ptr->CCR_UN.CCR_ST.INIT_B1 = 1 ; /* Enter Initialization Mode */ DCAN1_Ptr->CCR_UN.CCR_ST.CCE.B1 = 1 ; while(DCAN1_Ptr->CCR_UN.CCR_ST.INIT_B1 == 0) ; /* With CAN clock (CAN_CLK) of 8 MHz and BRPE = 0x00, the BRT value of 0x2301 configures the CAN for a bit rate of 500kBits/s. */ DCAN1_Ptr->CCR_UN.BTR_UL = 0x2301 ; DCAN1_Ptr->CCR_UN.CCR_ST.CCE.B1 = 0 ; DCAN1_Ptr->CCR_UN.CCR_ST.INIT_B1 = 0 ; while(DCAN1_Ptr->CCR_UN.CCR_ST.INIT_B1 == 1) ; /* Enter Normal Mode */ |
|
|
|
有关Hercules 的ADC方面的资料 ,具体可以参考附件
无缓冲多路复用比率式模数转换器 (ADC) 对于驱动不是一直明显的源阻抗有严格要求。 本应用报告解决了 源阻抗和采样率之间的权衡。 它包括在 GS30,GS40,GS60 过程节点使用 TMS470 处理器和赫丘利斯 ARM 安全 MCU(TMS470M,TMS570 和 RM4x 系列)的 10 位和 12 位的示例(又分别被称为 F05/C05,F035/C035 和 F021)。 |
|
|
|
什么是 Hercules?
Hercules 安全微处理器是基于 TI 针对汽车电子市场的 20 多年安全关键型系统专业技术、行业协作而发展成熟的硬件。该平台包含三个基于 ARM® Cortex™ 的微处理器系列(RM48x、TMS570 和 TMS470M),可提供可扩展的性能、连接、内存和安全功能。与强烈依赖于软件以获得安全功能的某些微处理器不同,Hercules 微处理器在硬件内实施安全保护,从而使性能最佳化并减少软件使用量。 产品系列 现已推出全部 Hercules 3 产品系列,具有备用存储器和已计划的外设选项。 RM4x 系列 RM48x 是 Hercules 安全微处理器系列中性能最高的产品。基于运行速度高达 220 MHz 的 ARM® Cortex™-R4F 浮点内核,它包括闪存和连接选项。为满足 IEC 61508 SIL-3 安全标准和支持要求,已在硬件中集成多个安全功能。 TMS570LS 系列 Hercules TMS570LS 安全微处理器系列让客户能轻松开发安全关键型运输应用产品。这款基于 ARM® Cortex™-R4F 的系列微处理器可提供多种性能、存储器和连接选择,已开发出满足 ISO 26262 ASIL D 和 IEC 61508 SIL-3 安全标准和符合 AEC-Q100 汽车电子规范的产品。 TMS470M 系列 TMS470M 安全微处理器系列基于广泛采用的、运行速度为 80 MHz 的 ARM® Cortex™-M3 CPU。此系列提供多种闪存和 RAM 存储器选项,并提供 CAN 和 LIN 连接及其灵活的控制外设。包括 CPU 和 RAM 自检 (BIST) 引擎、ECC 和 奇偶校验等内置安全功能。TMS470M 安全微处理器同样符合 AEC-Q100 标准。 硬件中的安全功能 RM48x 和 TMS570 双核 CPU 锁步构架在消除冗余系统要求的同时也使开发得以简化,从而降低了成本。CPU 硬件内置自检 (BIST) 无需复杂安全软件和代码大小费用即可检测到潜在缺陷。CPU 输出的硬件比较提供即时安全响应时间,而不会对其它性能产生影响。ECC 逻辑集成在 CPU 中,这会对存储器和总线起到保护作用。使用 HW BIST 可对所有 RAM 存储器进行测试,从而实现高诊断覆盖范围,且内存保护单元 (MPU) 对应用软件中的确定性错误起到帮助防范作用。 Hercules 开发套件 TI 提供了各种 Hercules 开发套件,旨在加速和简化发展过程。每个开发套件均附带文档、硬件原理图和代码示例。 所有 Hercules 开发套件均包括板载 XDS100v2、Code Composer Studio、HALCoGen 配置工具、演示和示例 Hercules 软件 通过基于硬件抽象层代码生成工具的 GUI (HALCoGen),TI 让您可轻松开始进行任何 Hercules 安全 MCU 的软件开发。 Hercules 安全 MCU Hercules MCU 具有集成安全功能、开发工具和广泛产品范围,让您轻松开始下一安全应用。 |
|
|
|
xiaoke511812 发表于 2018-6-23 11:11 一种基于TMS470M的设计心得 |
|
|
|
|
|
|
|
|
|
|
|
虽然不知道Hercules但是希望获得开发板啊!!下面是我搜到的一些关于Hercules的信息啊!!!
1.在TI在线培训上就有采用 Hercules USB Kit 启动开发工作课程 课程简介是:Hercules 是面向安全应用而设计的MCU,可广泛应用于对安全有一定要求的汽车,交通运输,医疗,工业安全等领域 2.主要应用 a. 主要应用的领域为医疗、工业及交通应用的新型Hercules安全微控制器平台,该平台专为帮助开发人员获得安全性认证而设计。 b.特点如下 ●锁步的双ARM Cortex-R4F浮点内核可提供最高水平的在线诊断; ●CPU和全部总线主设备,包括存储器保护; ●用于具有单位纠错和双位纠错(SECDED)能力的闪存及RAM的纠错码(ECC)在锁步CPU中进行评估,不会对性能造成影响; ●CPU和RAM包括用于检测潜在的不易察觉故障的内置自测(BIST)功能,而不会产生软件开销; ●对外设RAM、双通道模数转换器(ADC)和定时器、以及电压与时钟监测实施奇偶校验,以扩大诊断所覆盖的范围; ●智能型错误信号传输模块允许终端应用根据错误类型采取适当的措施; ●安全手册详细说明了如何将Hercules MCU引入安全关键型应用; ●失效模式、影响及诊断分析(FMEDA)可提供满足此类安全性标准所需的失效率信息。 Hercules RM4x MCU系列的特性与优势: ●运行频率高达220 MHz(基于锁步的双 ARM Coretex-R4F 浮点内核),可提供适合工业自动化、伺服驱动器及医疗仪器(如诊断和治疗设备)的高性能; ●支持单精度和双精度浮点数学,可执行复数数学运算; ●能达到国际电工委员会 (IEC) 61508 SIL-3安全标准的要求; ●在对于安全关键型工业自动化和医疗设备应用而言至关重要的联网能力方面,可提供以太网、CAN及USB连接; ●高达3 MB闪存和256KB RAM,可满足多功能应用。 Hercules TMS570 MCU系列的特性与优势: ●运行频率高达 180 MHz(基于锁步的双 ARM Coretex-R4F 浮点内核),可提供适合交通应用(如铁路、航空及汽车)的性能; ●支持单精度和双精度浮点数学,可执行复数数学运算; ●能达到ISO 26262 ASIL-D 和 IEC 61508 SIL-3 安全标准的要求,并符合 AEC-Q100 标准,可满足汽车应用的要求; ●可在高达 125℃ 的温度条件下工作,以适应交通应用的温度范围; ●可提供以太网、CAN 及 FlexRay 连接,以实现现有及不断发展的交通应用所需的较高带宽联网能力; ●高达 3 MB 闪存和 256KB RAM,可满足多功能应用。 Hercules TMS470M MCU 系列的特性与优势: ●运行频率高达 80MHz(基于一个 ARM Coretex-M3内核),可提供成本效益型性能; ●符合 AEC-Q100 标准,可满足汽车应用的要求,并支持IEC 61508 系统安全要求; ●本地互连网络 (LIN) 和 CAN 可支持常见的交通联网; ●320~640KB 闪存及 16~48KB RAM可满足不同的内存要求。 ●锁步的双ARM Cortex-R4F浮点内核可提供最高水平的在线诊断; ●CPU和全部总线主设备,包括存储器保护; ●用于具有单位纠错和双位纠错(SECDED)能力的闪存及RAM的纠错码(ECC)在锁步CPU中进行评估,不会对性能造成影响; ●CPU和RAM包括用于检测潜在的不易察觉故障的内置自测(BIST)功能,而不会产生软件开销; ●对外设RAM、双通道模数转换器(ADC)和定时器、以及电压与时钟监测实施奇偶校验,以扩大诊断所覆盖的范围; ●智能型错误信号传输模块允许终端应用根据错误类型采取适当的措施; ●安全手册详细说明了如何将Hercules MCU引入安全关键型应用; ●失效模式、影响及诊断分析(FMEDA)可提供满足此类安全性标准所需的失效率信息。 Hercules RM4x MCU系列的特性与优势: ●运行频率高达220 MHz(基于锁步的双 ARM Coretex-R4F 浮点内核),可提供适合工业自动化、伺服驱动器及医疗仪器(如诊断和治疗设备)的高性能; ●支持单精度和双精度浮点数学,可执行复数数学运算; ●能达到国际电工委员会 (IEC) 61508 SIL-3安全标准的要求; ●在对于安全关键型工业自动化和医疗设备应用而言至关重要的联网能力方面,可提供以太网、CAN及USB连接; ●高达3 MB闪存和256KB RAM,可满足多功能应用。 Hercules TMS570 MCU系列的特性与优势: ●运行频率高达 180 MHz(基于锁步的双 ARM Coretex-R4F 浮点内核),可提供适合交通应用(如铁路、航空及汽车)的性能; ●支持单精度和双精度浮点数学,可执行复数数学运算; ●能达到ISO 26262 ASIL-D 和 IEC 61508 SIL-3 安全标准的要求,并符合 AEC-Q100 标准,可满足汽车应用的要求; ●可在高达 125℃ 的温度条件下工作,以适应交通应用的温度范围; ●可提供以太网、CAN 及 FlexRay 连接,以实现现有及不断发展的交通应用所需的较高带宽联网能力; ●高达 3 MB 闪存和 256KB RAM,可满足多功能应用。 Hercules TMS470M MCU 系列的特性与优势: ●运行频率高达 80MHz(基于一个 ARM Coretex-M3内核),可提供成本效益型性能; ●符合 AEC-Q100 标准,可满足汽车应用的要求,并支持IEC 61508 系统安全要求; ●本地互连网络 (LIN) 和 CAN 可支持常见的交通联网; ●320~640KB 闪存及 16~48KB RAM可满足不同的内存要求。 3.【TI博客大赛】HerCules系列MCU学习杂谈 Hercules入门知识 什么是 Hercules? Hercules 安全微处理器是基于 TI 针对汽车电子市场的 20 多年安全关键型系统专业技术、行业协作而发展成熟的硬件。该平台包含三个基于 ARM® Cortex™ 的微处理器系列(RM48x、TMS570 和 TMS470M),可提供可扩展的性能、连接、内存和安全功能。与强烈依赖于软件以获得安全功能的某些微处理器不同,Hercules 微处理器在硬件内实施安全保护,从而使性能最佳化并减少软件使用量。 产品系列 RM4x 是 Hercules 安全微处理器系列中性能最高的产品。基于运行速度高达 220 MHz 的 ARM® Cortex™-R4F 浮点内核,它包括闪存和连接选项。为满足 IEC 61508 SIL-3 安全标准和支持要求,已在硬件中集成多个安全功能。 TMS470M 安全微处理器系列基于广泛采用的、运行速度为 80 MHz 的 ARM® Cortex™-M3 CPU。此系列提供多种闪存和 RAM 存储器选项,并提供 CAN 和 LIN 连接及其灵活的控制外设。包括 CPU 和 RAM 自检 (BIST) 引擎、ECC 和 奇偶校验等内置安全功能。TMS470M 安全微处理器同样符合 AEC-Q100 标准。 TMS570LS 安全微处理器系列让客户能轻松开发安全关键型运输应用产品。这款基于 ARM® Cortex™-R4F 的系列微处理器可提供多种性能、存储器和连接选择,已开发出满足 ISO 26262 ASIL D 和 IEC 61508 SIL-3 安全标准和符合 AEC-Q100 汽车电子规范的产品。 硬件中的安全功能 RM48x 和 TMS570 双核 CPU 锁步构架在消除冗余系统要求的同时也使开发得以简化,从而降低了成本。CPU 硬件内置自检 (BIST) 无需复杂安全软件和代码大小费用即可检测到潜在缺陷。CPU 输出的硬件比较提供即时安全响应时间,而不会对其它性能产生影响。ECC 逻辑集成在 CPU 中,这会对存储器和总线起到保护作用。使用 HW BIST 可对所有 RAM 存储器进行测试,从而实现高诊断覆盖范围,且内存保护单元 (MPU) 对应用软件中的确定性错误起到帮助防范作用。 Hercules 之GIO学习入门 GIO 模块提供数字输入捕捉和数字输入/输出。在这个块中没有处理功 能。GIO 通常用于静态的或者很少发生改变的输出,诸如收发器使能信 号、报警光等。GIO 也可被用于提供外部中断输入功能。GIO 的大体框 图如下:(以TMS570系列为例) GIO 主要特点 GIOA 和GIOB的每个端口都包含8个双向可位操作的IO引脚 GIOA 具有外部中断触发功能 可编程的单边沿触发或者双边沿触发;可编程的边沿极性;可编程的中断优先级;管脚的配置问题;配置数据传输方向;数据输入或者输出配置;数据设置或者清零设置;漏极开路配置;上拉下拉配置。以上的配置都是通过相关的寄存器实现,配置寄存器如下 相关寄存器的介绍 GIOPSL 选择上拉或者下拉操作的寄存器 GIOPULDIS 失能管脚上下拉操作 GIOPDR 控制管脚的漏极开路配置 GIODOUT 配置输出管脚的电平 GIODIN 从外部管脚读到的数据信息 GIODIR 控制管脚的方向 Hercules 系列的ADC学习 Hercules 器件系列产品执行两个带有共享通道的用于快速转换的模块 (乒乓操作方法)。使用双ADC 转换器来执行两个通道的系统也许能够在应用中请求故障容错。 Hercules 系列的ADC 不同于我们普通CPU 里面的ADC,称为MibADC,ADC的结构也是SAR,分辨率是12位。有两个ADC 核的CPU 有24个通道的ADC 例如MS570LS20216 。24个通道的组成是每个ADC 核自己拥有单独的16个通道的ADC,还有8个通道 是两个ADC内核共享的。 Hercules 的嵌套中断学习理解 |
|
|
|
学习Hercules TMS570LS硬件设计入门
|
|
|
|
|
|
|
|
Hercules入门知识
什么是 Hercules? Hercules 安全微处理器是基于 TI 针对汽车电子市场的 20 多年安全关键型系统专业技术、行业协作而发展成熟的硬件。该平台包含三个基于 ARM® Cortex™ 的微处理器系列(RM48x、TMS570 和 TMS470M),可提供可扩展的性能、连接、内存和安全功能。与强烈依赖于软件以获得安全功能的某些微处理器不同,Hercules 微处理器在硬件内实施安全保护,从而使性能最佳化并减少软件使用量。 产品系列 RM4x 是 Hercules 安全微处理器系列中性能最高的产品。基于运行速度高达 220 MHz 的 ARM® Cortex™-R4F 浮点内核,它包括闪存和连接选项。为满足 IEC 61508 SIL-3 安全标准和支持要求,已在硬件中集成多个安全功能。 TMS470M 安全微处理器系列基于广泛采用的、运行速度为 80 MHz 的 ARM® Cortex™-M3 CPU。此系列提供多种闪存和 RAM 存储器选项,并提供 CAN 和 LIN 连接及其灵活的控制外设。包括 CPU 和 RAM 自检 (BIST) 引擎、ECC 和 奇偶校验等内置安全功能。TMS470M 安全微处理器同样符合 AEC-Q100 标准。 TMS570LS 安全微处理器系列让客户能轻松开发安全关键型运输应用产品。这款基于 ARM® Cortex™-R4F 的系列微处理器可提供多种性能、存储器和连接选择,已开发出满足 ISO 26262 ASIL D 和 IEC 61508 SIL-3 安全标准和符合 AEC-Q100 汽车电子规范的产品。 硬件中的安全功能 RM48x 和 TMS570 双核 CPU 锁步构架在消除冗余系统要求的同时也使开发得以简化,从而降低了成本。CPU 硬件内置自检 (BIST) 无需复杂安全软件和代码大小费用即可检测到潜在缺陷。CPU 输出的硬件比较提供即时安全响应时间,而不会对其它性能产生影响。ECC 逻辑集成在 CPU 中,这会对存储器和总线起到保护作用。使用 HW BIST 可对所有 RAM 存储器进行测试,从而实现高诊断覆盖范围,且内存保护单元 (MPU) 对应用软件中的确定性错误起到帮助防范作用。 Hercules 之GIO学习入门 GIO 模块提供数字输入捕捉和数字输入/输出。在这个块中没有处理功 能。GIO 通常用于静态的或者很少发生改变的输出,诸如收发器使能信 号、报警光等。GIO 也可被用于提供外部中断输入功能。GIO 的大体框 图如下:(以TMS570系列为例) GIO 主要特点 GIOA 和GIOB的每个端口都包含8个双向可位操作的IO引脚 GIOA 具有外部中断触发功能 可编程的单边沿触发或者双边沿触发;可编程的边沿极性;可编程的中断优先级;管脚的配置问题;配置数据传输方向;数据输入或者输出配置;数据设置或者清零设置;漏极开路配置;上拉下拉配置。以上的配置都是通过相关的寄存器实现,配置寄存器如下 相关寄存器的介绍 GIOPSL 选择上拉或者下拉操作的寄存器 GIOPULDIS 失能管脚上下拉操作 GIOPDR 控制管脚的漏极开路配置 GIODOUT 配置输出管脚的电平 GIODIN 从外部管脚读到的数据信息 GIODIR 控制管脚的方向 Hercules 系列的ADC学习 Hercules 器件系列产品执行两个带有共享通道的用于快速转换的模块 (乒乓操作方法)。使用双ADC 转换器来执行两个通道的系统也许能够在应用中请求故障容错。 Hercules 系列的ADC 不同于我们普通CPU 里面的ADC,称为MibADC,ADC的结构也是SAR,分辨率是12位。有两个ADC 核的CPU 有24个通道的ADC 例如MS570LS20216 。24个通道的组成是每个ADC 核自己拥有单独的16个通道的ADC,还有8个通道 是两个ADC内核共享的。 Hercules 的嵌套中断学习理解 |
|
|
|
对于Hercules, 算是TI最近推广的一款控制器吧,其最突出的特点就是安全性特别高,从它最初应用在汽车行业就可见该系统对安全性的要求。
我学习Hercules 得益于TI 的合作网站 EEworld 推出的 Hercules 教学视频和资料分享活动,看到楼上Kevin Lee1 把eeworld 论坛里面几乎所有关于Hercules的精华分享都粘贴过来了,又借此学习了一遍,分享是好的,著名出处就更好了,毕竟不是原创的,在eeworld上面早就广为传阅了。 闲言少叙,说说自己的Hercules 学习例程吧,说实话,学习步骤都是参考了那些优秀的分享。 没有开发板,只能写写程序,熟悉一下开发过程,进行简单的仿真调试。 首先,开发环境:必备的是CCS 编译环境和 HalCoGen辅助工具。用过 430 Launchpad的人应该对图形化编程软件不陌生, Grace 的界面编程简化了430的初始化,让我们不用再去记那些寄存器名称,可以把更多精力放在程序和算法上面。HalCoGen 使用也很简单,图形化的工具为Hercules编程提供了很大的便利,关于HalCoGen的安装和使用,推荐两篇文章 http://bbs.eeworld.com.cn/thread-359687-1-1.html http://bbs.eeworld.com.cn/thread-357251-1-2.html 以GPIO为例,通过打钩和连线,可以很方便的实现程序的编写,转化成代码之后就可以使用了。 附部分程序: #if 1 #include "gio.h" /** @fn void gioInit(void) * @brief Initializes the GIO Driver * * This function initializes the GIO module and set the GIO ports * to the inital values. */ void gioInit(void) [ /** bring GIO module out of reset */ gioREG->GCR0 = 1; gioREG->INTENACLR = 0xFF; gioREG->LVLCLR = 0xFF; /** @b initalise @b Port @b A */ /** - Port A output values */ gioPORTA->DOUT = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ /** - Port A direction */ gioPORTA->DIR = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ /** - Port A open drain enable */ gioPORTA->PDR = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ /** - Port A pullup / pulldown selection */ gioPORTA->PSL = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ /** - Port A pullup / pulldown enable*/ gioPORTA->PULDIS = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ #if 0 /** @b initalise @b Port @b B */ /** @b initalise @b interrupts */ /** - interrupt polarity */ gioREG->POL = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ /** - interrupt level */ gioREG->LVLSET = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ /** - clear all pending interrupts */ gioREG->FLG = 0xFF; /** - enable interrupts */ gioREG->INTENASET = 0 /* Bit 0 */ | (0 << 1) /* Bit 1 */ | (0 << 2) /* Bit 2 */ | (0 << 3) /* Bit 3 */ | (0 << 4) /* Bit 4 */ | (0 << 5) /* Bit 5 */ | (0 << 6) /* Bit 6 */ | (0 << 7); /* Bit 7 */ ] /** @fn void gioSetDirection(gioPORT_t *port, unsigned dir) * @brief Set Port Direction * @param[in] port pointer to GIO port: * - gioPORTA: PortA pointer * - gioPORTB: PortB pointer * @param[in] dir value to write to DIR register * * Set the direction of GIO pins at runtime. */ void gioSetDirection(gioPORT_t *port, unsigned dir) [ port->DIR = dir; ] #pragma INTERRUPT(gioHighLevelInterrupt, IRQ) void gioHighLevelInterrupt(void) [ int offset = gioREG->OFFSET0 - 1U; if (offset >= 0) [ gioNotification(offset); ] ] /** @fn void gioLowLevelInterrupt(void) * @brief GIO Interrupt Handler * * Low Level Interrupt handler for GIO pin interrupt * */ #pragma INTERRUPT(gioLowLevelInterrupt, IRQ) void gioLowLevelInterrupt(void) [ int offset = gioREG->OFFSET1 - 1U; if (offset >= 0) [ gioNotification(offset); ] ] #endif 通过HalCoGen的配合,可以大大降低Hercules开发难度,更容易上手。 |
|
|
|
只有小组成员才能发言,加入小组>>
340 浏览 1 评论
533 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
777 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
653 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1132 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
63浏览 29评论
162浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
253浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
203浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
60浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 23:36 , Processed in 1.177621 second(s), Total 85, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号