使用JTAG对C8051Fxxx SoC芯片进行编程
需积分: 50 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芯片编程的方法不仅简化了编程过程,还降低了制作低成本编程器的难度。这种方法对于开发者和制造商来说都极具价值,因为它提供了灵活性和便利性,使得在没有专用设备的情况下也能高效地对芯片进行编程。
2012-01-08 上传
2011-08-15 上传
2019-10-06 上传
2023-08-02 上传
2023-06-23 上传
2023-06-02 上传
2023-07-13 上传
2023-06-09 上传
2023-06-10 上传
DDup_2011
- 粉丝: 1
- 资源: 8
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析