使用JTAG对C8051Fxxx SoC芯片进行编程

需积分: 50 1 下载量 78 浏览量 更新于2024-07-29 收藏 898KB PDF 举报
本文主要介绍了如何通过JTAG接口对C8051F系列SoC芯片进行编程,特别是提到的C8051F000到C8051F012型号的芯片。这种方法允许用户使用并口线等简单设备进行编程,而无需专门的编程器,大大降低了成本。 ### JTAG接口基础知识 JTAG(Joint Test Action Group)接口是一种通用的边界扫描测试协议,用于芯片的测试和调试。在C8051Fxxx芯片中,JTAG接口包含四个关键引脚:TCK(Test Clock),TMS(Test Mode Select),TDI(Test Data Input)和TDO(Test Data Output)。这些引脚分别负责时钟信号、模式选择、数据输入和数据输出。此外,还有TAP(Test Access Port)状态机,它控制着JTAG接口的操作流程。 ### TAP状态机 TAP状态机是JTAG的核心部分,它执行各种指令,如TAP复位、指令寄存器扫描和数据寄存器扫描。这些操作对于在JTAG链路中进行正确的通信至关重要。 ### 通过JTAG进行间接寄存器操作 1. **读间接寄存器**:允许用户读取特定的片上寄存器以获取信息。 2. **写间接寄存器**:向片上寄存器写入数据,实现配置或控制功能。 3. **查询Busy标志位**:在读写操作完成后,通过检查Busy标志位来确认操作是否完成,这是确保编程过程中不出现数据错误的关键步骤。 ### FLASH编程操作 1. **读一个FLASH字节**:从芯片的内部FLASH存储器中读取数据。 2. **写一个FLASH字节**:将数据写入指定的FLASH地址。 3. **擦除一个FLASH页**:清除指定页的全部数据,通常在准备写入新数据前执行。 4. **擦除整个FLASH**:清空整个FLASH存储器,通常在进行系统级更新或初始化时使用。 ### 关键寄存器 - **FLASHCON**:控制FLASH编程操作的配置寄存器。 - **FLASHDAT**:用于传输要写入或读出的数据。 - **FLASHADR**:设置要访问的FLASH内存地址。 - **FLASHSCL**:可能涉及与编程相关的控制逻辑。 ### 应用笔记AN005提供的内容 此应用笔记提供了C8051F系列芯片通过JTAG进行FLASH编程所需的详细信息,并提供了示例源代码。它遵循IEEE1149.1-1990标准,这是一个关于边界扫描测试的国际标准,可以从电气与电子工程师协会(IEEE)获取更多相关信息。 ### 结论 通过JTAG对SoC C8051Fxxx芯片编程的方法不仅简化了编程过程,还降低了制作低成本编程器的难度。这种方法对于开发者和制造商来说都极具价值,因为它提供了灵活性和便利性,使得在没有专用设备的情况下也能高效地对芯片进行编程。