0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
EVAL-ADUC7122QSPZ

EVAL-ADUC7122QSPZ

  • 厂商:

    AD(亚德诺)

  • 封装:

    -

  • 描述:

    BOARD EVALUATION FOR ADUC7122

  • 数据手册
  • 价格&库存
EVAL-ADUC7122QSPZ 数据手册
精密模拟微控制器, 12位模拟I/O,ARM7TDMI MCU ADuC7122 产品特性 软件触发在线重新编程能力 片内外设 UART、2个I2C和SPI串行I/O端口 32引脚GPIO端口 4个通用定时器 唤醒和看门狗定时器(WDT) 电源监控器 用于FIQ和IRQ的矢量中断控制器 每类中断支持8种优先级 边沿或电平中断外部引脚输入 电源 额定工作电压:3 V 主动模式:11 mA(5 MHz),40 mA(41.78 MHz) 封装和温度范围 7 mm x 7 mm 108引脚BGA 额定工作温度范围:−10°C至+95°C 工具 低成本QuickStart开发系统 完全第三方支持 模拟I/O 13个外部通道、12位、1 MSPS ADC 2个具有可编程增益PGA(1至5)输入范围的差分通道 IOVDD电源监控通道 片内温度传感器 11路通用输入 全差分模式和单端模式 模拟输入范围:0 V至VREF 12个12位电压输出DAC 片内基准电压源:1.2 V/2.5 V 配合外部电路使用的缓冲输出基准电压源 微控制器 16位/32位RISC架构ARM7TDMI内核 JTAG端口支持代码下载和调试 时钟选项 修正的片内振荡器(±3%) 外部时钟晶体 可达41.78 MHz的外部时钟源 具有可编程分频器的41.78 MHz锁相环 存储器 126 kB Flash/EE存储器,8 kB SRAM 在线下载,基于JTAG调试 应用 光网络、工业控制和自动化系统 智能传感器和精密仪器 BUF BUF BUF BUF BUF BUF DAC DAC DAC DAC DAC DAC6 DAC7 1MSPS 12-BIT SAR ADC DAC BUF DAC9 DAC BUF DAC10 DAC BUF DAC11 PLA OSC PLL POR PWM WAKE-UP TIMER 3× GP TIMERS 8k SRAM (2k × 32-BIT) LDO WD TIMER 126k FLASH (63k × 16-BIT) ARM7 TDMI VIC TEMPERATURE IOVDD MON SENSOR JTAG GPIO CONTROL SPI IOVDD UART 12C × 2 BUF VREF_1.2 VREF_2.5 P0.0 TO P0.7 P1.0 TO P1.7 P2.0 TO P2.7 P3.0 TO P3.7 IOGND XTALI XTALO RST TDO TDI TCK TMS TRST 08755-001 ADuC7122 INTERNAL REFERENCE DAC8 BUF DAC5 DAC ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 ADC9 ADC10 DAC4 DAC PGA DAC3 BUF PADC1 DAC2 DAC PGA DAC1 BUF PADC0 DAC0 DAC 功能框图 AVDD 3.3V AGND 图1. Rev. A Document Feedback Information furnished by Analog Devices is believed to be accurate and reliable. However, no responsibility is assumed by Analog Devices for its use, nor for any infringements of patents or other rights of third parties that may result from its use. Specifications subject to change without notice. No license is granted by implication or otherwise under any patent or patent rights of Analog Devices. Trademarks and registered trademarks are the property of their respective owners. One Technology Way, P.O. Box 9106, Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 ©2011–2014 Analog Devices, Inc. All rights reserved. Technical Support www.analog.com ADI中文版数据手册是英文版数据手册的译文,敬请谅解翻译中可能存在的语言组织或翻译错误,ADI不对翻译中存在的差异或由此产生的错误负责。如需确认任何词语的准确性,请参考ADI提供 的最新英文版数据手册。 ADuC7122 目录 产品特性 ......................................................................................... 1 应用.................................................................................................. 1 功能框图 ......................................................................................... 1 修订历史 ......................................................................................... 3 概述.................................................................................................. 4 技术规格 ......................................................................................... 5 时序规格.................................................................................... 9 绝对最大额定值.......................................................................... 14 ESD警告................................................................................... 14 引脚配置和功能描述 ................................................................. 15 术语................................................................................................ 19 ADC规格 ................................................................................. 19 DAC技术规格......................................................................... 19 ARM7TDMI内核概览................................................................ 20 Thumb模式(T) ........................................................................ 20 长乘(M).................................................................................... 20 EmbeddedICE (I).................................................................... 20 异常 .......................................................................................... 20 ARM寄存器 ............................................................................ 20 中断延迟时间 ......................................................................... 21 存储器结构................................................................................... 22 Flash/EE存储器 ...................................................................... 22 SRAM........................................................................................ 22 存储器映射寄存器 ................................................................ 22 完整MMR列表 ....................................................................... 23 ADC电路概览.............................................................................. 27 ADC传递函数 ........................................................................ 28 典型操作.................................................................................. 29 温度传感器 ............................................................................. 30 转换器操作 ............................................................................. 33 驱动模拟输入 ......................................................................... 34 带隙基准电压源..................................................................... 34 电源监控器 ............................................................................. 35 非易失性Flash/EE存储器 .......................................................... 36 Flash/EE存储器概述.............................................................. 36 Flash/EE存储器 ...................................................................... 36 Flash/EE存储器安全性 ......................................................... 37 Flash/EE控制接口 .................................................................. 37 SRAM和FLASH/EE执行时间 ............................................. 40 复位和重映射 ......................................................................... 41 其他模拟外设 .............................................................................. 43 DAC .......................................................................................... 43 LDO(低压差稳压器) ............................................................. 45 振荡器和锁相环—电源控制 .................................................... 46 外部晶振选择 ......................................................................... 46 外部时钟选择 ......................................................................... 46 电源控制系统 ......................................................................... 47 寄存器和密钥 ......................................................................... 48 数字外设 ....................................................................................... 49 PWM概述................................................................................ 49 PWM转换开始控制 .............................................................. 51 通用I/O.......................................................................................... 52 UART串行接口............................................................................ 54 波特率生成 ............................................................................. 54 UART寄存器定义 .................................................................. 54 I2C................................................................................................... 59 串行时钟生成 ......................................................................... 59 I2C总线地址 ............................................................................ 59 I2C寄存器 ................................................................................ 60 I2C公共寄存器........................................................................ 68 串行外设接口 .............................................................................. 69 SPIMISO(主机输入,从机输出)引脚 ............................... 69 SPIMOSI(主机输出,从机输入)引脚 ............................... 69 SPICLK(串行时钟输入/输出)引脚..................................... 69 SPI片选(SPICS输入)引脚 ..................................................... 69 SPI功能的外部引脚配置 ..................................................... 69 SPI寄存器 ................................................................................ 70 可编程逻辑阵列(PLA)............................................................... 73 中断系统 ....................................................................................... 76 IRQ............................................................................................ 77 快速中断请求(FIQ)............................................................... 77 定时器 ...................................................................................... 83 时:分:秒:1/128格式 ............................................................... 83 定时器0—使用寿命定时器 ................................................. 84 定时器1—通用定时器 .......................................................... 85 定时器2—唤醒定时器 .......................................................... 87 定时器3—看门狗定时器...................................................... 89 定时器4—通用定时器 .......................................................... 91 硬件设计考虑 ............................................................................. 93 电源 .......................................................................................... 93 Rev. A | Page 2 of 96 ADuC7122 接地和电路板布局建议 ....................................................... 94 时钟振荡器 ............................................................................. 95 外形尺寸 ....................................................................................... 96 订购指南.................................................................................. 96 修订历史 2014年11月 — 修订版0至修订版A 表1中的精度从±5 mV更改为±30 mV..................................... 6 更改“Flash/EE存储器”部分....................................................... 22 更改“PGA和输入缓冲器”部分................................................. 28 更改“Flash/EE存储器”部分和 “串行下载(在线编程)”部分 ...................................................... 36 更改“Flash/EE存储器安全”部分.............................................. 37 更改表57和表58 .......................................................................... 40 更改I2C部分 ................................................................................. 59 更改表101 ..................................................................................... 60 更改表108 ..................................................................................... 64 更改表109 ..................................................................................... 65 更改表111 ..................................................................................... 70 增加“时:分:秒:1/128格式”部分................................................. 83 更改表168 ..................................................................................... 89 增加“硬件设计考虑”部分 ......................................................... 93 更改“订购指南”部分.................................................................. 96 2010年4月—修订版0:初始版 Rev. A | Page 3 of 96 ADuC7122 概述 ADuC7122是一款完全集成的1 MSPS、12位数据采集系统, 在单芯片内集成高性能多通道ADC、12个电压输出DAC、 16位/32位MCU和Flash/EE存储器。 ADuC7122内置一个高级中断控制器。该矢量中断控制器 (VIC)可以为每个中断分配一个优先级。它还支持嵌套中 断,每个IRQ和FIQ最多允许8级嵌套。如果将IRQ和FIQ中 断源合并,则可以支持总计16级嵌套中断。 ADC具有多达13路输入。其中4路输入可以配置为差分 对,其前端的可编程增益放大器提供1至5的增益。ADC可 以在单端或差分输入模式下工作。ADC输入电压范围为0 V 至VREF。低漂移带隙基准电压源、温度传感器和电源电压 比较器完善了ADC的外设设置。 片内出厂固件支持通过I2C串行接口端口进行在线下载,同 时也支持通过JTAG接口进行非介入仿真。这些特性都集成 在支持此MicroConverter®系列的低成本QuickStart™开发系 统中。该器件内置一个提供6路输出信号的16位PWM。 通过编程可将DAC输出范围设置为两种电压范围之一。 DAC输出具有一个增强特性,能够在看门狗或软件复位时 序中保持其输出电压。 为便于通信,该器件内置2个I2C通道,可以将这些通道独 立配置为主模式或从模式。另外还提供了支持主从两种模 式的SPI接口。 该器件通过片内振荡器和锁相环(PLL)产生41.78 MHz的内部 高频时钟信号。该时钟信号通过一个可编程时钟分频器进 行中继,在其中产生MCU内核时钟工作频率。微控制器内 核为ARM7TDMI®,它是一个16位/32位RISC机器,峰值性 能最高可达41 MIPS。片内集成有8 kB SRAM和126 kB非易 失性Flash/EE存储器。ARM7TDMI内核将所有存储器和寄 存器视为一个线性阵列。 ADuC7122工作电压为3.0 V至3.6 V,额定温度范围为−10°C 至+95°C,采用108引脚BGA封装。 Rev. A | Page 4 of 96 ADuC7122 技术规格 除非另有说明,AVDD = IOVDD = 3.0 V至3.6 V,VREF = 2.5 V内部基准电压,fCORE = 41.78 MHz,TA = −10°C至+95°C。 表1. 参数 ADC通道规格 ADC上电时间 直流精度1, 2 分辨率 积分非线性 最小值 典型值 满量程输入范围 PADC0P的输入漏电流4 分辨率 增益误差4 增益漂移4 失调4 失调漂移4 PADC0P顺从电压范围 PADC1输入 满量程输入范围 PADC1P的输入漏电流4 分辨率 增益误差4 增益漂移4 失调4 失调漂移4 PADC1P顺从电压范围 单位 ±0.6 ±2 位 LSB ±0.5 1 +1.4/−0.99 LSB LSB ±2 ±1 ±2 ±1 ±5 LSB LSB LSB LSB 5 12 微分非线性3, 4 直流代码分布 端点误差5 失调误差 失调误差匹配 增益误差 增益误差匹配 动态性能 信噪比(SNR) 总谐波失真(THD) 峰值谐波或杂散噪声 通道间串扰 模拟输入 输入电压范围 差模 单端模式 单端模式 漏电流 输入电容 输入电容 PADC0输入 最大值 ±5 69 −78 −75 −80 dB dB dB dB VCM 6 ± VREF/2 0至VREF AVDD − 1.5 0.15 ±0.2 20 20 20 0.15 1000 2 11 3 30 0.1 1 50 6 60 AVDD − 1.2 V V V µA pF pF µA nA 位 % ppm/°C nA pA/°C V 测试条件/注释 8采集时钟和fADC/2 2.5 V内部基准电压,PADC0/PADC1通道未经 生产测试 2.5 V内部基准电压,保证单调性 ADC输入为直流电压 内部无缓冲通道 fIN = 10 kHz正弦波,fSAMPLE = 1 MSPS, 内部无缓冲通道 包括失真和噪声成分 相邻通道测量 参见表35和表36 缓冲旁路 缓冲使能 ADC采样期间,缓冲旁路 ADC采样期间,缓冲使能 28.3 kΩ电阻,PGA增益 = 3,采集时间 = 6 μs, 伪差分模式 0.1%精度、5 ppm外部电阻用于将电流转换为 电压 不包括PGA失调 53.5 kΩ电阻,PGA增益 = 3,采集时间 = 6 μs, 伪差分模式 10.6 0.15 700 2 11 3 30 0.1 1 50 6 60 AVDD − 1.2 µA nA 位 % ppm/°C nA pA/°C V Rev. A | Page 5 of 96 0.1%精度、5 ppm外部电阻用于将电流转换为 电压 不包括PGA失调 ADuC7122 参数 片内基准电压 输出电压 精度7 基准电压温度系数4 电源抑制比 输出阻抗 内部VREF上电时间 外部基准输入 输入电压范围 BUF_VREF1、BUF_VREF2输出 精度 基准源温度系数 负载电流 DAC通道规格 直流精度8 分辨率 相对精度 微分非线性 计算失调误差 实际失调误差 增益误差9 增益误差失配 建立时间 PSRR4 直流 1 kHz 10 kHz 100 kHz 失调漂移4 增益误差漂移4 短路电流 模拟输出 输出范围 最小值 典型值 2.5 10 61 10 1 1.2 ±5 30 单位 V mV ppm/°C dB Ω ms AVDD V 1.2 mV µV/°C mA ±30 40 测试条件/注释 在VREF和AGND之间连接0.47 μF电容 TA = 25°C TA = 25°C TA = 25°C RL = 5 kΩ, CL = 100 pF 缓冲 12 ±2 ±0.2 ±2 9 ±0.15 0.1 10 ±1 ±0.8 位 LSB LSB mV mV % % µs 保证单调性 2.5 V内部基准电压 在代码0下测量 DAC0满量程的百分比 缓冲 −59 −57 −47 −19 −61 10 10 20 0.1 DAC交流特性 压摆率 输出电压建立时间 数模转换脉冲干扰 温度传感器10 25°C时电压输出 电压TC 精度 电源监控器(PSM) IOVDD跳变点选择 电源跳变点精度 上电复位 看门狗定时器(WDT) 超时时间 最大值 0 VREF/AVDD − 0.1 dB dB dB dB µV/°C µV/°C mA V 2.49 10 ±20 V/µs µs nV-sec 707 −1.25 ±3 mV mV/°C °C 2.79 3.07 ±2.5 2.36 V V % V 512 s Rev. A | Page 6 of 96 缓冲开启 主进位1 LSB变化(DACxDAT寄存器中同时 变化的最大位数) 测量前MCU处于掉电或待机模式 两个可选择跳变点 已选跳变点标称电压 ADuC7122 参数 FLASH/EE存储器 耐久性11 数据保留期12 数字输入 逻辑1输入电流 逻辑0输入电流 输入电容 逻辑输入4 输入低电压VINL4 输入高电压VINH4 逻辑输出 输出高电压VOH VOL输出低电压13 最小值 典型值 10,000 20 从休眠模式 从停止模式 可编程逻辑阵列(PLA) 引脚传输延迟 单元传输延迟 电源要求14, 15 电源电压范围 AVDD至AGND和IOVDD至IOGND 模拟电源电流 AVDD电流 数字电源电流 IOVDD正常模式下电流 IOVDD暂停模式下电流4 IOVDD休眠模式下电流4 附加电源电流 模数转换器 DAC 单位 周期 年 ±0.2 −40 10 ±1 −60 µA µA pF 0.8 V V 测试条件/注释 TJ = 85°C 除XTALI和XTALO外的所有数字输入 VIH = VDD或VIH = 5 V VIL = 0 V;TDI除外 除XTALI外的所有逻辑输入 2.0 2.4 晶体输入XTALI和XTALO 逻辑输入,仅限XTALI 输入低电压VINL 输入高电压VINH XTALI输入电容 XTALO输出电容 内部振荡器 MCU时钟速率 采用32 kHz内部振荡器 采用32 kHz外部晶体 使用外部时钟 启动时间 上电时 从暂停/休眠模式 最大值 0.4 V V ±3 V V pF pF kHz % 41.78 kHz MHz MHz 1.1 1.7 20 20 32.768 326 41.78 0.05 70 24 3.06 1.58 1.7 ms ns µs ms ms 12 2.5 ns ns 3.0 3.6 除XTALO外的所有数字输出 ISOURCE = 1.6 mA ISINK = 1.6 mA CD = 7 CD = 0 TA = 95°C 内核时钟= 41.78 MHz CD = 0 CD = 7 从输入引脚到输出引脚 V 200 µA ADC处于空闲模式 7 11 30 25 100 mA mA mA mA µA 从Flash/EE执行代码 CD = 7 CD = 3 CD = 0(时钟频率41.78 MHz) CD = 0(时钟频率41.78 MHz) TA = 85°C mA µA 1 MSPS时 每DAC 2.7 250 40 Rev. A | Page 7 of 96 ADuC7122 参数 ESD测试 最大HBM通过电压 最大FCIDM通过电压 最小值 典型值 最大值 单位 4 0.5 kV kV 1 测试条件/注释 2.5 V基准电压,TA = 25°C 在MicroConverter内核正常工作时,保证所有ADC通道的技术规格。 适用于所有ADC输入通道。 3 使用ADC失调寄存器(ADCOF)和增益系数寄存器(ADCGN)中的出厂设定默认值进行测试;参见“校准”部分。 4 未经生产测试,但量产时的设计和/或特性数据可提供保证。 5 采用运算放大器AD845作为一个外部输入缓冲级,用ADCOF和ADCGN寄存器中的出厂设定默认值进行测试(如图23所示)。基于外部ADC系统元件,用户可能需 要进行系统校准来消除外部端点误差并满足规格要求(详见“ADC电路概览”部分)。 6 输入信号可以任何直流共模电压(VCM)为中心,但该值必须位于ADC规定输入电压范围内。 7 VREF校准和调整是在以下条件下进行:内核工作在正常模式(CD = 0)、ADC开启且所有DAC开启。在其他工作条件下,VREF精度可能有所差异。 8 DAC的线性度是使用一个递减的数据范围(100到3995)计算出来的。 9 DAC增益误差是使用一个递减的数据范围(100到内部2.5 V基准电压)计算出来的。 10 芯片温度。 11 耐久性是分别在−40°C、+25°C、+85°C及+125°C时依据JEDEC 22标准方法A117来认定的。 12 根据JEDEC 22标准方法A117,保持期限相当于85°C结温时的寿命。保持期限会随着结温递减。 13 测试是在最多8个I/O端口输出低电平时进行的。 14 电源功耗分别在正常、暂停和休眠模式下测试的,这3种模式下的测试条件分别为:正常模式供电电压为3.6 V、暂停模式供电电压为3.6 V、休眠模式供电电压为3.6 V。 15 在一个Flash/EE擦写周期中,IOVDD电源电流通常降低2 mA。 2 Rev. A | Page 8 of 96 ADuC7122 时序规格 表2. 快速模式下I2C时序(400 kHz) 参数 tL tH tSHD tDSU tDHD tRSU tPSU tBUF tR tF 从机 主机 最小值 典型值 最大值 最小值 典型值 最大值 200 1360 100 1140 300 100 740 0 400 100 100 800 1.3 300 200 300 说明 SCLx低电平脉冲宽度 SCLx高电平脉冲宽度 起始条件保持时间 数据建立时间 数据保持时间 重复起始建立时间 停止条件的建立时间 一个结束条件和起始条件之间的总线空闲时间 SCLx和SDAx的上升时间 SCLx和SDAx的下降时间 单位 ns ns ns ns ns ns ns μs ns ns 表3. 标准模式下I2C时序(100 kHz) 说明 SCLx低电平脉冲宽度 SCLx高电平脉冲宽度 起始条件保持时间 数据建立时间 数据保持时间 重复起始建立时间 停止条件的建立时间 一个结束条件和起始条件之间的总线空闲时间 SCLx和SDAx的上升时间 SCLx和SDAx的下降时间 参数 tL tH tSHD tDSU tDHD tRSU tPSU tBUF tR tF 从机 典型值 最小值 4.7 4.0 4.0 250 0 4.7 4.0 4.7 单位 µs ns µs ns µs µs µs µs µs ns 最大值 3.45 1 300 tBUF tSUP tR MSB tDSU LSB tSHD P S tF tDHD 2–7 tR tRSU tH 1 SCLx MSB tDSU tDHD tPSU ACK 8 tL 9 tSUP 1 S(R) REPEATED START STOP START CONDITION CONDITION 图2. I 2C兼容接口时序 Rev. A | Page 9 of 96 tF 08755-002 SDAx ADuC7122 表4. SPI主机模式时序(SPICPH = 1) 参数 tSL tSH tDAV tDSU tDHD tDF tDR tSR tSF 最小值 典型值 (SPIDIV + 1) × tUCLK (SPIDIV + 1) × tUCLK 最大值 25 1 × tUCLK 2 × tUCLK 5 5 5 5 12.5 12.5 12.5 12.5 tUCLK = 23.9 ns。其对应于在时钟分频器之前来自PLL的41.78 MHz内部时钟。 SCLOCK (POLARITY = 0) tSH tSL tSR tSF SCLOCK (POLARITY = 1) tDAV tDF MSB MOSI MISO tDR MSB IN BITS 6 TO 1 BITS 6 TO 1 tDSU tDHD 图3. SPI主机模式时序(SPICPH = 1) Rev. A | Page 10 of 96 L SB LSB IN 08755-003 1 说明 SCLOCK低电平脉冲宽度 SCLOCK高电平脉冲宽度 SCLOCK边沿之后数据输出有效 SCLOCK边沿之前数据输入建立时间1 SCLOCK边沿之后数据输入保持时间 数据输出下降时间 数据输出上升时间 SCLOCK上升时间 SCLOCK下降时间 单位 ns ns ns ns ns ns ns ns ns ADuC7122 表5. SPI主机模式时序(SPICPH = 0) 参数 tSL tSH tDAV tDOSU tDSU tDHD tDF tDR tSR tSF 最小值 典型值 (SPIDIV + 1) × tUCLK (SPIDIV + 1) × tUCLK 最大值 单位 ns ns ns ns ns ns ns ns ns ns 25 75 1 × tUCLK 2 × tUCLK 5 5 5 5 12.5 12.5 12.5 12.5 tUCLK = 23.9 ns。其对应于在时钟分频器之前来自PLL的41.78 MHz内部时钟。 SCLOCK (POLARITY = 0) tSH tSL tSR tSF SCLOCK (POLARITY = 1) tDAV tDOSU MSB MOSI MISO tDF MSB IN tDSU tDR BITS 6 TO 1 BITS 6 TO 1 LSB LSB IN 08755-004 1 说明 SCLOCK低电平脉冲宽度 SCLOCK高电平脉冲宽度 SCLOCK边沿之后数据输出有效 SCLOCK边沿之前数据输出建立 SCLOCK边沿之前数据输入建立时间1 SCLOCK边沿之后数据输入保持时间 数据输出下降时间 数据输出上升时间 SCLOCK上升时间 SCLOCK下降时间 tDHD 图4. SPI主机模式时序(SPICPH = 0) Rev. A | Page 11 of 96 ADuC7122 表6. SPI从机模式时序(SPICPH = 1) 参数 tCS 说明 CS至SCLOCK边沿 tSL tSH tDAV tDSU tDHD tDF tDR tSR tSF tSFS SCLOCK低电平脉冲宽度1 SCLOCK高电平脉冲宽度1 SCLOCK边沿之后数据输出有效 SCLOCK边沿之前数据输入建立时间 SCLOCK边沿之后数据输入保持时间 数据输出下降时间 数据输出上升时间 SCLOCK上升时间 SCLOCK下降时间 SCLOCK边沿之后CS高电平时间 1 E 最小值 A 典型值 最大值 200 E A (SPIDIV + 1) × tUCLK (SPIDIV + 1) × tUCLK 25 1 × tUCLK 2 × tUCLK 5 5 5 5 12.5 12.5 12.5 12.5 0 A tUCLK = 23.9 ns。其对应于在时钟分频器之前来自PLL的41.78 MHz内部时钟。 CS tSFS tCS SCLOCK (POLARITY = 0) tSH tSL tSR tSF SCLOCK (POLARITY = 1) tDAV tDF MSB MOSI MISO MSB IN tDR BITS 6 TO 1 BITS 6 TO 1 tDSU LSB LSB IN 08755-005 A tDHD 图5. SPI从机模式时序(SPICPH = 1) Rev. A | Page 12 of 96 单位 ns ns ns ns ns ns ns ns ns ns ns ADuC7122 表7. SPI从机模式时序(SPICPH = 0) 参数 tCS 参数 CS至SCLOCK边沿 tSL tSH tDAV tDSU tDHD tDF tDR tSR tSF tDOCS tSFS SCLOCK低电平脉冲宽度1 SCLOCK高电平脉冲宽度1 SCLOCK边沿之后数据输出有效 SCLOCK边沿之前数据输入建立时间1 SCLOCK边沿之后数据输入保持时间1 数据输出下降时间 数据输出上升时间 SCLOCK上升时间 SCLOCK下降时间 CS边沿之后数据输出有效 SCLOCK边沿之后CS高电平时间 1 E 最小值 A 最大值 典型值 200 E A 25 1 × tUCLK 2 × tUCLK 5 5 5 5 12.5 12.5 12.5 12.5 25 0 A tUCLK = 23.9 ns。其对应于在时钟分频器之前来自PLL的41.78 MHz内部时钟。 CS tSFS tCS SCLOCK (POLARITY = 0) tSH tSL tSR tSF SCLOCK (POLARITY = 1) tDAV tDOCS tDF MSB MOSI MISO MSB IN tDSU tDR BITS 6 TO 1 BITS 6 TO 1 tDHD 图6. SPI从机模式时序(SPICPH = 0) Rev. A | Page 13 of 96 单位 ns ns ns ns ns ns ns ns ns ns ns ns (SPIDIV + 1) × tUCLK (SPIDIV + 1) × tUCLK LSB LSB IN 08755-006 A ADuC7122 绝对最大额定值 除非另有说明,AGND = REFGND = DACGND = GNDREF, TA = 25°C。 表8. 参数 AVDD至IOVDD AGND至DGND IOVDD至IOGND,AVDD至AGND 数字输入电压至IOGND 数字输出电压至IOGND VREF_2.5和VREF_1.2至AGND 模拟输入至AGND 模拟输出至AGND 工作温度范围 存储温度范围 结温 θJA热阻 108引脚CSP_BGA 回流焊峰值温度 锡铅体系(10 s至30 s) RoHS体系(20 s至40 s) 额定值 −0.3 V至+0.3 V −0.3 V至+0.3 V −0.3 V至+6 V −0.3 V至+5.3 V −0.3 V至IOV DD + 0.3 V −0.3 V至AVDD + 0.3 V −0.3 V至AVDD + 0.3 V −0.3 V至AVDD + 0.3 V −10°C至+95°C −65°C至+150°C 150°C 注意,超出上述绝对最大额定值可能会导致器件永久性 损坏。这只是额定最值,并不能以这些条件或者在任何其 他超出本技术规范操作章节中所示规格的条件下,推断器 件能否正常工作。长期在绝对最大额定值条件下工作会影 响器件的可靠性。 任何时候只能使用一个绝对最大额定值。 ESD警告 ESD(静电放电)敏感器件。 带电器件和电路板可能会在没有察觉的情况下放电。 尽管本产品具有专利或专有保护电路,但在遇到高 能量ESD时,器件可能会损坏。因此,应当采取适当 的ESD防范措施,以避免器件性能下降或功能丧失。 40°C/W 240°C 260°C Rev. A | Page 14 of 96 ADuC7122 引脚配置和功能描述 3B 1 2 3 4 5 6 7 8 9 10 11 12 A A B B C C D D E ADuC7122 F G TOP VIEW G H H J J K K L L M M 1 2 3 4 5 6 7 8 9 10 11 12 08755-007 E F 图7. 引脚配置 表9. 引脚功能描述 引脚编号 引脚名称 C12 RST P0.0/SCL1/PLAI[5] D11 类型1 I I/O E11 P0.1/SDA1/PLAI[4] I/O C3 P0.2/SPICLK/ADCBusy/PLAO[13] I/O D3 P0.3/SPIMISO/PLAO[12]/SYNC I/O E3 P0.4/SPIMOSI/PLAI[11]/TRIP I/O F3 P0.5/SPICS/PLAI[10]/CONVST I/O G3 P0.6/MRST/PLAI[2] I/O G10 P0.7/TRST/PLAI[3] I/O 通用输入和输出端口0.7 (P0.7)。 JTAG测试端口输入,测试复位(TRST)。调试和下载访问。 PLA单元3输入(PLAI[3])。 C2 P1.0/SIN/SCL2/PLAI[7] I/O D2 P1.1/SOUT/SDA2/PLAI[6] I/O 通用输入和输出端口1.0 (P1.0)。 串行输入,接收数据(RxD),UART (SIN)。 I2C1的I2C接口SCLOCK (SCL2)。 PLA单元7输入(PLAI[7])。 通用输入和输出端口1.1 (P1.1)。 串行输出,发送数据(TxD),UART (SOUT)。 I2C1的I2C接口SDATA (SDA2)。 PLA单元6输入(PLAI[6])。 E A E A E A A E A A 91 F 说明 复位输入(低电平有效)。 通用输入和输出端口0.0 (P0.0)。 I2C0的I2C接口SCLOCK (SCL1)。 PLA单元5输入(PLAI[5])。 通用输入和输出端口0.1 (P0.1)。 I2C0的I2C接口SDATA (SDA1)。 PLA单元4输入(PLAI[4])。 通用输入和输出端口0.2 (P0.2)。 SPI时钟(SPICLK)。 ADC状态(ADCBusy)。 PLA单元13输出(PLAO[13])。 通用输入和输出端口0.3 (P0.3)。 SPI主机输入、从机输出(SPIMISO)。 PLA单元12输出(PLAO[12])。 利用外部源同步复位PWM计数器的输入(SYNC)。 通用输入和输出端口0.4 (P0.4)。 SPI主机输出、从机输入(SPIMOSI)。 PLA单元11输入(PLAI[11])。 允许触发PWM中断的输入(TRIP)。 通用输入和输出端口0.5 (P0.5)。 SPI从机选择输入(SPICS)。 PLA单元10输入(PLAI[10])。 利用PLA或定时器输出启动ADC转换(CONVST)。 通用输入和输出端口0.6 (P0.6)。 上电复位输出(MRST)。 PLA单元2输入(PLAI[2])。 Rev. A | Page 15 of 96 ADuC7122 引脚编号 引脚名称 类型1 H3 P1.4/PWM1/PLAI[8]/ECLK/XCLK I/O 91 F J3 P1.5/PWM2/PLAI[9] I/O B3 P1.6/PLAO[5] I/O B2 P1.7/PLAO[4] I/O F11 P2.0/IRQ0/PLAI[13] I/O G11 P2.1/IRQ1/PLAI[12] I/O H11 P2.2/PLAI[1] I/O J11 P2.3/IRQ2/PLAI[14] I/O H10 P2.4/PWM5/PLAO[7] I/O J10 P2.5/PWM6/PLAO[6] I/O C1 P2.6/IRQ3/PLAI[15] I/O C9 P2.7/PLAI[0] I/O C4 P3.0/PLAO[0] I/O C11 P3.1/PLAO[1] I/O D1 P3.2/IRQ4/PWM3/PLAO[2] I/O E1 P3.3/IRQ5/PWM4/PLAO[3] I/O E2 P3.4/PLAO[8] I/O F2 P3.5/PLAO[9] I/O D12 P3.6/PLAO[10] I/O 说明 通用输入和输出端口1.4 (P1.4)。 PWM1输出(PWM1)。 PLA单元8输入(PLAI[8])。 基本系统时钟输出(ECLK)。 基本系统时钟输入(XCLK)。 通用输入和输出端口1.5 (P1.5)。 PWM2输出(PWM2)。 PLA单元9输入(PLAI[9])。 通用输入和输出端口1.6 (P1.6)。 PLA单元5输出(PLAO[5])。 通用输入和输出端口1.7 (P1.7)。 PLA单元4输出(PLAO[4])。 通用输入和输出端口2.0 (P2.0)。 外部中断请求0 (IRQ0)。 PLA单元13输入(PLAI[13])。 通用输入和输出端口2.1 (P2.1)。 外部中断请求1 (IRQ1)。 PLA单元12输入(PLAI[12])。 通用输入和输出端口2.2 (P2.2)。 PLA单元1输入(PLAI[1])。 通用输入和输出端口2.3 (P2.3)。 外部中断请求2 (IRQ2)。 PLA单元14输入(PLAI[14])。 通用输入和输出端口2.4 (P2.4)。 PWM5输出(PWM5)。 PLA单元7输出(PLAO[7])。 通用输入和输出端口2.5 (P2.5)。 PWM6输出(PWM6)。 PLA单元6输出(PLAO[6])。 通用输入和输出端口2.6 (P2.6)。 外部中断请求3 (IRQ3)。 PLA单元15输入(PLAI[15])。 通用输入和输出端口2.7 (P2.7)。 PLA单元0输入(PLAI[0])。 通用输入和输出端口3.0 (P3.0)。 PLA单元0输出(PLAO[0])。 通用输入和输出端口3.1 (P3.1)。 PLA单元1输出(PLAO[1])。 通用输入和输出端口3.2 (P3.2)。 外部中断请求4 (IRQ4)。 PWM3输出(PWM3)。 PLA单元2输出(PLAO[2])。 通用输入和输出端口3.3 (P3.3)。 外部中断请求5 (IRQ5)。 PWM4输出(PWM4)。 PLA单元3输出(PLAO[3])。 通用输入和输出端口3.4 (P3.4)。 PLA单元8输出(PLAO[8])。 通用输入和输出端口3.5 (P3.5)。 PLA单元9输出(PLAO[9])。 通用输入和输出端口3.6 (P3.6)。 PLA单元10输出(PLAO[10])。 Rev. A | Page 16 of 96 ADuC7122 引脚编号 引脚名称 E12 P3.7/BM/PLAO[11] 类型1 I/O L8 L5 B8 K6 K7 L6 M5 L7 M8 K5 K4 M4 L4 K3 M3 M10 M9 L9 K9 K8 VREF_2.5 VREF_1.2 NC BUF_VREF1 BUF_VREF2 PADC0P PADC0N PADC1P PADC1N ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 ADC9 ADC10/AINCM AI/O AI/O NC AO AO AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI K1 K2 J2 L2 M2 L3 M11 L11 L10 K10 K11 K12 B5 C6 A6 A8 A7 C8 A5 C5 B4 A4 A1 A3 A2 B1 A12 DAC0 DAC1 DAC2 DAC3 DAC4 DAC5 DAC6 DAC7 DAC8 DAC9 DAC10 DAC11 NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC AO AO AO AO AO AO AO AO AO AO AO AO NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC E A A 91 F 说明 通用输入和输出端口3.7 (P3.7)。 引导模式(BM)。如果BM为低电平且闪存地址0x00014为0xFFFFFFFF,则在下一个 复位序列之后,器件进入I2C下载模式。 PLA单元11输出(PLAO[11])。 2.5 V基准电压输出,外部2.5 V基准电压输入。可用来驱动光电二极管的阳极。 1.2 V基准电压输出,外部1.2 V基准电压输入。不能用于向外部流出电流。 不连接。 缓冲2.5 V偏置。最大负载 = 1.2 mA。 缓冲2.5 V偏置。最大负载 = 1.2 mA。 PADC0正输入通道。基于PGA的ADC输入通道。 PADC0负输入通道。基于PGA的ADC输入通道。 PADC1正输入通道。基于PGA的ADC输入通道。 PADC1负输入通道。基于PGA的ADC输入通道。 单端或差分模拟输入0。 单端或差分模拟输入1。 单端或差分模拟输入2。 单端或差分模拟输入3。 单端或差分模拟输入4。 单端或差分模拟输入5。 单端或差分模拟输入6。 单端或差分模拟输入7。 单端或差分模拟输入8。 单端或差分模拟输入9。 单端或差分模拟输入10。 伪差分输入共模(AINCM)。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 12位DAC输出。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 不连接。 Rev. A | Page 17 of 96 ADuC7122 引脚编号 A9 A11 A10 B12 B11 B10 B9 M1 M6 L1 M7 M12 B6 L12 C7 B7 G1 G12 F1 F12 H1 J1 H12 J12 G2 H2 引脚名称 NC NC NC NC NC AGND AGND AGND AGND AVDD AVDD AGND AGND AVDD NC REG_PWR LVDD LVDD DGND DGND IOVDD IOGND IOVDD IOGND XTALO XTALI 类型1 NC NC NC NC NC S S S S S S S S S NC S S S S S S S S S DO DI D10 TDO/P1.3/PLAO[14] DO C10 TDI/P1.2/PLAO[15] DI F10 E10 TCK TMS DI DI 1 91 F 说明 不连接。 不连接。 不连接。 不连接。 不连接。 模拟地。 模拟地。 模拟地。 模拟地。 模拟电源(3.3 V)。 模拟电源(3.3 V)。 模拟地。 模拟地。 模拟电源(3.3 V)。 模拟电源(3.3 V)。 2.5 V片内稳压器的输出。必须在此引脚与DGND之间连接一个470 nF电容。 2.6 V片内LDO稳压器的输出。必须在此引脚与DGND之间连接一个470 nF电容。 2.6 V片内LDO稳压器的输出。必须在此引脚与DGND之间连接一个470 nF电容。 数字地。 数字地。 3.3 V GPIO电源。 3.3 V GPIO地。 3.3 V GPIO电源。 3.3 V GPIO地。 晶体振荡反相器输出。如果不使用外部晶体,此引脚可以保持断开状态。 晶体振荡反相器输入和内部时钟发生器电路输入。如果不使用外部晶体,应将此 引脚接到DGND系统地。 JTAG测试端口输出,测试数据输出(TDO)。调试和下载访问。 通用输入和输出端口1.3 (P1.3)。 PLA单元14输出(PLAO[14])。通过JTAG接口调试时,此引脚不应用作GPIO。 JTAG测试端口输入,测试数据输入(TDI)。调试和下载访问。 通用输入和输出端口1.2 (P1.2)。 PLA单元15输出(PLAO[15])。通过JTAG接口调试时,此引脚不应用作GPIO。 JTAG测试端口输入,测试时钟。调试和下载访问。 JTAG测试端口输入,测试模式选择。调试和下载访问。 I = 输入,I/O = 输入/输出,AI/O = 模拟输入/输出,NC = 不连接,AO = 模拟输出,AI = 模拟输入,DI = 数字输入,DO = 数字输出,S = 电源。 Rev. A | Page 18 of 96 ADuC7122 术语 ADC规格 积分非线性(INL) ADC输出与通过ADC端点的传递函数直线之间的最大偏差。 传递函数端点是指,在零电平位置比第一个编码的跃变点 低½ LSB的点,以及在满量程位置比最后一个编码的跃变点 高½ LSB的点。 微分非线性(DNL) ADC中任意两个相邻码之间所测得变化值与理想的1 LSB变 化值之间的差异。 失调误差 第一个转换编码(从0000…000到0000…001)的跃变点与理想 点½ LSB之间的偏差。 增益误差 在失调误差调零之后,最后一个转换编码的跃变点与理想 AIN电压(满量程 − 1.5 LSB)的偏差。 信纳比(SINAD) 在ADC输出端所测量到的信号与(噪声+失真)的比值。这 里的信号是基波幅值的均方根值。噪声为除了直流信号以 外一直到半采样频率(fS/2)的所有非基波信号均方根和。 在数字化过程中,这个比值的大小取决于量化级数,量化 级数越多,量化噪声就越小。 对于一个正弦波输入的理想N位转换器,信纳比值理论值 计算公式为: 信号与 (噪声 + 失真 ) 比值 = (6.02 N + 1.76) dB 因此,对于12位转换器,该值为74 dB。 总谐波失真 所有谐波均方根和与基波均方根之比。 DAC技术规格 相对精度 也被称作端点线性度,相对精度是指DAC输出与通过DAC 端点的传递函数直线之间的最大偏差。在零点误差和满量 程误差调零后才可进行相对精度测量。 输出电压建立时间 是指对于一个满量程输入变化,DAC输出稳定在1 LSB变化 范围内所需时间。 Rev. A | Page 19 of 96 ADuC7122 ARM7TDMI内核概览 ARM7®内核为32位精简指令集计算机(RISC)。指令和数据 使用单32位总线。数据的长度可以是8位、16位或32位。指 令字的长度为32位。 异常 ARM7TDMI是ARM7内核,还有4个额外的特性: • 正常中断或IRQ。这种异常用于内部和外部事件的通用 中断处理。 • 快速中断或FIQ。这是用于数据传输或低延迟时间通道 处理。FIQ的优先级高于IRQ。 • 存储器中止。 • 尝试执行未定义指令。 • 软件中断指令(SWI)。它通常用于通知操作系统。 支持16位的thumb指令集(T) 支持调试(D) 支持长乘(M) 包含一个支持嵌入式系统调试的EmbeddedICE模块(I) THUMB模式(T) 一条ARM指令的长度为32位。ARM7TDMI处理器支持压 缩至16位的第二指令集,即thumb指令集。用thumb指令集 替代ARM指令集,可以更为快速地从16位存储器执行代码 并且实现更高的代码密度。这就使得ARM7TDMI内核尤其 适用于嵌入式系统。 然而,thumb模式有两个缺点: • 对于同一工作,Thumb代码通常需要更多指令。因此, 如果更强调时效性,ARM代码更适合用来优化代码性能。 • Thumb指令集并不包含异常处理的所有指令,所以如果 异常发生在Thumb状态,处理器会自动切换到ARM代码。 关于内核架构、编程模块、ARM和ARM thumb指令集的具 体内容,请参阅ARM7TDMI用户手册。 长乘(M) ARM7TDMI指令集包括四个额外的指令,分别为得到64位 结果的32位与32位相乘指令;得到64位结果的32位与32位 乘加(MAC)指令。得到这些结果比标准的ARM7内核所需 的时钟周期更少。 典型情况下,程序员定义中断为IRQ,但是为了得到更高 优先级的中断,即得到更快响应时间,程序员可以定义中 断为FIQ。 ARM寄存器 ARM7TDMI共有37个寄存器:31个通用寄存器和6个状态 寄存器。每一个工作模式都有专门的寄存器组。 当编写用户级程序时,15个通用32位寄存器(R0-R14)、程 序计数器(R15)和当前程序状态寄存器(CPSR)是可用的。余 下的寄存器只用于系统级编程和异常处理。 异常发生后,异常模式专用的寄存器将取代某些标准寄存 器。所有的异常模式都有各自的替换寄存器组,用于堆栈 指针(R13)和链接寄存器(R14),如图8所示。快速中断模式 有更多的寄存器(R8到R12)用于快速中断处理。这意味着 无需先保存或者重新保存这些寄存器,就可以进行中断处 理,因此在中断处理中可以节省至关重要的时间。 R0 USABLE IN USER MODE R1 EmbeddedICE (I) SYSTEM MODES ONLY R2 R3 EmbeddedICE支持内核片内调试。EmbeddedICE模块包含 断点和观察点寄存器,在调试时这些寄存器可使代码中止 执行。这些寄存器可以通过JTAG测试端口来控制。 R4 R5 R6 R7 R8 当遇到一个断点或观察点时,处理器会暂停运行,进入调 试状态。一旦进入调试状态,就可以检查处理器寄存器、 Flash/EE,SRAM和存储器映射寄存器的状态。 R9 R10 R11 R12 R13 R14 R8_FIQ R9_FIQ R10_FIQ R11_FIQ R12_FIQ R13_FIQ R14_FIQ R13_SVC R14_SVC R13_ABT R14_ABT R13_IRQ R14_IRQ R13_UND R14_UND R15 (PC) CPSR USER MODE SPSR_FIQ FIQ MODE SPSR_SVC SVC MODE SPSR_ABT ABORT MODE 图 8. 寄存器结构图 Rev. A | Page 20 of 96 SPSR_IRQ IRQ MODE SPSR_UND UNDEFINED MODE 08755-008 • • • • ARM支持5种类型的异常,并且每一种异常模式有一种优 先处理器模式。这5种异常为: ADuC7122 更多关于编程模式和ARM7TDMI内核架构的信息可通过以 下ARM公司的文件获得: • DDI 0029G,ARM7TDMI技术参考手册 • DDI 0100,ARM架构参考手册 中断延迟时间 快速中断请求(FIQ)的最大延迟时间包含: • 请求通过同步器的最长时间 • 最长指令完成所需的时间;最长指令是LDM,用于加载 所有寄存器,包括PC。 • 数据中止入口时间 • FIQ入口时间 在这个时间段的末尾,ARM7TDMI执行0X1C(FIQ中断矢 量地址)处的指令。最长总延迟时间为50个处理器周期,在 系统采用连续41.78 MHz处理器时钟时,略微小于1.2 μs。 中断请求(IRQ)最大延迟时间计算方法也类似,但必须考 虑到FIQ优先级更高,可能任意延长进入IRQ处理例行程序 的时间。如果不使用LDM命令,这个时间可以缩短到42个 周期。一些编译器可以选择不使用这个命令进行编译。另 一个选择是在Thumb模式下运行器件,可以将时间缩短至 22个周期。 用于FIQ或IRQ的最小中断延迟时间总共有5个周期,包括 请求通过同步器的最短时间和进入异常模式的时间。 注意优先模式中(例如执行中断服务程序),ARM7TDMI通 常运行于32位的ARM模式。 Rev. A | Page 21 of 96 ADuC7122 存储器结构 ADuC7122有三个独立存储器模块:8 kB的SRAM和两个64 kB 的片内Flash/EE存储器。片内Flash/EE存储器有126 kB可供 用户使用,剩余2 kB保留用于厂家配置的引导页面。这两个 存储器模块的映射如图9所示。 注意默认情况下,复位之后,Flash/EE存储器被镜像到地 址0x00000000。将REMAP寄存器的位0清0,可以重新把 SRAM映射到0x00000000。这种重映射功能在Flash/EE存储 器部分有更详细描述。 0xFFFFFFFF 0xFFFF0000 MMRs RESERVED 0x0009F800 FLASH/EE 0x00080000 RESERVED 0x00041FFF 0x00040000 FLASH/EE存储器 128 kB的Flash/EE分为两个32k x 16位的模块。模块0起始地 址为0x90000,结束地址为0x9F700。在该模块中,31k x 16位 是用户空间,1k x 16位保留用于工厂配置的引导页面。Flash/ EE存储器的页面大小为512个字节。 模块1起始地址为0x80000,结束地址为0x90000。该64 kB模 块配置为32k x 16位,整个模块均用作用户空间。 126 kB的Flash/EE存储器可以存储用户代码和非易失性数据。 数据和代码之间没有区别,因为ARM代码及数据共用同一 空间。Flash/EE存储器的实际宽度为16位,这意味着在 ARM模式(32位指令)下每次取指令必须两次访问Flash/EE 存储器。因此,当从Flash/EE存储器中执行程序时,建议 使 用 Thumb模 式 来 优 化 存 取 速 度 。 以 Thumb模 式 存 取 Flash/EE存储器的最大速度为41.78 MHz,而相应的以全ARM 模式为20.89 MHz(参见“SRAM和FLASH/EE执行时间”部分)。 SRAM SRAM 用户可以使用8 kB的SRAM,它的组织形式为2k x 32位,即 2k字。如果SRAM被配置成32位宽的存储器阵列,ARM代 码可以直接在SRAM中以41.78 MHz的速度执行(参见“SRAM 和FLASH/EE执行时间”部分)。 RESERVED REMAPPABLE MEMORY SPACE (FLASH/EE OR SRAM) 0x00000000 08755-009 0x0001FFFF 图9. 物理存储器映射图 存储器映射寄存器 存储器访问 ARM7内核把存储器看成是232个字节的一个线性阵列。不 同的存储器模块映射如图9所示。 ADuC7122存储器被配置成从小到大顺序格式:LSB位于最 低字节地址,MSB位于最高字节地址。 BIT 31 BIT 0 BYTE 3 . . . BYTE 2 . . . BYTE 1 . . . BYTE 0 . . . B A 9 8 7 6 5 4 0x00000004 3 2 1 0 0x00000000 08755-010 32 BITS 图 10. 从小到大顺序格式 0xFFFFFFFF 存储器映射寄存器(MMR)空间被映射到存储器阵列的最上 方两页。我们可以通过对ARM7寄存器组的间接寻址来存 取存储器映射寄存器内的信息。 MMR空间为CPU和所有片内外设提供接口。除了内核寄 存器,所有的寄存器都位于寄存器区域内。图11内的阴影 区域为未占用区域或保留区域,不允许用户程序访问该区 域。表10至表26为所有寄存器存储器映射。 读取或写入一个寄存器所需的存取时间取决于高级微控制 器总线结构(AMBA)总线,该总线可用来访问外围设备。 处理器有两个AMBA总线:高级性能总线(AHB)用于系统 模块,高级外设总线(APB)用于低性能外围设备。访问 AHB需 要 一 个 周 期 , 访 问 APB需 要 两 个 周 期 。 除 了 Flash/EE存储器和通用输入输出端口以外,ADuC7122中的 所有外围设备均位于APB上。 Rev. A | Page 22 of 96 ADuC7122 表10. IRQ基地址 = 0xFFFF0000 0xFFFF082D UART 0xFFFF0F89 0xFFFF05DF 0xFFFF0580 DAC 0xFFFF0EA3 0xFFFF0521 0xFFFF0500 0xFFFF0480 0xFFFF0480 0xFFFF0441 0xFFFF0440 0xFFFF0419 0xFFFF0404 PWM 0xFFFF0F80 ADC BAND GAP REFERENCE POWER SUPPLY MONITOR PLL AND OSCILLATOR CONTROL 0xFFFF0E80 0xFFFF0E23 0xFFFF0E00 TIMER 0xFFFF0D5F 0xFFFF0D00 PLA 0xFFFF0B00 SPI 0xFFFF0A00 0xFFFF0234 0xFFFF094C 0xFFFF0000 GPIO 0xFFFF0B53 0xFFFF0300 0xFFFF013C FLASH CONTROL INTERFACE 0 0xFFFF0A11 0xFFFF0393 0xFFFF0220 FLASH CONTROL INTERFACE 1 REMAP AND SYSTEM CONTROL INTERRUPT CONTROLLER 0xFFFF0900 I2C1 0xFFFF08CC 0xFFFF0880 I2C0 08755-011 0xFFFF0800 图 11. 存储器映射寄存器 完整MMR列表 注意:表10至表26中的“访问类型”栏对应于读取或写入寄 存器的访问时间。它取决于用来访问外设的AMBA总线。 处理器有两个AMBA总线:高性能总线(AHB)用于系统模 块,高级外围总线(APB)用于低性能外围设备。 地址 0x0000 0x0004 0x0008 0x000C 0x0010 0x0014 0x001C 0x0020 0x0024 0x0028 0x002C 0x0030 0x0034 0x0038 0x003C 0x0100 0x0104 0x0108 0x010C 0x011C 0x013C 名称 IRQSTA IRQSIG IRQEN IRQCLR SWICFG IRQBASE IRQVEC IRQP0 IRQP1 IRQP2 IRQP3 IRQCONN IRQCONE IRQCLRE IRQSTAN FIQSTA FIQSIG FIQEN FIQCLR FIQVEC FIQSTAN 字节 4 4 4 4 4 4 4 4 4 4 4 1 1 1 1 4 4 4 4 4 1 访问类型 R R R/W W W R/W R R/W R/W R/W R/W R/W R/W W R/W R R R/W W R R/W 周期 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 表11. 系统控制基地址 = 0xFFFF0200 地址 0x0220 0x0230 0x0234 0x0248 0x024C 0x0250 Rev. A | Page 23 of 96 名称 REMAP RSTSTA RSTCLR RSTKEY1 RSTCFG RSTKEY2 字节 1 1 1 1 1 1 访问类型 R/W R W W R/W W 周期 1 1 1 N/A 0x00 N/A ADuC7122 表12. 定时器基地址 = 0xFFFF0300 地址 0x0300 0x0304 0x0308 0x030C 0x0310 0x0314 0x0320 0x0324 0x0328 0x032C 0x0330 0x0340 0x0344 0x0348 0x034C 0x0360 0x0364 0x0368 0x036C 0x0380 0x0384 0x0388 0x038C 0x0390 名称 T0LD T0VAL0 T0VAL1 T0CON T0CLRI T0CAP T1LD T1VAL T1CON T1CLRI T1CAP T2LD T2VAL T2CON T2CLRI T3LD T3VAL T3CON T3CLRI T4LD T4VAL T4CON T4CLRI T4CAP 字节 2 2 4 4 1 2 4 4 4 1 4 4 4 4 1 2 2 2 1 4 4 4 1 4 表16. ADC基地址 = 0xFFFF0500 访问类型 R/W R R R/W W R R/W R R/W W R R/W R R/W W R/W R R/W W R/W R R/W W R 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 表13.PLL基地址 = 0xFFFF0400 地址 0x0404 0x0408 0x040C 0x0410 0x0414 0x0418 名称 POWKEY1 POWCON POWKEY2 PLLKEY1 PLLCON PLLKEY2 字节 2 1 2 2 1 2 访问类型 W R/W W W R/W W 周期 2 2 2 2 2 2 访问类型 R/W 周期 2 地址 0x0500 0x0504 0x0508 0x050C 0x0510 0x0514 0x0520 名称 PSMCON 字节 2 地址 0x0580 0x0584 0x0588 0x058C 0x0590 0x0594 0x0598 0x059C 0x05A0 0x05A4 0x05A8 0x05AC 0x05B0 0x05B4 0x05B8 0x05BC 0x05C0 0x05C4 0x05C8 0x05CC 0x05D0 0x05D4 0x05D8 0x05DC 表15. 基准电压基地址 = 0xFFFF0480 地址 0x0480 名称 REFCON 字节 1 访问类型 R/W 字节 4 1 1 1 4 1 2 访问类型 R/W R/W R/W R R W R/W 周期 2 2 2 2 2 2 2 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 表17. DAC基地址 = 0xFFFF0580 表14. PSM基地址 = 0xFFFF0440 地址 0x0440 名称 ADCCON ADCCP ADCCN ADCSTA ADCDAT ADCRST PGA_GN 周期 2 Rev. A | Page 24 of 96 名称 DAC0CON DAC0DAT DAC1CON DAC1DAT DAC2CON DAC2DAT DAC3CON DAC3DAT DAC4CON DAC4DAT DAC5CON DAC5DAT DAC6CON DAC6DAT DAC7CON DAC7DAT DAC8CON DAC8DAT DAC9CON DAC9DAT DAC10CON DAC10DAT DAC11CON DAC11DAT 字节 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 ADuC7122 表20. I2C1基础地址 = 0xFFFF0900 表18. UART0基地址 = 0xFFFF0800 地址 0x0800 0x0800 0x0800 0x0804 0x0804 0x0808 0x080C 0x0810 0x0814 0x0818 0x081C 0x0820 0x0824 0x0828 0x082C 名称 COMTX COMRX COMDIV0 COMIEN0 COMDIV1 COMIID0 COMCON0 COMCON1 COMSTA0 COMSTA1 COMSCR COMIEN1 COMIID1 COMADR COMDIV2 字节 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 访问类型 W R R/W R/W R/W R R/W R/W R R R/W R/W R R/W R/W 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 访问类型 R/W R R R/W R/W R R/W R/W R/W R/W R/W R R R/W R/W R/W R/W R/W R/W R/W 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 表19. I2C0基地址 = 0xFFFF0880 地址 0x0880 0x0884 0x0888 0x088C 0x0890 0x0894 0x0898 0x089C 0x08A0 0x08A4 0x08A8 0x08AC 0x08B0 0x08B4 0x08B8 0x08BC 0x08C0 0x08C4 0x08C8 0x08CC 名称 I2C0MCTL I2C0MSTA I2C0MRX I2C0MTX I2C0MCNT0 I2C0MCNT1 I2C0ADR0 I2C0ADR1 I2C0SBYTE I2C0DIV I2C0SCTL I2C0SSTA I2C0SRX I2C0STX I2C0ALT I2C0ID0 I2C0ID1 I2C0ID2 I2C0ID3 I2C0FSTA 字节 2 2 1 2 2 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 地址 0x0900 0x0904 0x0908 0x090C 0x0910 0x0914 0x0918 0x091C 0x0920 0x0924 0x0928 0x092C 0x0930 0x0934 0x0938 0x093C 0x0940 0x0944 0x0948 0x094C 名称 I2C1MCTL I2C1MSTA I2C1MRX I2C1MTX I2C1MCNT0 I2C1MCNT1 I2C1ADR0 I2C1ADR1 I2C1SBYTE I2C1DIV I2C1SCTL I2C1SSTA I2C1SRX I2C1STX I2C1ALT I2C1ID0 I2C1ID1 I2C1ID2 I2C1ID3 I2C1FSTA 字节 2 2 1 2 2 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 访问类型 R/W R R R/W R/W R R/W R/W R/W R/W R/W R R R/W R/W R/W R/W R/W R/W R/W 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 访问类型 R R W R/W R/W 周期 2 2 2 2 2 表21. SPI基地址 = 0xFFFF0A00 地址 0x0A00 0x0A04 0x0A08 0x0A0C 0x0A10 Rev. A | Page 25 of 96 名称 SPISTA SPIRX SPITX SPIDIV SPICON 字节 1 1 1 1 2 ADuC7122 表22. PLA基地址 = 0xFFFF0B00 地址 0x0B00 0x0B04 0x0B08 0x0B0C 0x0B10 0x0B14 0x0B18 0x0B1C 0x0B20 0x0B24 0x0B28 0x0B2C 0x0B30 0x0B34 0x0B38 0x0B3C 0x0B40 0x0B44 0x0B48 0x0B4C 0x0B50 名称 PLAELM0 PLAELM1 PLAELM2 PLAELM3 PLAELM4 PLAELM5 PLAELM6 PLAELM7 PLAELM8 PLAELM9 PLAELM10 PLAELM11 PLAELM12 PLAELM13 PLAELM14 PLAELM15 PLACLK PLAIRQ PLAADC PLADIN PLADOUT 字节 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 4 4 4 4 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 表23. GPIO基地址 = 0xFFFF0D00 地址 0x0D00 0x0D04 0x0D08 0x0D0C 0x0D20 0x0D24 0x0D28 0x0D2C 0x0D30 0x0D34 0x0D38 0x0D3C 0x0D40 0x0D44 0x0D48 0x0D4C 0x0D50 0x0D54 0x0D58 0x0D5C 0x0D70 0x0D74 0x0D78 名称 GP0CON GP1CON GP2CON GP3CON GP0DAT GP0SET GP0CLR GP0PAR GP1DAT GP1SET GP1CLR GP1PAR GP2DAT GP2SET GP2CLR GP2PAR GP3DAT GP3SET GP3CLR GP3PAR GP1OCE GP2OCE GP3OCE 字节 4 4 4 4 4 1 1 4 4 1 1 4 4 1 1 4 4 1 1 4 1 1 1 访问类型 R/W R/W R/W R/W R/W W W R/W R/W W W R/W R/W W W R/W R/W W W R/W W W W 周期 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 表24. Flash/EE模块0基地址 = 0xFFFF0E00 地址 0x0E00 0x0E04 0x0E08 0x0E0C 0x0E10 0x0E18 0x0E1C 0x0E20 名称 FEE0STA FEE0MOD FEE0CON FEE0DAT FEE0ADR FEE0SGN FEE0PRO FEE0HID 字节 1 1 1 2 2 3 4 4 访问类型 R R/W R/W R/W R/W R R/W R/W 周期 1 1 1 1 1 1 1 1 表25. Flash/EE模块1基地址 = 0xFFFF0E80 地址 0x0E80 0x0E84 0x0E88 0x0E8C 0x0E90 0x0E98 0x0E9C 0x0EA0 名称 FEE1STA FEE1MOD FEE1CON FEE1DAT FEE1ADR FEE1SGN FEE1PRO FEE1HID 字节 1 1 1 2 2 3 4 4 访问类型 R R/W R/W R/W R/W R R/W R/W 周期 1 1 1 1 1 1 1 1 表26. PWM基地址 = 0xFFFF0F80 地址 0x0F80 0x0F84 0x0F88 0x0F8C 0x0F90 0x0F94 0x0F98 0x0F9C 0x0FA0 0x0FA4 0x0FA8 0x0FAC 0x0FB0 0x0FB4 0x0FB8 Rev. A | Page 26 of 96 名称 PWMCON1 PWM1COM1 PWM1COM2 PWM1COM3 PWM1LEN PWM2COM1 PWM2COM2 PWM2COM3 PWM2LEN PWM3COM1 PWM3COM2 PWM3COM3 PWM3LEN PWMCON2 PWMICLR 字节 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W W 周期 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ADuC7122 ADC电路概览 该模数转换器(ADC)集成一个快速多通道12位ADC,工作 电压为3.0 V至3.6 V,当时钟源为41.78 MHz时,其吞吐量最 高可以达到1 MSPS。这个模块提供给用户一个多通道多路 复用器、一个差分跟踪保持电路、一个片内基准电压源和 一个ADC。 该ADC为一款基于两个电容DAC的12位逐次逼近型转换 器。根据对输入信号的配置不同,ADC可以在如下三种模 式下工作: • 全差分模式,用于小信号和平衡信号 • 单端模式,用于任意单端信号 • 伪差分模式,用于任意单端信号,利用伪差分输入提供 的共模抑制性能 当工作在单端模式或伪差分模式下时,转换器模拟输入范 围为0至VREF。在全差分模式下,输入信号共模电压VCM在0 V 至AVDD之间,最大幅值不超过2 VREF(见图12)。 AVDD VCM VCM 片内提供一个高精度、低漂移、工厂校准的2.5 V基准电压 源,也可以直接连接一个外部基准源,如“带隙基准电压 源”部分所述。 单次或连续转换模式可由软件启动。外部CONVST引脚、 片内PLA生成的输出、定时器0或定时器1溢出也可以用来 生成重复性的ADC转换触发信号。 ADC转换完成时,如果该信号尚未解除置位,则第二次转 换会自动开始。 另外,从片内带隙基准源输出且与绝对温度成正比的电压 也可以通过ADC前端多路复用器(相当于一个附加ADC通 道输入)路由,这样就可以很方便地形成一个内部温度传感 器通道,用于测量芯片温度,测量精度典型值为±3°C。 ADuC7122对ADuC702x系列的ADC输入结构做了多处修改。 PADC0和PADC1输入在伪差分模式下连接到PGA,提供从 1到5的32步可选增益。其余ADC通道可配置为单端、差分 或伪差分模式。ADC之前有一个缓冲器,用于测量内部 通道。 2VREF VCM 2VREF 0 08755-012 2VREF 图12. 全差分模式下的平衡信号示例 Rev. A | Page 27 of 96 ADuC7122 SIGN BIT 0 1111 1111 1110 在伪差分或单端模式中,输入电压范围为0 V至VREF,输出 编码为标准二进制编码: 1 LSB = FS/4096或 2.5 V/4096 = 0.61 mV或 610 μV (VREF = 2.5 V) 0 1111 1111 1100 1LSB = 2 × VREF 4096 0 1111 1111 1010 OUTPUT CODE 伪差分模式和单端模式 0 0000 0000 0001 0 0000 0000 0000 1 1111 1111 1110 1 0000 0000 0100 理想编码转换发生在两个连续整数LSB值的中点,即1/2 LSB、 3/2 LSB、5/2 LSB、...、FS – 3/2 LSB。理想输入/输出传递特 性如图13所示。 1 0000 0000 0010 1 0000 0000 0000 0LSB +VREF – 1LSB –VREF + 1LSB VOLTAGE INPUT (VIN+ – VIN–) 08755-014 ADC传递函数 图14. 差分模式下ADC传递函数 ADC输入通道 1111 1111 1111 ADuC7122提供11个固定增益ADC输入引脚。每个引脚都 可以独立配置为差分输入对、单端输入或正端伪差分输入(负 端必须是AINCM通道)。缓冲器和ADC独立配置,与输入 通道选择无关。注意ADC输入缓冲器的输入范围是0.15 V至 AVDD − 0.15 V。如果输入信号超过此范围,则必须旁路输入 缓冲器。 1111 1111 1110 OUTPUT CODE 1111 1111 1101 1111 1111 1100 1LSB = FS 4096 0000 0000 0011 0000 0000 0010 0000 0000 0000 0V 1LSB +FS – 1LSB VOLTAGE INPUT 08755-013 0000 0000 0001 图13. 伪差分或单端模式下ADC传递函数 可配置ADC多路复用器来选择IOVDD_MON等内部通道或 温度传感器。在内部通道上转换时,必须使能输入缓冲器。 此外,还可以选择片内二极管来监控芯片温度。ADC也可 选择VREF和AGND作为输入以执行校准。 全差分模式 PGA和输入缓冲器 差分信号的幅值为当前使能差分通道的输入VIN+和VIN–的信 号差值(即VIN+ − VIN−)。因此,差分信号的最大幅值为−VREF 至+VREF峰峰值(即2 × VREF)。这与共模电压(CM)无关。共模 电压是两信号的平均值(VIN+ + VIN−)/2,同时也是两个输入电 压的中点。这使得各输入的范围为CM ± VREF/2。这一输入 电压必须在外部设定,并且它的范围随着VREF而变化(参见 “驱动模拟输入”部分)。 ADuC7122内置两个可编程增益通道,它们以伪差分模式 工作。PGA是一个单级正增益放大器,支持的输入范围是 0.1 V至AVDD − 1.2 V,输出摆幅可达2.5 V。PGA设计用于处 理最小10 mV输入。 当VREF=2.5 V时,全差分模式下,输出编码为二进制补码, 且1 LSB = 2 VREF/4096,或2 × 2.5 V/4096 = 1.22 mV。输出结 果为±11位,但是向右移了一位,这样在书写C语言代码 时,就可以将ADCDAT中的结果声明为带符号整数。设计 编码转换发生在两个连续整数LSB值的中点,即1/2 LSB、 3/2 LSB、5/2 LSB、...、FS - 3/2 LSB。理想输入/输出传递特 性如图14所示。 PGA的 增 益 是 从 1到 5, 共 有 32个 线 性 步 进 。 PADC0和 PADC1通道的PGA不能旁路。 PGA采用PMOS输入以使非线性度和噪声最小。为确保放 大器不发生饱和,PGA的输入电平应介于AVDD − 1.2 V和0.1 V 之间。输入缓冲器为轨到轨缓冲器,支持0.15 V至AV DD − 0.15 V的信号。每个输入缓冲器都可以独立地旁路。 为使噪声最低,可以旁路PADC输入缓冲器。 当输入电流降为0时,PADCxN由一个缓冲器驱动到0.15 V, 以防PGA饱和。也可以将ADCCON[14]置1,以禁用该缓 冲器,使得PADCxN可以连接到GND。 PADCx通道只能在伪差分模式下工作,并假定负输入接 近地。 Rev. A | Page 28 of 96 ADuC7122 所有控制功能都是通过寄存器位独立设置,以赋予用户最 大的灵活性。通常,用户必须执行以下步骤: 通过ADCCP和ADCCN寄存器选择PADCxP和PADCxN。 通过ADCCON[15:14]旁路ADC输入缓冲器(可选)。 设置PGA的适当增益值。 将ADC设置为伪差分模式并启动转换。 典型操作 通过ADC控制和通道选择寄存器配置后,ADC就会转换模 拟输入,并在ADCDAT寄存器中提供12位结果。 高4位是符号位,12位结果放在位16至位27,如图15所示。 注意:在全差分模式下,结果表示为二进制补码格式;在 伪差分和单端模式下,结果表示为标准二进制格式。 SIGN BITS 27 16 15 12-BIT ADC RESULT 0 ACQ 08755-015 31 时序 ADC时 序 如 图 16所 示 。 用 户 可 以 控 制 ADC时 钟 速 度 和 ADCCON寄存器内采集时钟的数量。默认情况下,采集时 间是八个时钟周期,时钟为两分频。附加时钟(如位检验或 写入)个数可以设为19,这样采样速率为774 kSPS。对于温 度传感器的转换,ADC采集时间自动设置为16时钟,ADC 时钟分频器设置为32。当使用包括温度传感器的多通道转 换时,在读取温度传感器通道之后,定时设置就会恢复到 用户自定义设定。 图15. ADC转换结果格式 BIT TRIAL WRITE ADC CLOCK 校准 ADC失调寄存器(ADCOF)和增益系数寄存器为出厂设定值 时,单次操作的端点误差和线性度可以达到最佳效果(参见 “概述”部分)。如果需要进行系统校准,可以通过修改失调 和增益系数的默认值来改善端点误差。但需要注意的是, 任何对ADCOF和ADCGN出厂设定值的修改都会降低ADC 的线性性能。 CONVST ADCBUSY DATA ADCDAT 对于系统失调误差校正,必须将ADC通道输入级连接在 AGND上。用软件控制实现连续转换环,在转换过程中不 断修改ADCOF的值,直到ADC转换结果数据(ADCDAT)读 数从0变为1。如果ADCDAT值大于1,应该降低ADCOF中 的值,直到ADCDAT读数从0变为1。这种数字化校正失调 误差的分辨率可以达到0.25 LSB,范围可达到VREF的±3.125%。 对于系统增益误差校正,必须将ADC通道输入级连接到 VREF上。用软件控制实现连续转换环,在转换过程中不断 修改ADCGN的值,直到ADCDAT读数从4094变为4095。 如果ADCDAT值小于4094,应该降低ADCGN中的值,直 到ADCDAT读数从4094变为4095。与失调误差校准一样, 增益校准分辨率可以达到0.25 LSB,范围可达到VREF的±3%。 Rev. A | Page 29 of 96 ADCSTA = 0 ADCSTA = 1 ADC INTERRUPT 图16. ADC时序 08755-016 1. 2. 3. 4. 电流消耗 待机模式下,也就是上电但是没有转换情况下,ADC典型 功耗为640 μA。使用内部基准电压源时,电流要增加140 μA。 转换过程中,额外电流是0.3 μA乘以采样频率(单位为kHz)。 ADuC7122 温度传感器 ADC寄存器接口 ADuC7122提供从片内带隙基准电压源输出并与绝对温度 成正比的电压。该电压可以通过前端ADC多路复用器连接 到ADC模拟输入通道,这样就可以很方便地形成一个内部 温度传感器通道,用于测量芯片温度。 ADC通过许多寄存器进行控制和配置(参见表27),参见表 28至表34的说明。 典型温度系数为−1.25 mV/°C。 1200 ADCDAT (dB) 内部温度传感器并非设计用作绝对环境温度计算器,而是 用作ADuC7122芯片温度的近似指示器。 1250 1150 1100 1000 –20 08755-017 1050 0 20 40 60 80 100 TEMPERATURE (°C) 图17. ADC输出与温度的关系 表27. ADC寄存器 名称 ADCCON ADCCP ADCCN ADCSTA ADCDAT ADCRST PGA_GN 说明 ADC控制寄存器。用户可以通过ADCCON使能ADC外设,选择ADC的工作模式(单端模式、伪差分模式或全差分模式)和转换 类型(见表28)。 ADC正向通道选择寄存器。 ADC反向通道选择寄存器。 ADC状态寄存器。指示ADC转换结果是否就绪。ADCSTA寄存器只有一个位,即ADCREADY(位0),表示ADC的转换状 态。ADC转换结束时,该位置1,并且产生一个ADC中断。当读取ADCDAT寄存器时,该位自动清0。在ADC进行转 换时,也可以通过外部ADCBusy引脚读取ADC的工作状态。在转换期间,该引脚为高电平;当转换结束后,ADCBusy引 脚变回低电平。如果通过GP0CON寄存器使能,则可以在P0.2引脚输出此信息(参见“通用I/O”部分)。 ADC数据结果寄存器。存放12位ADC转换结果数据。如表32所示。 ADC复位寄存器。用于将所有ADC寄存器复位至默认值。 PADC0和PADC1的增益。 Rev. A | Page 30 of 96 ADuC7122 表28. ADCCON寄存器位功能描述(地址 = 0xFFFF0500,默认值 = 0x00000A00) 位 31:16 15 值 0 1 14 0 1 13:11 000 001 010 011 100 101 10:8 说明 这些位保留。 正ADC缓冲器旁路。 用户置0时,使能正ADC缓冲器。 用户置1时,旁路正ADC缓冲器。 负ADC缓冲器旁路。 用户置0时,使能负ADC缓冲器。 用户置1时,旁路负ADC缓冲器。 ADC时钟速度(fADC= fCORE,转换 = 19 ADC时钟 + 采集时间)。 fADC/1。该分频器用于在外部时钟频率小于41.78 MHz时获得1 MSPS ADC。 fADC/2(默认值)。 fADC/4。 fADC/8。 fADC/16。 fADC/32。 000 ADC采集时间(ADC时钟数)。 2个时钟。 4个时钟。 8个时钟(默认值)。 16个时钟。 32个时钟。 64个时钟。 使能转换。 用户置1时,使能转换模式。 用户清0时,禁用转换模式。 保留。用户应将该位置0。 ADC电源控制。 用户置1时,ADC进入正常模式。ADC上电后必须经过至少5 μs才能正确转换。 用户清0时,ADC进入掉电模式。 转换模式。 单端模式。 差分模式。 伪差分模式。 保留。 转换类型。 CONVST引脚输入作为转换使能信号。 001 010 011 100 101 110 其他 定时器1输出作为转换使能信号。 定时器0输出作为转换使能信号。 单次软件转换。转换后自动设置为000。 连续软件转换。 PLA转换。 保留 保留。 000 001 010 011 100 101 7 1 0 6 5 1 0 4:3 00 01 10 11 2:0 Rev. A | Page 31 of 96 ADuC7122 表29. ADCCP寄存器位功能描述 (地址 = 0xFFFF0504,默认值 = 0x00) 表30. ADCCN寄存器位功能描述 (地址 = 0xFFFF0508,默认值 = 0x00) 位 7:5 4:0 位 7:5 4:0 值 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 Others 说明 保留 正向通道选择位 PADC0P PADC1P ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 ADC9 ADC10/AINCM 温度传感器 保留 保留 保留 保留 保留 IOVDD_MON 保留 保留 VREF AGND 保留 值 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 其它 说明 保留 反向通道选择位 PADC0N PADC1N ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 ADC9 ADC10/AINCM 保留 AGND 保留 IOGND 保留 表31. ADCSTA寄存器位功能描述 (地址 = 0xFFFF050C,默认值 = 0x00) 位 0 值 1 0 0 说明 表示ADC转换完毕。ADC转换完毕后, 该位自动置1。 读取ADCDAT寄存器时,该位自动清0。 表32. ADCDAT寄存器位功能描述 (地址 = 0xFFFF0510,默认值 = 0x00000000) 位 27:16 值 说明 保存ADC结果(参见图15)。 表33. ADCRST寄存器位功能描述 (地址 = 0xFFFF0514,默认值 = 0x00) 位 0 值 1 说明 用户置1时,所有ADC寄存器复位为默认值。 表34. PGA_GN寄存器位功能描述 (地址 = 0xFFFF0520,默认值 = 0x0000) 位 15:12 11:6 5:0 值 说明 保留。置0。 PADC0的PGA增益(PGA_PADC0_GN) = 1 + 4 X (PGA_ADC0_GN/32) PADC1的PGA增益(PGA_PADC1_GN) = 1 + 4 X (PGA_ADC1_GN/32) 注意,PGA_PADC0_GN和PGA_PADC1_GN必须≤ 32。 Rev. A | Page 32 of 96 ADuC7122 转换器操作 伪差分模式 这款ADC集成了一个包含电荷采样输入级的逐次逼近型 (SAR)结构。该结构可在三种不同模式下工作:差分模式、 伪差分模式和单端模式。 在伪差分模式中,负通道(Channel−)连接到ADuC7122的 VIN−输入,SW2开关在A (Channel−)和B (VREF)之间进行切换。 VIN−输入必须接地或者接一低电压。VIN+上的输入信号的范 围为VIN-至VREF + VIN−。注意,必须恰当选择VIN−,不要使VREF + VIN−超过AVDD。在伪差分模式下,对于VIN−通道,只应使 能AINCM或PADCxN。ADCCN寄存器用于将Channel−设 置为AINCM或PADCxN,Channel+可利用ADCCP寄存器 来选择。 ADuC7122包含一个基于两个容性DAC的逐次逼近型ADC。 图18和图19分别为ADC采样阶段和转换阶段的简化原理示 意图。ADC由控制逻辑、一个SAR和两个容性DAC组成。 在信号采样阶段,如图18所示,SW3闭合,SW1和SW2都 置于A上,比较器保持在平衡状态,采样电容阵列充电, 采集输入端的差分信号。 CAPACITIVE DAC CHANNEL+ ADC0 CAPACITIVE DAC MUX ADC10 CS B A SW1 CHANNEL– A SW2 CS A ADC9 COMPARATOR CS SW3 VREF CONTROL LOGIC CONTROL LOGIC B PADCxP SW3 SW2 VIN– CAPACITIVE DAC CHANNEL– 图20. 伪差分模式下ADC VREF CAPACITIVE DAC 08755-018 B 图18. ADC采集阶段 当ADC启动转换(见图19)时,SW3断开,而SW1和SW2移 至位置B,使得比较器变得不平衡。转换开始时,两个输 入均会断开。控制逻辑和电荷再分配DAC可以加上和减去 采样电容阵列中的固定电荷数量,使得比较器恢复到平衡 状态。当比较器重新平衡后,转换就已经完成。控制逻辑 产生ADC的输出代码。注意这里驱动VIN+和VIN−输入的源 输出阻抗一定要匹配,否则两个输入的建立时间不同会导 致错误。差分模式的输入通道配置通过寄存器ADCCP和 ADCCN设置。 单端模式 在单端模式下,SW2始终内部接地。VIN−输入可悬空。VIN+ 引脚上的输入信号范围为0 V至VREF。ADuC7122有11个固定 增益ADC通道和2个可编程增益ADC通道,这些通道可利 用ADCCP寄存器使能。 CAPACITIVE DAC CHANNEL+ ADC0 MUX ADC10 B CS A SW1 CS COMPARATOR SW3 CONTROL LOGIC CHANNEL– CAPACITIVE DAC CAPACITIVE DAC MUX ADC10 CS B A SW1 CHANNEL– A SW2 CS 图21. 单端模式下ADC 模拟输入结构 COMPARATOR SW3 CONTROL LOGIC B VREF 图19. ADC转换阶段 CAPACITIVE DAC 08755-019 CHANNEL+ ADC0 08755-021 CHANNEL+ ADC0 A SW1 MUX COMPARATOR CS B 08755-020 差模 ADC模拟输入结构等效电路如图22所示,图中4个二极管 为模拟输入提供ESD保护。切记,模拟输入信号决不能超 过供电轨300 mV以上,否则会造成这些二极管正偏,并开 始向基板内传导电流。这些二极管可以导通但不会导致器 件彻底损坏的最大电流为10 mA。 图22中,电容C1典型值为4 pF,可基本上被归属为引脚寄生 电容。电阻是由开关阻抗构成的集总元件。电阻典型值为 100 Ω左右。电容C2为ADC采样电容,典型值为16 pF。 Rev. A | Page 33 of 96 ADuC7122 AVDD D C1 驱动模拟输入 该ADC既可以采用内部基准电压源,也可以采用外部基准 电压源。在差分工作模式下,共模输入信号(VCM)有所限制, 该限制取决于基准电压值和电源电压,用来确保信号始终 处于供电轨以内。 R1 C2 D AVDD D R1 C2 表35. VCM范围 D 08755-022 C1 表35给出了不同AVDD和VREF条件下一些计算出的VCM最小 值和最大值。 图22. 等效模拟输入电路转换阶段:开关打开, 采样阶段:开关关闭 在交流应用中,建议在相关模拟输入引脚用一个RC低通滤 波器来滤除模拟输入信号的高频成份。在对谐波失真和信 噪比要求严格的应用中,模拟输入应采用一个低阻抗源进 行驱动。较大源阻抗会显著影响该ADC的交流性能,并且 可能要求用一个输入缓冲放大器。通常根据具体应用来选 择运算放大器。图23和图24为ADC前端的示例。 08755-023 图23. 带缓冲的单端/伪差分输入 VCM 最大值 2.05 V 2.276 V 2.55 V 信号峰峰值 2.5 V 2.048 V 1.25 V 3.0 V 2.5 V 2.048 V 1.25 V 1.25 V 1.024 V 0.75 V 1.75 V 1.976 V 2.25 V 2.5 V 2.048 V 1.25 V 带隙基准电压源 带 隙 基 准 电 压 源 也 通 过 缓 冲 连 接 到 BUF_VREF1和 BUF_VREF2引脚,用作系统中其它电路的基准电压源。这 些引脚需连接至少0.1 μF的电容,以降低噪声。 ADuC7122 ADC0 VREF 带隙基准电压接口包括一个8位REFCON寄存器,如表36所 示。采用内部基准电压源执行ADC或DAC转换时,建议使 能REFCON的位0和位1。 08755-024 ADC1 VCM 最小值 1.25 V 1.024 V 0.75 V 该内部基准电压也出现在VREF_1.2和VREF_2.5引脚上。当采 用内部基准电压源时,VREF_1.2与AGND之间必须接上一个 470 nF的电容,VREF_2.5与AGND之间也必须接上一个470 nF 的电容,以确保ADC转换时的稳定性和快速响应。 ADC0 0.01µF VREF 2.5 V 2.048 V 1.25 V ADuC7122内置一个可用于ADC和DAC的2.5 V片内带隙基准 电压源。此2.5 V基准电压源产生自1.2 V基准电压源。 ADuC7122 10Ω AVDD 3.3 V 图24. 带缓冲的差分输入 不用放大器来驱动模拟输入端时,应将源阻抗限制在1 kΩ 以下。源阻抗最大值取决于可容许的总谐波失真(THD)。 总谐波失真随着输入源阻抗的增加而增大,从而导致ADC 性能下降。 ADC转换可采用外部基准电压源。要采用外部2.5 V基准电压 源执行ADC转换,应清除REFCON[1],并将该外部基准源 施加于VREF_2.5引脚。要采用外部1.2 V基准电压源,应清 除REFCON[0],并将该外部基准源施加于VREF_1.2引脚。 注意,将该外部基准源施加于VREF_1.2引脚时,会在内部 影响2.5 V基准源,因为2.5 V基准源是从1.2 V基准源产生。 Rev. A | Page 34 of 96 ADuC7122 电源监控器 当IOVDD电源引脚电压降到两个电源跳变点之一以下时, ADuC7122上的电源监控器就会给出提示。监控功能是通 过PSMCON寄存器来控制的。在IRQEN或FIQEN寄存器中 使能后,监控器使用PSMCON寄存器的PSMI位来中断内核。 CMP变为高电平后,该位会立即清0。注意,如果在CMP 变为高电平(IOVDD高于跳变点)之前退出所产生的中断,则 在CMP变回高电平之前都不会再次产生中断。用户应确保 在CMP变回高电平之前,代码执行仍在ISR内。 监控功能可以使用户保存当前工作寄存器中的数据,避免 由于电压不足或断电造成的数据丢失;它也可以确保直到 恢复安全电源时,代码正常重新执行。 当ADC通道选择位配置为IOVDD_MON (ADCCP[4:0] = 10011) 时,ADC可以转换电源监控比较器输入端的电压。测量内 部通道时,必须使能内部缓冲器。对任何内部通道进行采 样时,应使能内部缓冲器以隔离外部干扰。测量此电压之 前,需要执行以下步骤: 1. 2. 3. 4. 利用ADC测量VREF。 设置ADCCP = IOVDD_MON通道。 设置60 μs的典型延迟时间。 在IOVDD_MON通道上执行ADC转换(ADCCON使用值 0x2AA3以获得最佳结果)。 ADC多路复用器选择切换与转换启动之间的延迟时间用于 让ADC采样电容上的电压建立到分压后的电源电压。 表36. REFCON寄存器位功能描述(地址 = 0xFFFF0480,默认值 = 0x01) 位 7:1 2 1 0 说明 保留。 保留。始终置为1。此位用于将内部2.5 V基准源的缓冲版本输出到BUF_VREF1和BUF_VREF2上。要禁用此缓冲器,用户必须清除 REFCON ( = 0x00)以禁用内部基准源。 内部2.5 V基准电压输出使能。 用户置1时,内部2.5 V基准电压源接到VREF_2.5引脚。 用户清0时,基准电压源断开与VREF_2.5引脚的连接。要将外部基准电压源连接到VREF_2.5引脚,此位也应清0。 内部1.2 V基准电压输出使能。 用户置1时,内部1.2 V基准电压源接到VREF_1.2引脚。 用户清0时,基准电压源断开与VREF_1.2引脚的连接。 表37. PSMCON寄存器位功能描述(地址 = 0xFFFF0440;默认值 = 0x08或0x00,取决于器件电源电平) 位 7:4 3 名称 保留 CMP 说明 保留位。清0。 比较器位。只读位,可直接反映比较器状态。 该位为1表示IOVDD电压高于所选跳变点或PSM处于掉电模式。 该位为0表示IOVDD电压低于所选跳变点。在退出中断服务程序之前,该位应置1。 2 TP 1 PSMEN 0 PSMI 跳变点选择位。 0 = 2.79 V 1 = 3.07 V 电源监控器使能位。 用户置1时,使能电源监控器电路。 用户清0时,禁用电源监控器电路。 电源监控器中断位。CMP变为低电平时,该位会被ADuC7122置1,表明I/O电源电压偏低。PSMI位可用来中断处理 器。当CMP变为高电平时,通过对该位写1来清空PSMI位。写0则不影响PSMI位;由于没有超时延迟,所以一旦 CMP变为高电平,PSMI位可以立即被清0。 Rev. A | Page 35 of 96 ADuC7122 非易失性FLASH/EE存储器 ADuC7122片内集成Flash/EE存储器技术,向用户提供非易 失、在线可编程存储空间。 像EEPROM一样,闪存也支持系统内字节编程(尽管必须在 向存储器内写入新的数据之前将原有数据擦除)。擦除操作 是以页块为单位进行的。因而,通常闪存也被准确地称作 Flash/EE存储器。 总之,由于具有非易失性、在线编程、高密度及低成本等 特点,Flash/EE是更理想的存储设备。利用ADuC7122集成 的Flash/EE存储器,用户可以在线更新程序代码空间,而 不必在远程操作节点处替换一次性可编程(OTP)设备。 FLASH/EE存储器 如“概述”部分所示,Flash/EE存储器耐久性是根据JEDEC保 持期限规格A117在–10°至+95°C工业温度范围内测量出来 的。这个结果满足工业温度范围内不同电源电压下最小耐 久性达到10,000周期的规格。 保持期限衡量Flash/EE存储器长时间保持编程数据的能 力。器件在特定结温(TJ = 85°C)下根据标准JEDEC保持期限 规格(A117)进行测试。作为此测试程序的一部分,如前所 述,Flash/EE存储器循环工作的次数到达指定的耐久性限 值,然后确定数据保持特性。这表明每次对Flash/EE存储 器进行重新编程时,都保证Flash/EE存储器在完全指定的 保持期限内保持数据。注意:基于一个0.6 eV激活能的保持 时间随TJ递减,如图25所示。 ADuC7122内置两个64 kB的Flash/EE存储器阵列。在闪存模 块0中,低62 kB可供用户使用,高2 kB包含永久性嵌入式固 件,支持在线串行下载。另外,这2 kB嵌入式固件还包括上 电配置程序,用于将出厂校准系数下载到各种已校准的外 设,如带隙基准电压源等。用户代码无法访问这2 kB嵌入式 固件。用户无法读取、写入或擦除此页。在闪存模块1中, 所有64 kB的Flash/EE存储器均可供用户使用。 RETENTION (Years) 600 在串行下载模式或JTAG模式下,可对126 kB的Flash/EE存储 器进行在线编程。 450 300 150 Flash/EE存储器可靠性 0 ADuC7122的Flash/EE存储器阵列完全满足两大Flash/EE存 储器关键特性要求:周期耐久性和数据保持期限。 耐久性用于衡量Flash/EE存储器重复多个编程、读取及擦 除周期的能力。一个单耐久性周期包括4个独立的、连续 的事件: 1. 2. 3. 4. 初始页面擦除时序 读/校验单个Flash/EE时序 存储器的字节编程时序 二次读/校验耐久性周期时序 在进行可靠性验证时,要测试各Flash/EE存储器模块的三 个不同页块。各Flash/EE存储器模块顶部、中部和底部的 完整Flash/EE页面循环存取10,000次(从0x0000至0xFFFF)。 08755-026 FLASH/EE存储器概述 30 40 55 70 85 100 125 135 150 JUNCTION TEMPERATURE (°C) 图25. Flash/EE存储器数据保持期限 串行下载(在线编程) ADuC7122可利用I2C串行端口下载代码。如果BM引脚通过 一个1 kΩ的外部下拉电阻下拉到低电平,ADuC7122就会在 复位或上电周期后进入到串行下载模式。它与闪存中地址 0x00014的状态一起使用。如果此地址为0xFFFFFFFF且BM 引脚被拉低,器件就会进入下载模式;如果此地址包含任 何其它值,则执行用户代码。在串行下载模式下,用户可 以向Flash/EE的整个126 kB Flash/EE存储器空间内下载代码 (尽管该器件在其目标应用硬件中为在线状态)。开发系统 提供PC可执行串行下载程序和硬件适配板,支持通过I2C进 行串行下载。对于I2C下载器,I2C最大容许波特率为100 kHz。 JTAG访问 JTAG协议允许借助片内JTAG接口进行代码下载和调试。 Rev. A | Page 36 of 96 ADuC7122 FLASH/EE存储器安全性 提供给用户的126 kB Flash/EE存储区域实现了读写保护。通 过配置FEE0PRO/FEE0HID寄存器的第31位,可以保护模块0 的这62 kB,使其不能通过JTAG或串行下载器读取。该寄存 器的其他31位可以保护Flash/EE存储器不被写入;每一位 保护4页,即2 kB。写保护对所有类型的访问都有效。同样, FEE1PRO和FEE1HID保护闪存模块1。通过配置FEE1PRO/ FEE1HID寄存器的第31位,可以保护模块1的这64 kB,使其 不能通过JTAG读取。位30保护模块1的前8页不被写入。该 寄存器的其他30位可以保护Flash/EE存储器不被写入;每 一位保护4页,即2 kB。 三种级别保护 密钥写入时序如下例所示(保护Flash/EE存储器的第4页到 第7页): FEE0PRO=0xFFFFFFFD; FEE0MOD=0x48; FEE0ADR=0x1234; FEE0DAT=0x5678; FEE0CON= 0x0C; //Protect pages 4 to 7 //Write key enable //16 bit key value //16 bit key value // Write key command 如果要永久保护器件,应该用同样的时序再写一次密钥,但 要注意此时FEExADR = 0xDEAD且FEExDAT = 0xDEADDEAD。 FLASH/EE控制接口 表38. FEE0DAT寄存器 名称 FEE0DAT 地址 0xFFFF0E0C 默认值 0xXXXX 可通过直接写入FEExHID寄存器来设定或取消保护。复位 后,保护失效。 FEE0DAT是一个16位数据寄存器。 可通过写入FEExPRO寄存器来设定保护。只有在一个保存 保护命令(0x0C)和复位以后才生效。FEExPRO寄存器采用 一个密钥保护来避免直接访问。一旦密钥被保存,必须再 次输入此密钥才可更改FEExPRO。批量擦除可以将密钥设 回0xFFFF,但同时也会擦除所有的用户代码。 名称 FEE0ADR 通过FEExPRO寄存器和一个特定密钥值(0xDEADDEAD)可 以永久保护Flash/EE存储器中的数据。此时即使再次输入 密钥也不允许更改FEExPRO寄存器。 访问类型 R/W 表39. FEE0ADR寄存器 地址 0xFFFF0E10 默认值 0x0000 访问类型 R/W FEE0ADR是一个16位地址寄存器。 表40. FEE0SGN寄存器 名称 FEE0SGN 地址 0xFFFF0E18 默认值 0xFFFFFF 访问类型 R 默认值 0x00000000 访问类型 R/W FEE0SGN为24位编码签名。 表41. FEE0PRO寄存器 密钥写入时序 1. 写入FEExPRO寄存器的某一位,相应页面会被保护; 2. 将FEExMOD寄存器的第6位置1(第5位必须为0),使能密 钥保护; 3. 将一个32位密钥写入FEExADR和FEExDAT寄存器; 4. 在FEExCON寄存器中运行写密钥命令0x0C,通过监测 FEExSTA等待读取成功; 5. 复位器件。 要取消或修改保护,可使用相同的序列,同时修改 FEExPRO值。如果密钥选择的值是0xDEADDEAD,则无 法取消存储器保护。只有批量擦除能够取消器件保护,但 它也会擦除所有用户代码。 名称 FEE0PRO 地址 0xFFFF0E1C FEE0PRO在随后的复位后提供保护。它需要一个软件密钥 (见表57)。如上所述,FEExPRO寄存器从位30到位0的各位 保护2 kB的存储器模块,即设置位0为低电平可保护页0至 页3,设置位2为低电平可保护页8至页11。 表42. FEE0HID寄存器 名称 FEE0HID 地址 0xFFFF0E20 默认值 0xFFFFFFFF 访问类型 R/W FEE0HID提供立即保护。它不需要任何软件密钥(见表57)。 批量擦除命令执行序列 FEE0DAT = 0x3CFF; FEE0ADR = 0xFFC3; FEE0MOD = FEE0MOD|0x8; //Erase key enable FEE0CON = 0x06; //Mass erase command Rev. A | Page 37 of 96 ADuC7122 表43. FEE1DAT寄存器 名称 FEE1DAT 地址 0xFFFF0E8C 默认值 0xXXXX 访问类型 R/W FEE1DAT是一个16位数据寄存器。 地址 0xFFFF0E90 默认值 0x0000 访问类型 R/W FEE1ADR是一个16位地址寄存器。 地址 0xFFFF0E98 地址 0xFFFF0E00 名称 FEE1STA 地址 0xFFFF0E80 默认值 0xFFFFFF 访问类型 R 名称 FEE0MOD 地址 0xFFFF0E04 表51. FEE1MOD寄存器 表46. FEE1PRO寄存器 名称 FEE1MOD 地址 0xFFFF0E9C 默认值 0x00000000 访问类型 R/W 地址 0xFFFF0E84 名称 FEE0CON 表47. FEE1HID寄存器 表53. FEE1CON寄存器 地址 0xFFFF0EA0 默认值 0x0000 访问类型 R 默认值 0x80 访问类型 R/W 默认值 0x80 访问类型 R/W 默认值 0x0000 访问类型 R/W 默认值 0x0000 访问类型 R/W 表52. FEE0CON寄存器 FEE1PRO在随后的复位后提供保护。它需要一个软件密钥 (见表58)。 名称 FEE1HID 访问类型 R 表49. FEE1STA寄存器 FEE1SGN为24位编码签名。 名称 FEE1PRO 默认值 0x0000 表50. FEE0MOD寄存器 表45. FEE1SGN寄存器 名称 FEE1SGN 表48. FEE0STA寄存器 名称 FEE0STA 表44. FEE1ADR寄存器 名称 FEE1ADR FEE1HID提供立即寄存器保护。它不需要任何软件密钥(见 表58)。 默认值 0xFFFFFFFF 访问类型 R/W 名称 FEE1CON Rev. A | Page 38 of 96 地址 0xFFFF0E08 地址 0xFFFF0E88 ADuC7122 表54. FEExSTA寄存器位功能描述 位 15:6 5 4 3 说明 保留。 保留。 保留。 Flash/EE中断状态位。 发生中断时,即命令结束且FEExMOD寄存器的Flash/EE中断使能位置1时,自动置1。 读取FEExSTA寄存器后,该位清0。 Flash/EE控制器繁忙。 当控制器忙时,该位自动置1; 当控制器空闲时,该位自动清0。 命令失败。 当命令的执行失败时,该位自动置1; 读取FEExSTA寄存器后,该位自动清0。 命令完成。 当命令完成时,ADuC7122将该位置1。 读取FEExSTA寄存器后,该位自动清0。 2 1 0 表55. FEExMOD寄存器位功能描述 位 7:5 4 说明 保留。这些位应始终设置为0(写闪存控制密钥的情况除外)。 Flash/EE中断使能。 用户将该位置1,使能Flash/EE中断。当处理器执行完一条命令后,将产生中断。 用户清0,禁用Flash/EE中断。 擦/写命令保护。 用户将该位置1,使能擦/写命令。 该位清0,防止对Flash/EE存储器执行擦/写命令。 保留。用户应始终将该位置0。 Flash/EE等待状态。为使更改生效,两个Flash/EE模块必须具有相同的等待状态值。 3 2 1:0 表56. FEExCON中的命令代码 代码 0x00 1 0x011 0x021 0x031 0x041 0x051 0x061 命令 零点 单次读取 单次写入 擦/写 单次验证 单次擦除 批量擦除 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 保留 保留 保留 保留 签名 保护 保留 保留 Ping 2 F0 1 说明 空闲状态。 将FEExADR索引的16位数据载入FEExDAT。 在FEExADR指向的地址处写入FEExDAT。此操作耗时50 μs。 擦除FEExADR索引的页并在FEExADR指向的位置处写入FEExDAT。此操作耗时20 ms。 将FEExADR指向的位置内容和FEExDAT内的数据进行比较。比较的结果由FEExSTA的第1位显示。 擦除FEExADR索引的页。 擦除用户空间。模块0中的2 kB内核空间是受保护的。此项操作需要2.48 s。为了防止误操作,执行该命令 需要一个命令序列。 保留。 保留。 保留。 保留。 将64 kB Flash/EE的一个签名写入24位FEExSIGN寄存器中。此项操作需要32,778个时钟周期。 此命令只能运行一次。保存FEExPRO值并只能利用批量擦除(0x06)或密钥加以清除。 保留。 保留。 无操作,使能中断。 执行完这些命令后,FEExCON寄存器总是立即读取0x07。 Rev. A | Page 39 of 96 ADuC7122 表57. FEE0PRO和FEE0HID寄存器位功能描述 位 31 30:0 说明 读保护位。 用户清0,保护模块0。 用户将该位置1,允许读取模块0。 第123页到第0页的写保护。每一位保护4页。 用户清0,在闪存写操作时为这些页面提供写保护。防止意外写入闪存中的特定页面。 用户置1,允许写入这些页面。 表58. FEE1PRO和FEE1HID寄存器位功能描述 位 31 30 29:0 说明 读保护位。 用户清0,保护模块1。 用户将该位置1,允许读取模块1。 第127页到第120页的写保护。 用户清0,在闪存写操作时为这些页面提供写保护。防止意外写入闪存中的特定页面。 用户置1,允许写入这些页面。 第119页到第0页的写保护。每一位保护4页。 用户清0,在闪存写操作时为这些页面提供写保护。防止意外写入闪存中的特定页面。 用户置1,允许写入这些页面。 SRAM和FLASH/EE执行时间 本部分介绍在执行时间关键的应用中SRAM和Flash/EE的执 行访问时间。 SRAM执行时间 因为一个最小时钟周期为22 ns,而访问SRAM所需的时间为 2 ns,所以从SRAM中取指令只需一个时钟周期。尽管如此, 当指令涉及到读取或写入存储器时,若数据在SRAM中时, 则需要增加一个时钟周期;若数据在Flash/EE中时,则需 要增加三个时钟周期:一个周期用来执行指令,两个周期 用来从Flash/EE中获得32位数据。控制流指令(如转移指令) 取指令需要一个周期,用新指令填充流水线又需要两个 周期。 当所执行的指令中包含使用Flash/EE进行数据存储的指令 时,这两种模式下所用的时间相同。如果指令为控制流指 令,除了需要1个额外的时钟周期来解码程序计数器的新 地址外,还需要4个时钟周期来填充流水线。如果数据处 理指令只涉及内核寄存器,则不需要任何额外的时钟周 期,但如果涉及Flash/EE中的数据,则额外需要1个时钟周 期来解码数据的地址,然后用2个时钟周期来从Flash/EE中 获得32位数据。在取另一个指令之前,需要外加一个时钟 周期。对于数据传输指令,执行时间更复杂,具体如表59 所示。 表59. ARM/Thumb模式下指令的执行周期 读取 周期 2/1 2/1 2/1 2/1 2/1 2/1 死区 时间 1 1 N 1 1 N 因为Flash/EE为16位,而读取16位字的时间为23 ns,所以从 Flash/EE执行指令无法在1个周期内完成。这与SRAM取指 令相反,当CD位=0时,从SRAM执行指令能够在一个周期 内完成。根据指令不同,无论CD位为何值,在访问数据 之前可能需要一定的死区时间。 在ARM模式下,指令是32位的,当CD=0时,需要2个时钟 周期来读取一个指令;在Thumb模式下,指令是16位的, 读取任何指令都只需要1个时钟周期。 1 < N ≤ 16,N是多重载入/存储指令中欲载入或存储的数据 字节数。一条SWAP指令包含LD和STR这两条指令,而且 只读取一次,共需8个时钟周期加40 μs。 Flash/EE的执行时间 Rev. A | Page 40 of 96 数据访问 2 1 2×N 2 × 20 µs 20 µs 2 × N × 20 µs 死区 时间 1 1 N 1 1 N 指令 LD LDH LDM/PUSH STR STRH STRM/POP ADuC7122 复位和重映射 重映射操作 ARM异 常 矢 量 全 部 位 于 存 储 器 阵 列 的 底 部 , 从 地 址 0x00000000到地址0x00000020,如图26所示。 ADuC7122发生复位时,会自动执行工厂内置的程序代码。 该内核是隐藏的,用户代码无法访问。如果ADuC7122在 正常模式工作(BM引脚为高电平),先执行内核的上电配置 程序,并跳转到复位矢量地址0x00000000,然后执行用户 的复位异常程序。因为复位后,Flash/EE被镜像到存储器 阵列的底部,所以复位中断程序一定要写在Flash/EE中。 0xFFFFFFFF KERNEL 通过将REMAP寄存器的位0置1,便可配置从Flash/EE执行 存储器重映射。必须注意从Flash/EE的地址0x00080020上 方开始执行此命令,而不能从阵列底部开始执行,因为这 部分已被SRAM所取代。 0x0009F800 FLASH/EE INTERRUPT SERVICE ROUTINES 0x00080000 0x00041FFF INTERRUPT SERVICE ROUTINES 这个操作是可逆的:通过将REMAP寄存器的位0清0, Flash/EE可以重映射到地址0x00000000。在镜像区域以外 的地方执行映射操作时必须小心,任何形式的复位都会把 Flash/EE存储器映射到存储器阵列的底部。 SRAM 0x00040000 0x00000020 0x00000000 0x00000000 08755-027 MIRROR SPACE ARM EXCEPTION VECTOR ADDRESSES 图26. 异常重映射 默认情况下,复位之后,Flash/EE会被镜像到存储器阵列 的底部。凭借重映射功能,程序员可将SRAM镜像到存储 器阵列的底部,便于从SRAM而不是从Flash/EE执行异常程 序 。 这 意 味 着 在 32位 ARM模 式 下 执 行 异 常 程 序 时 , 在 SRAM中执行的速度要快一倍,因为SRAM的带宽为32位, 而Flash/EE带宽为16位。 复位操作 一共有四种类型的复位:外部复位、上电复位、看门狗到 期复位及软件强制复位。RSTSTA寄存器会指示最近复位 的源类型,RSTCLR则可清除RSTSTA寄存器。在复位异常 服务程序执行时,可以使用这两种寄存器来识别复位源。 如果RSTSTA为空,则为外部复位。注意:当清除RSTSTA 时,当前为1的所有位都必须清0,否则将发生复位事件。 RSTCFG寄存器允许不同外设在看门狗复位或软件复位后 保持状态不变。 表60. REMAP寄存器位功能描述(地址 = 0xFFFF0220,默认值 = 0x00) 位 0 名称 Remap 说明 重映射位。 用户将该位置1,将SRAM重映射到0x00000000。 重映射Flash/EE到地址0x00000000后该位自动清0。 表61. RSTSTA寄存器位功能描述(地址 = 0xFFFF0230,默认值 = 0x0X) 位 7:3 2 1 0 说明 保留。 软件复位。 用户将该位置1,强行使用软件复位; 通过设置对应RSTCLR位清0。 看门狗超时。 看门狗定时器超时该位自动置1; 通过设置对应RSTCLR位清0。 上电复位。 发生上电复位时自动设置。 通过设置对应RSTCLR位清0。 Rev. A | Page 41 of 96 ADuC7122 RSTCFG寄存器 RSTKEY1寄存器 B801 B901 名称: RSTCFG 名称: RSTKEY1 地址: 0xFFFF024C 地址: 0xFFFF0248 默认值: 0x00 默认值: 不适用 访问类型: 读/写 访问类型: 写操作 RSTKEY2寄存器 表62. RSTCFG寄存器位功能描述 位 7至3 2 1 0 B01 说明 保留。始终置为0。 通过将该位置1,可配置DAC输出在看门狗复位或软 件复位后保持状态不变。 通过将该位清0,DAC引脚和寄存器即会返回其默认 状态。 保留。始终置为0。 通过将该位置1,可配置GPIO引脚在看门狗复位或软 件复位后保持状态不变。 通过将该位清0,GPIO引脚和寄存器即会返回其默认 状态。 名称: RSTKEY2 地址: 0xFFFF0250 默认值: 不适用 访问类型: 写操作 表63. RSTCFG写序列 名称 RSTKEY1 RSTCFG RSTKEY2 Rev. A | Page 42 of 96 代码 0x76 用户设定值 0xB1 ADuC7122 其他模拟外设 DAC 寄存器接口 ADuC7122片内集成12个12位缓冲电压输出DAC。每个DAC 都有一个轨到轨电压输出缓冲器,驱动能力为5 kΩ/100 pF。 每个DAC都可通过一个控制寄存器和一个数据寄存器独立 配置。对于这12个DAC来说,这两个寄存器是相同的。本 部分介绍DACxCON和DACxDAT(参见表64至表67)的具体 功能。 每个DAC都有两个可选电压输出范围:0 V至VREF(内部2.5 V 带隙基准电压源)和0 V至AVDD。最大信号范围为0 V至AVDD。 AVDD AVDD VREF VREF DAC_REBUF DAC_REBUF SW_A0 SW_A12 SW_B0 SW_B11 STRING DAC STRING DAC SW_C0 SW_C11 SW_D0 SW_D11 DAC0 DAC11 DAC_BUF 08755-028 DAC_BUF 图27. DAC配置 SW_B HCLK DATA_REG 12 SW_C STRING DAC TIMER1 DACx 08755-029 DAC_BUF 图28. DAC用户功能 表64. DACxCON寄存器 名称 DAC0CON DAC1CON DAC2CON DAC3CON DAC4CON DAC5CON DAC6CON DAC7CON DAC8CON DAC9CON DAC10CON DAC11CON 地址 0xFFFF0580 0xFFFF0588 0xFFFF0590 0xFFFF0598 0xFFFF05A0 0xFFFF05A8 0xFFFF05B0 0xFFFF05B8 0xFFFF05C0 0xFFFF05C8 0xFFFF05D0 0xFFFF05D8 默认值 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100 Rev. A | Page 43 of 96 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ADuC7122 表65. DACxCON寄存器位功能描述 位 15:9 8 值 0 1 名称 7 6 0 0 BYP 5 0 DACCLK 4 0 DACCLR 3 2 1:0 0 0 DACPD DACRNx 00 01 10 11 说明 保留。 DAC掉电。 用户置1时,DACOUTx进入三态模式。 保留。 DAC旁路位。 该位置1时,旁路DAC缓冲器。清0时,缓冲DAC输出。 DAC更新速率。 通过将该位置1,用户可使用定时器1来更新DAC。 通过将该位清0,用户可使用HCLK(内核时钟)来更新DAC。 DAC清除位。 用户置1时,使能DAC正常工作。 用户清0时,复位DAC数据寄存器为0。 保留。 保留。始终清0。 保留。始终清0。 VREF/AGND。 保留。 保留。 AVDD/AGND。 表66. DACxDAT寄存器 名称 DAC0DAT DAC1DAT DAC2DAT DAC3DAT DAC4DAT DAC5DAT DAC6DAT DAC7DAT DAC8DAT DAC9DAT DAC10DAT DAC11DAT 地址 0xFFFF0584 0xFFFF058C 0xFFFF0594 0xFFFF059C 0xFFFF05A4 0xFFFF05AC 0xFFFF05B4 0xFFFF05BC 0xFFFF05C4 0xFFFF05CC 0xFFFF05D4 0xFFFF05DC 默认值 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 表67. DACxDAT寄存器位功能描述 位 31:28 27:16 15:12 11:0 说明 保留。 DACx的12位数据。 保留。 保留。 Rev. A | Page 44 of 96 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ADuC7122 DAC的使用 AVDD 片内DAC架构由一电阻串DAC和一个输出缓冲放大器构成。 功能等效框图如图29所示。 AVDD – 100mV AVDD VREF R R DAC0 0x00000000 0x0FFF0000 08755-031 100mV R 图30. 放大器饱和引起的端点非线性 R 08755-030 R 图29. DAC结构 如图29所示,用户可在软件中选择各DAC的基准电压源。 基准电压源可为AVDD或VREF。在0 V至AVDD模式中,DAC输 出传递函数范围为0 V至AVDD引脚电压。在0 V至VREF模式中, DAC输出传递函数范围为0 V至2.5 V内部基准电压VREF。 每个DAC输出缓冲放大器都有一个真轨到轨输出级。也就 是说,当输出空载时,DAC输出摆幅能够达到AVDD或地电 平的5 mV范围以内。此外,当驱动一个5 kΩ阻性负载到地 时,除了代码0至100(在0至AVDD模式中为代码3995至4095) 外,整个传递函数都能保证符合DAC线性度规格要求。 地和AVDD附近的线性度下降是由输出放大器的饱和引起 的,图30反映了这种效应的一般表现(失调和增益误差忽略 不计)。图30中的虚线为理想的传递函数,实线代表转换可 能具有端点非线性(由输出放大器饱和引起)的传递函数。 注意,图30仅代表输入范围为0至AV DD 模式时的传递函 数。在0 V至VREF模式(VREF < AVDD)下,下半部分的非线性 度是相似的。然而,传递函数的上半部分一直到端点都表 现为理想的线性(这里采用VREF,而非AVDD),这说明DAC 输出没有端点线性误差。 当 输 出 有 负 载 时 , 图 30中 的 端 点 非 线 性 会 变 得 更 差 。 ADuC7122数据手册中的技术参数是在DAC输出端接有一 个接地的5 kΩ阻性负载的条件下得到的。由于DAC输出被强 制提供更多的源电流或吸电流,图30中的顶部或底部非线 性区域将变得更大。而当需要更大电流时,这会明显地限 制输出电压摆幅。 通过写入RSTCFG寄存器,可以配置DAC在看门狗或软件 复位后保留输出电压。 LDO(低压差稳压器) ADuC7122集成一个LDO,它从IOVDD电源产生约2.6 V的内 核电源电压(LVDD)。由于LDO是从IOVDD驱动,因此 IOVDD电源电压需要大于2.7 V。 必须将一个低等效串联电阻(ESR)的0.47 μF外部补偿电容(CT) 紧挨着LVDD引脚放置。此电容还用作电荷储存库,供应 内核所需的瞬时电荷,特别是在内核时钟(HCLK)的正边沿。 LDO产生的LVDD电压仅用于为ADuC7122提供电源。因 此,用户不应将LVDD引脚用作其他芯片的电源。此外, IOVDD引脚应具有良好的电源去耦,以便提高LDO的线性 稳压性能。 LVDD引脚无电池反接、限流或热关断保护;因此,在正 常工作或电路板制造期间,ADuC7122的用户任何时候都 不得将此引脚短接至地。 Rev. A | Page 45 of 96 ADuC7122 振荡器和锁相环—电源控制 ADuC7122集成有一个32.768 kHz振荡器、一个时钟分频器和 一个锁相环(PLL)。PLL可以锁住多个(1275)内部振荡器, 为系统提供一个稳定的41.78 MHz时钟。为了省电,内核可 以工作在该频率或该频率的二进制约数上。默认的内核时 钟为PLL时钟的8分频(CD = 3)或5.2 MHz。内核时钟频率可 以通过ECLK引脚输出,如图31所示。注意,当使用ECLK 引脚输出内核时钟时,输出信号未经缓冲,在不使用外部 缓冲器的情况下,不适合用作外部器件的时钟源。 源代码示例 B31 T2LD = 5; T2CON = 0x480; while ((T2VAL == t2val_old) || (T2VAL > 3)) //ensures timer value loaded IRQEN = 0x10; //enable T2 interrupt PLLKEY1 = 0xAA; PLLCON = 0x01; PLLKEY2 = 0x55; ADuC7122支持掉电模式。 工作模式、时钟模式和可编程时钟分频器通过两个寄存器 PLLCON(参见表75)和POWCON(参见表76)进行控制。 PLLCON控制时钟系统的工作模式,而POWCON控制内核 时钟频率和掉电模式。 WATCHDOG TIMER INT. 32kHz1 OSCILLATOR 在高噪声环境中,噪声会耦合到外部晶振引脚,PLL可能 会暂时失锁。中断控制器就会出现PLL中断。内核时钟立 即挂起,只有在锁相恢复后才能处理该中断。 XTALO CRYSTAL OSCILLATOR POWKEY1 = 0x01; POWCON = 0x27; // Set Core into Nap mode POWKEY2 = 0xF4; XTALI 为了避免晶振失振,应该使用看门狗定时器。一般在初始 化期间,应对RSTSTA进行测试,判断有没有来自看门狗 定时器的复位信号。 TIMERS AT POWER-UP OCLK 32.768kHz PLL 41.78MHz 外部时钟选择 XCLK2 要切换到P1.4上的外部时钟,应在模式2下配置P1.4。外部 时钟频率最高可达41.78 MHz,容差为1%。 MDCLK UCLK I2C CD CORE ANALOG PERIPHERALS 源代码示例 /2CD B41 T2LD = 5; HCLK TCON = 0x480; ECLK3 while ((T2VAL == t2val_old) || (T2VAL > 3)) //ensures timer value loaded 08755-032 NOTES 1. 32.768kHz ± 3%. 2. TO USE THE SECONDARY FUNCTION OF P1.4 AS XCLK, PLLCON BITS[1:0] MUST EQUAL 11. 3. WHEN THE SECONDARY FUNCTION FOR P1.4 IS SET TO 2 (THAT IS, GP1CON[17:16] = 10), THE ECLK FUNCTION IS SELECTED BY DEFAULT. 图31. 时钟系统 外部晶振选择 要切换到外部晶振,用户必须执行以下步骤: 1. 使能定时器2中断,将其超时时间配置为120 μs以上。 2. 执行PLLCON寄存器的写序列,将MDCLK位设为01, 将OSEL位清0。 3. 执行POWCON寄存器的正确写序列,强制器件进入浅 睡眠(nap)模式。 4. 当定时器2中断源中断器件,使其离开浅睡眠模式时, 时钟源便切换到外部时钟。 IRQEN = 0x10; //enable T2 interrupt PLLKEY1 = 0xAA; PLLCON = 0x03; //Select external clock PLLKEY2 = 0x55; POWKEY1 = 0x01; POWCON = 0x27; // Set Core into Nap mode POWKEY2 = 0xF4; Rev. A | Page 46 of 96 ADuC7122 电源控制系统 ADuC7122支持多种工作模式选项。表68说明了不同模式 下ADuC7122的哪些模块上电,并给出了上电时间。表69 给出了不同模式下的总功耗(模拟+数字电源电流)在不同时 钟分频器位下的一些典型值(ADC关闭)。请注意,这些值 也包括测量时稳压器和测试板上其他一些器件的功耗。 表68. 工作模式 模式 有效 暂停 浅休眠 休眠 停止 内核 开 外设 开 开 PLL 开 开 开 XTAL/定时器2/定时器3 开 开 开 开 CD = 1 21.2 13.3 3.8 0.25 0.25 CD = 2 13.8 8.5 3.8 0.25 0.25 XIRQ 开 开 开 开 开 启动/上电时间 130 ms(CD = 0) 24 ns (CD = 0);3.06 μs (CD = 7) 24 ns (CD = 0);3.06 μs (CD = 7) 1.58 ms 1.7 ms 表69. 25°C时的典型功耗 PC[2:0] 000 001 010 011 100 模式 有效 暂停 浅休眠 休眠 停止 CD = 0 30 22.7 3.8 0.25 0.25 CD = 3 11 6.1 3.8 0.25 0.25 Rev. A | Page 47 of 96 CD = 4 8.1 4.9 3.8 0.25 0.25 CD = 5 7.2 4.3 3.8 0.25 0.25 CD = 6 6.7 4 3.8 0.25 0.25 CD = 7 6.45 3.85 3.8 0.25 0.25 ADuC7122 寄存器和密钥 为了防止意外编程,写入PLLCON和POWCON寄存器时必 须遵循特定的顺序(参见表74)。 表70. PLLKEYx寄存器 名称 PLLKEY1 PLLKEY2 地址 0xFFFF0410 0xFFFF0418 默认值 0x0000 0x0000 访问类型 W W 表75. PLLCON寄存器位功能描述 位 7:6 5 地址 0xFFFF0414 默认值 0x21 地址 0xFFFF0404 0xFFFF040C 地址 0xFFFF0408 MDCLK 说明 保留。 32 kHz PLL输入选择。 用户置1时,使用内部32 kHz振荡器。 默认置1。 用户清0时,使用外部32 kHz晶振。 保留。 时钟模式。 保留。 PLL默认配置。 保留。 P1.4引脚上的外部时钟。 表76. POWCON寄存器位功能描述 默认值 0x0000 0x0000 访问类型 W W 默认值 0x03 访问类型 R/W 表74. PLLCON和POWCON写时序 PLLCON PLLKEY1 = 0xAA PLLCON = 0x01 PLLKEY2 = 0x55 OSEL 00 01 10 11 位 7 6:4 POWCON POWKEY1 = 0x01 POWCON =用户值 POWKEY2 = 0xF4 值 名称 PC 000 001 010 011 表73. POWCON寄存器 名称 POWCON 名称 0 访问类型 R/W 表72. POWKEYx寄存器 名称 POWKEY1 POWKEY2 1 4:2 1:0 表71. PLLCON寄存器 名称 PLLCON 值 100 其它 3 2:0 RSVD CD 000 001 010 011 100 101 110 111 Rev. A | Page 48 of 96 说明 保留。 工作模式。 有效模式。 暂停模式。 浅休眠。 休眠模式。IRQ0至IRQ3和定时器2 可以唤醒ADuC7122。 停止模式。 保留。 保留。 CPU时钟分频器位。 41.779200 MHz。 20.889600 MHz。 10.444800 MHz。 5.222400 MHz。 2.611200 MHz。 1.305600 MHz。 654.800 kHz。 326.400 kHz。 ADuC7122 数字外设 PWM概述 ADuC7122集成了一个6通道PWM接口。PWM输出即可用 于驱动H桥或也可作为标准PWM输出。上电后,PWM输 出的默认为H桥。这可以确保在默认状态下H桥控制电机 是关闭的。在标准PWM模式下,从三对PWM引脚内输出 信号。用户既可以控制每一对输出引脚的工作周期,又可 以单独控制每一个输出端的占空比。 HIGH SIDE (PWM1) LOW SIDE (PWM2) 表77. PWM寄存器 PWM1COM2 名称 功能 PWM1COM1 PWMCON1 PWM1COM1 PWM1COM2 PWM1COM3 PWM1LEN PWM2COM1 PWM2COM2 PWM2COM3 PWM2LEN PWM3COM1 PWM3COM2 PWM3COM3 PWM3LEN PWMCON2 PWMICLR PWM控制 用于比较PWM输出1和PWM输出2的比较寄存器1 用于比较PWM输出1和PWM输出2的比较寄存器2 用于比较PWM输出1和PWM输出2的比较寄存器3 用于PWM输出1和PWM输出2的频率控制寄存器 用于比较PWM输出3和PWM输出4的比较寄存器1 用于比较PWM输出3和PWM输出4的比较寄存器2 用于比较PWM输出3和PWM输出4的比较寄存器3 用于PWM输出3和PWM输出4的频率控制寄存器 用于比较PWM输出5和PWM输出6的比较寄存器1 用于比较PWM输出5和PWM输出6的比较寄存器2 用于比较PWM输出5和PWM输出6的比较寄存器3 用于PWM输出5和PWM输出6的频率控制寄存器 PWM转换开始控制 PWM中断清除寄存器 PWMxCOMx寄存器用于控制在各种模式下改变PWM输出 状态的时间点。第一对PWM输出(PWM1和PWM2)示例如 图32所示。 08755-033 PWM1COM3 PWM1LEN 图32. PWM时序 PWM时钟可通过PWMCON1选择,UCLK分频值如下:2、 4、8、16、32、64、128或256。PWMxLEN用于设定PWM 周期长度。 PWM波形由16位定时器的计数值和比较寄存器的内容来 决定,如图32所示的PWM1和PWM2波形。 当定时器计数值达到PWM1LEN时,低端波形PWM2变为 高电平;当定时器计数值达到PWM1COM3内所保存的数 值或者当高端波形PWM1变为低电平时,PWM2变为低 电平。 当定时器计数值达到PWM1COM1内所保存的数值时,高 端 波 形 PWM1变 为 高 电 平 ; 当 定 时 器 计 数 值 达 到 PWM1COM2内所保存的数值时,PWM1变为低电平。 在H桥模式下,HMODE = 1,并通过表78确定PWM输出。 表78. PWMCON1寄存器位功能描述(地址 = 0xFFFF0F80,默认值 = 0x0012) 位 名称 说明 该位为保留位。 15 保留 14 SYNC 使能PWM同步功能。 用户将该位置1时,检测到SYNC引脚上发生由高到低跃迁后,所有PWM计数器将在下一个时钟沿复位。 用户将该位清0时,忽略SYNC引脚上发生的跃迁。 13 PWM6INV 通过将该位置1,用户可将PWM6反相。 通过将该位清0,用户可将PWM6置于正常模式下。 12 PWM4NV 通过将该位置1,用户可将PWM4反相。 通过将该位清0,用户可将PWM4置于正常模式下。 11 PWM2INV 通过将该位置1,用户可将PWM2反相。 通过将该位清0,用户可将PWM2置于正常模式下。 10 PWMTRIP 通过将该位置1,用户可使能PWM触发中断。当PWMTRIP输入为低电平时,PWMEN位清0,且产生中断。 通过将该位清0,用户可禁用PWMTRIP中断。 如果HOFF = 0且HMODE = 1。 9 ENA 通过将该位置1,用户可使能PWM输出。 通过将该位清0,用户可禁用PWM输出。 如果HOFF = 1且HMODE = 1,请参见表79。 如果不是在H桥模式下,此位无作用。 Rev. A | Page 49 of 96 ADuC7122 位 8:6 名称 PWMCP[2:0] 5 POINV 4 HOFF 3 LCOMP 2 DIR 1 HMODE 0 PWMEN 说明 PWM时钟预分频器位。设置UCLK分频数。 000 = UCLK/2。 001 = UCLK/4。 010 = UCLK/8。 011 = UCLK/16。 100 = UCLK/32。 101 = UCLK/64。 110 = UCLK/128。 111 = UCLK/256。 通过将该位置1,用户可使所有PWM输出反相。 如果用户将该位清0,则允许正常的PWM输出。 屏蔽高端。 通过将该位置1,用户可强制PWM1和PWM3输出高电平信号。这样做还可强制PWM2和PWM4输出低电平信号。 如果用户将该位清0,则允许正常的PWM输出。 载入比较寄存器。 用户置1后,在PWM定时器进行从0x00到0x01的下一次跃迁时,PWMxCOMx的值将被载入内部比较寄存器。 如果用户件该位清0,则允许使用保存在内部比较寄存器中的数值。 方向控制。 用户置1时,当PWM3和PWM4处于低电平状态时,使能PWM1和PWM2作为输出信号。 用户清0时,当PWM1和PWM2处于低电平状态时,使能PWM3和PWM4作为输出信号。 启用H桥模式。 通过将该位置1,用户可使能H桥模式和PWMCON1的位1至位5。 通过将该位清0,用户可让PWM在标准模式下工作。 通过将该位置1,用户可使能全部PWM输出。 通过将该位清0,用户可禁用全部PWM输出。 Rev. A | Page 50 of 96 ADuC7122 表79. PWM输出选择1 PWMCON1寄存器 ENA HOFF POINV 0 X 0 X 1 X 1 0 0 1 0 0 1 0 1 1 0 1 1 DIR X X 0 1 0 1 PWM1 1 1 0 HS HS 1 PWM输出 PWM2 PWM3 1 1 0 1 0 HS LS 0 LS 1 1 HS PWM4 1 0 LS 0 1 LS 表81. PWMCON2寄存器位功能描述 (地址 = 0xFFFF0FB4,默认值 = 0x00) 位 7 值 1 0 3:0 X = 无关;HS = 高端;LS = 低端。 上电后,PWMCON1寄存器的默认值为0x12(HOFF = 1且 HMODE = 1)。在默认状态下,PWM相关的所有GPIO引脚 均被设定为在PWM模式下工作(参见表80)。 表80. 比较寄存器 名称 PWM1COM1 PWM1COM2 PWM1COM3 PWM2COM1 PWM2COM2 PWM2COM3 PWM3COM1 PWM3COM2 PWM3COM3 地址 0xFFFF0F84 0xFFFF0F88 0xFFFF0F8C 0xFFFF0F94 0xFFFF0F98 0xFFFF0F9C 0xFFFF0FA4 0xFFFF0FA8 0xFFFF0FAC 默认值 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W 通过向PWMICLR寄存器写入任意值,可以清除PWM触发 中断。请注意,使用PWM触发中断时,在退出中断服务 程序前,用户应确保PWM中断已被清除。这样可以防止 同时产生多个中断。 名称 CSEN 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 CSD3 说明 转换开始使能。 用户置1时,使能PWM产生转换开始 信号。 用户清0时,禁用PWM转换开始信号。 用户清0时,禁用PWM转换开始信号。 4个时钟脉冲。 8个时钟脉冲。 12个时钟脉冲。 16个时钟脉冲。 20个时钟脉冲。 24个时钟脉冲。 28个时钟脉冲。 32个时钟脉冲。 36个时钟脉冲。 40个时钟脉冲。 44个时钟脉冲。 48个时钟脉冲。 52个时钟脉冲。 56个时钟脉冲。 60个时钟脉冲。 64个时钟脉冲。 计算从转换开始延迟到ADC转换开始的时间时,用户必须 考虑内部延迟。图33中的例子是延迟4个时钟的情况。需 要一个额外时钟来将转换开始信号传送到ADC逻辑。当 ADC逻辑收到转换开始信号时,ADC就会在下一ADC时钟 沿开始转换(见图33)。 PWM转换开始控制 B95 可以配置PWM在有效低端信号变为高电平后产生ADC转 换开始信号。低端信号变为高电平到产生转换开始信号之 间有一个可编程延迟时间。 UCLK/ADC_CLOCK LOW SIDE 该时间通过PWMCON2寄存器控制。如果所选的延迟时间 大于PWM脉冲的宽度,中断将保持低电平。 COUNT 08755-034 PWM SIGNAL TO CONVST SIGNAL PASSED TO ADC LOGIC 图33. ADC转换 Rev. A | Page 51 of 96 ADuC7122 通用I/O B21 ADuC7122提供32个双向通用输入/输出(GPIO)引脚。所有 I/O引脚都兼容5 V电压,即GPIO支持5 V输入电压。一般 来说,许多GPIO引脚都有多种功能(参见表84)。默认情况下, GPIO引脚在GPIO模式下工作。 表84. GPIO引脚功能描述1 端口 0 每个GPIO引脚都有一个内部上拉电阻(约为100 kΩ),驱动 能力为1.6 mA。注意,最多可以有20个驱动1.6 mA电流的 GPIO引脚同时工作。32个GPIO被分到4个端口:端口0至 端口3。每个端口由4或5个寄存器控制,x表示端口号。 表82. GPxCON寄存器 访问类型 R/W R/W R/W R/W 12 GPIO的输入电平在任何时间都能从GPxDAT寄存器中读 出,甚至当引脚在除GPIO模式以外的模式下被重新配置时 也可以。PLA输入始终有效。 2 名称 GP0CON GP1CON GP2CON GP3CON 地址 0xFFFF0D00 0xFFFF0D04 0xFFFF0D08 0xFFFF0D0C 默认值 0x00000000 0x00000000 0x00000000 0x11111111 ADuC7122器件进入省电模式后,GPIO引脚维持各自原来 的状态。 GPxCON是端口x的控制寄存器,它可以决定端口x中每个 引脚的功能。引脚功能如表84所示。 3 表83. GPxCON寄存器位功能描述 位 31:30 29:28 27:26 25:24 23:22 21:20 19:18 17:16 15:14 13:12 11:10 9:8 7:6 5:4 3:2 1:0 说明 保留 Px.7引脚的功能选择 保留 Px.6引脚的功能选择 保留 Px.5引脚的功能选择 保留 Px.4引脚的功能选择 保留 Px.3引脚的功能选择 保留 Px.2引脚的功能选择 保留 Px.1引脚的功能选择 保留 Px.0引脚的功能选择 引脚 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1.0 P1.1 P1.4 P1.5 P1.6 P1.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7/BM E A 1 2 配置(参见GPxCON) 00 01 10 GPIO SCL1 不适用 GPIO SDA1 不适用 GPIO SPICLK ADCBUSY GPIO SPIMISO SYNC GPIO SPIMOSI TRIP GPIO CONVST SPICS GPIO 不适用 MRST GPIO TRST 不适用 GPIO SIN SCL2 GPIO SOUT SDA2 GPIO PWM1 ECLK/XCLK GPIO PWM2 不适用 GPIO 不适用 不适用 GPIO 不适用 不适用 GPIO/IRQ0 不适用 不适用 GPIO/IRQ1 不适用 不适用 GPIO 不适用 不适用 GPIO/IRQ2 不适用 不适用 GPIO PWM5 不适用 GPIO PWM6 不适用 GPIO/IRQ3 不适用 不适用 GPIO 不适用 不适用 GPIO N/A 不适用 GPIO 不适用 不适用 GPIO/IRQ4 PWM3 不适用 GPIO/IRQ5 PWM4 不适用 GPIO 不适用 不适用 GPIO 不适用 不适用 GPIO 不适用 不适用 GPIO 不适用 不适用 E A A N/A(不适用)表示不存在第二功能。 切勿写入P1.2或P1.3。 Rev. A | Page 52 of 96 E A E 11 PLAI[5] PLAI[4] PLAO[13] PLAO[12] PLAI[11] PLAI[10] PLAI[2] PLAI[3] PLAI[7] PLAI[6] PLAI[8] PLAI[9] PLAO[5] PLAO[4] PLAI[13] PLAI[12] PLAI[1] PLAI[14] PLAO[7] PLAO[6] PLAI[15] PLAI[0] PLAO[0] PLAO[1] PLAO[2] PLAO[3] PLAO[8] PLAO[9] PLAO[10] PLAO[11] ADuC7122 表85. GPxPAR寄存器 名称 GP0PAR GP1PAR GP2PAR GP3PAR 地址 0xFFFF0D2C 0xFFFF0D3C 0xFFFF0D4C 0xFFFF0D5C 表90. GPxSET寄存器位功能描述 默认值 0x20000000 0x00000000 0x00000000 0x00222222 访问类型 R/W R/W R/W R/W 位 31: 24 23:16 说明 保留。 数据端口x设置位。 用户置1,则端口x的相应位置1,同时GPxDAT寄存器 中的相应位也置1。 用户清0不会影响数据输出。 保留。 通过对GPxPAR寄存器编程,可分别控制端口0、1、2和3 的参数。注意:更改GPxPAR寄存器后,必须对GPxDAT寄 存器执行写操作。 15: 0 表86. GPxPAR寄存器位功能描述 表91. GPxCLR寄存器 位 31:29 28 27:25 24 23:21 20 19:17 16 15:13 12 11:9 8 7:5 4 3:1 0 名称 GP0CLR GP1CLR GP2CLR GP3CLR 说明 保留 Px.7引脚上拉禁用 保留 Px.6引脚上拉禁用 保留 Px.5引脚上拉禁用 保留 Px.4引脚上拉禁用 保留 Px.3引脚上拉禁用 保留 Px.2引脚上拉禁用 保留 Px.1引脚上拉禁用 保留 Px.0引脚上拉禁用 地址 0xFFFF0D20 0xFFFF0D30 0xFFFF0D40 0xFFFF0D50 位 31:24 23:16 15:0 默认值 0x000000XX 0x000000XX 0x000000XX 0x000000XX 访问类型 R/W R/W R/W R/W 说明 数据传输方向。 用户将该位置1,可以将GPIO引脚配置为输出引脚。 用户清0,可以将GPIO引脚配置为输入引脚。 端口x数据输出。 反映复位时端口x引脚的状态(只读)。 端口x数据输入(只读)。 地址 0xFFFF0D24 0xFFFF0D34 0xFFFF0D44 0xFFFF0D54 说明 保留。 数据端口x清除位。 用户将该位置1,则端口x中的相应位被清0, 同时GPxDAT寄存器的相应位也被清0。 用户清0不会影响数据输出。 保留。 表93. GPxOCE寄存器位功能描述 位 31:8 7 说明 保留。 GPIO Px.7开集使能 用户置1时,使能开集 用户置0时,禁用开集 6 GPIO Px.6开集使能 用户置1时,使能开集 用户置0时,禁用开集 5 GPIO Px.5开集使能 用户置1时,使能开集 用户置0时,禁用开集 4 GPIO Px.4开集使能 用户置1时,使能开集 用户置0时,禁用开集 3 GPIO Px.3开集使能 用户置1时,使能开集 用户置0时,禁用开集 2 GPIO Px.2开集使能 用户置1时,使能开集 用户置0时,禁用开集 1 GPIO Px.1开集使能 用户置1时,使能开集 用户置0时,禁用开集 0 GPIO Px.0开集使能 用户置1时,使能开集 用户置0时,禁用开集 表89. GPxSET寄存器 名称 GP0SET GP1SET GP2SET GP3SET 访问类型 W W W W 下列GPIO引脚提供开集功能:P1.7、P1.6、P2.x和P3.x。开 集功能可利用GP1OCE[7:6]、GP2OCE[7:0]和GP3OCE[7:0] 配置。 表88. GPxDAT寄存器位功能描述 23:16 15:8 7:0 默认值 0x000000XX 0x000000XX 0x000000XX 0x000000XX 表92. GPxCLR寄存器位功能描述 GPxDAT是端口x的配置和数据寄存器。它用来配置端口x 的GPIO引脚方向,为配置成输出的引脚设置输出值,并为 配置成输入的引脚接收和保存输入值。 位 31:24 地址 0xFFFF0D28 0xFFFF0D38 0xFFFF0D48 0xFFFF0D58 GPxCLR是端口x的数据清除寄存器。 表87. GPxDAT寄存器 名称 GP0DAT GP1DAT GP2DAT GP3DAT GPxSET是端口x的数据设置寄存器。 默认值 0x000000XX 0x000000XX 0x000000XX 0x000000XX 访问类型 W W W W Rev. A | Page 53 of 96 ADuC7122 UART串行接口 ADuC7122有一个16450兼容UART。该UART是一个全双工 通用异步接收器/发送器。UART的作用是对从外设接收的 数据字符进行串并转换,以及对从ARM7TDMI接收的数据 字符进行并串转换。该UART有一个小数分频器,能够促 进高精度波特率的生成且支持网络可寻址模式。 ADuC7122的P1.0和P1.1引脚支持UART功能。 采用小数分频器的波特率计算公式如下: 串行通信采用异步协议,支持各种字长、停止位以及奇偶 校验生成等选项(在配置寄存器内进行选择)。 例如,生成19,200的波特率, 波特率 = M+ 波特率生成 ADuC7122提供两种UART波特率生成模式:正常450 UART 波特率生成模式和ADuC7122小数分频器波特率生成模式。 正常450 UART波特率生成 该 波 特 率 是 内 核 时 钟 的 一 个 分 频 , 采 用 COMDIV0和 COMDIV1寄存器中的值(16位值,DL)。标准波特率生成 公式为: Baud rate = 41.78 MHz 百分比误差 9600 19,200 115,200 0% 0% 3% 9600 19,200 118,691 ADuC7122小数分频器 将小数分频器与正常波特率发生器配合使用,可以生成范 围更宽、精度更高的波特率。 /16DL /(M + N/2048) 图34. 波特率生成选项 UART 08755-035 FBEN /2 (2) 41.78 MHz N = 2048 波特率 × 16 × DL × 2 M+ 41.78 MHz N = 2048 19,200 × 16 × 67 × 2 M+ N = 1.015 2048 波特率 = 41.78 MHz 30  16 × 67 × 2 × 1 +   2048  UART寄存器定义 表94.利用标准波特率发生器的波特率 波特率 DL 实际波特率 CORE CLOCK N ) 2048 其中,波特率 = 19,219 bps。 表94列举了几种常见波特率值。 0x88 0x44 0x0B 16 × DL × 2 × ( M + 其中: M = 1. N = 0.015 × 2048 = 30。 (1) 16 × 2 × DL 41.78 MHz UART接口包括下列10个寄存器: COMTX:8位发送寄存器。 COMRX:8位接收寄存器。 COMDIV0:分频锁存器(低字节)。 COMDIV1:分频锁存器(高字节)。 COMCON0:线路控制寄存器。 COMCON1:线路控制寄存器。 COMSTA0:线路状态寄存器。 COMIEN0:中断使能寄存器。 COMIID0:中断识别寄存器。 COMDIV2:16位小数波特率分频寄存器。 COMTX、COMRX和COMDIV0共用相同的地址。当寄存 器COMCON0的位7清0时,允许访问寄存器COMTX、 COMRX和COMIEN0。当寄存器COMCON0的位7为1时, 可以访问COMDIVx。 Rev. A | Page 54 of 96 ADuC7122 UART发送寄存器 UART分频锁存器寄存器1 向该8位寄存器写入数据后,允许利用UART发送数据。 该8位寄存器包含控制UART波特率的分频锁存器的最高有 效字节。 名称: COMTX 地址: 0xFFFF0800 访问类型: 只写 UART接收寄存器 名称: COMDIV1 地址: 0xFFFF0804 默认值: 0x00 访问类型: 读/写 对该8位寄存器执行读操作,以接收利用UART发送的数据。 名称: COMRX 地址: 0xFFFF0800 默认值: 0x00 访问类型: 只读 UART控制寄存器0 该8位寄存器与COMCON1配合使用,可控制UART操作。 UART分频锁存器寄存器0 名称: COMCON0 地址: 0xFFFF080C 默认值: 0x00 访问类型: 读/写 该8位寄存器包含控制UART波特率的分频锁存器的最低有 效字节。 名称: COMDIV0 地址: 0xFFFF0800 默认值: 0x00 访问类型: 读/写 Rev. A | Page 55 of 96 ADuC7122 表95. COMCON0寄存器位功能描述 位 7 名称 DLAB 6 BRK 5 SP 4 EPS 3 PEN 2 STOP 1 to 0 WLS 说明 分频锁存器访问。 用户置1,允许访问寄存器COMDIV0和COMDIV1。 用户清0,禁止访问寄存器COMDIV0和COMDIV1,但允许访问COMRX、COMTX和COMIEN0。 设置断开。 用户置1,强制TxD为0。 用户清0,采用正常模式工作。 强制奇偶校验。 用户置1,强制奇偶校验为定义值: 如果EPS = 1且PEN = 1,则置1。 如果EPS = 0且PEN = 1,则置0。 偶校验选择位。 置1,以选择偶校验。 清0,以选择奇校验。 奇偶校验使能位。 用户置1,以发送并检查奇偶校验位。 用户清0,则既不发送也不检查奇偶校验。 停止位。 用户置1,则在字长为5位发送1.5个停止位,在字长为6、7或8位时发送2个停止位。不论所选 停止位的个数是多少,接收器只检查第一个停止位。 用户清0,则在发送的数据中只产生一个停止位。 字长选择。 00 = 5位。 01 = 6位。 10 = 7位。 11 = 8位。 表96. COMCON1寄存器位功能描述 UART控制寄存器1 该8位寄存器与COMCON0配合使用,可控制UART操作。 名称: COMCON1 地址: 0xFFFF0810 默认值: 0x00 访问类型: 读/写 位 7:5 4 名称 Loopback 3:2 1 RTS 0 DTR Rev. A | Page 56 of 96 说明 保留位。未使用。 用户置1,使能回送模式。 此时强制TxD为高电平。 保留位。未使用。 发送请求位。 用户置1,强制RTS输出为0。 用户清0,强制RTS输出为1。 数据终端就绪位。 用户置1,强制DTR输出为0。 用户清0,强制DTR输出为1。 ADuC7122 UART状态寄存器0 名称: COMSTA0 地址: 0xFFFF0814 默认值: 0x60 访问类型: 只读 功能: 该8位只读寄存器用于反映UART的当前状态。 表97. COMSTA0寄存器位功能描述 位 7 6 名称 5 THRE COMTX空状态位。 当COMTX为空时,该位自动置1。该位置1便可向COMTX内写入数据;但前面数据可能还未 发送,且可能仍保存在移位寄存器内。 如果COMTX被写入数据,该位自动清0。 4 BI 3 FE 2 PE 1 OE 0 DR 断开指示符。 当SIN保持低电平超过最大字长时置1。 该位自动清0。 帧错误。 当停止位无效时,该位被置1。 该位自动清0。 奇偶校验错误。 当产生奇偶校验错误时,该位被置1。 该位自动清0。 溢出错误。 如当前数据在读取前被覆盖,该位自动置1。 该位自动清0。 数据就绪。 当COMRX满时,该位自动置1。 COMRX读取后,该位清0。 TEMT 说明 保留。 COMTX和移位寄存器空状态位。 当COMTX和移位寄存器为空时,该位自动置1。该位指示数据已发送;即移位寄存器不再保 持数据。 如果COMTX被写入数据,该位自动清0。 Rev. A | Page 57 of 96 ADuC7122 UART中断使能寄存器0 名称: COMIEN0 地址: 0xFFFF0804 默认值: 0x00 访问类型: 功能: 表99. COMIID0寄存器位功能描述 状态位 [2:1] 00 11 位0 NINT 1 0 读/写 10 0 2 该8位寄存器用于使能或禁用单独的 UART中断源。 01 0 3 表98. COMIEN0寄存器位功能描述 00 0 4 位 7:4 3 UART小数分频器寄存器 2 1 0 名称 EDSSI ELSI ETBEI ERBFI 说明 保留。未使用。 调制解调器状态中断使能位。 用户置1,在COMSTA0[3:1]的任一位被置1时 使能中断产生。 由用户清0。 RxD状态中断使能位。 用户置1,在COMSTA0[3:1]寄存器任一位被置 1时使能中断产生。 由用户清0。 使能发送缓冲空中断。 用 户 置 1, 当 发 送 期 间 缓 冲 为 空 时 , 即 当 COMSTA[5]置1时使能中断。 由用户清0。 使能接收缓冲满中断。 用户置1,当接收期间缓冲满时使能中断。 由用户清0。 UART中断识别寄存器0 名称: COMIID0 地址: 0xFFFF0808 默认值: 0x01 访问类型: 只读 功能: 该8位寄存器用于反映UART中断源。 优先级 1 定义 无中断 接收线路 状态中断 接收缓冲 满中断 发送缓冲 空中断 调制解调器 状态中断 清除操作 读取COMSTA0 读取COMRX 将数据写入 COMTX或读取 COMIID0 读COMSTA1 寄存器 该16位寄存器控制ADuC7122小数分频器操作。 名称: COMDIV2 地址: 0xFFFF082C 默认值: 0x0000 访问类型: 读/写 表100. COMDIV2寄存器位功能描述 位 15 名称 FBEN 14:13 12:11 FBM[1:0] 10:0 FBN[10:0] Rev. A | Page 58 of 96 说明 小数波特率发生器使能位。用户置1,使 能小数波特率发生器。 用户清0,利用标准450 UART波特率发生 器产生波特率。 保留。 M值。当FBM = 0时,M = 4。利用小数分 频器计算波特率参见公式2;常见波特率 值见表94。 N值。利用小数分频器计算波特率参见公 式2;常见波特率值见表94。 ADuC7122 I2C ADuC7122集成两个I2C外设,用户可将这些设备单独配置 成完全I 2C兼容型I2C总线主机或者完全I 2C兼容型总线从 机。这两个外设完全相同,因此这里仅介绍一个。 引脚SDA和SCL用于数据传输,通过对这两个引脚进行“线 与”配置,可以在多主机系统中进行仲裁。这两个引脚需 要接外部上拉电阻。典型的上拉电阻值介于4.7 kΩ和10 kΩ 之间。 I2C总线系统的外设地址由用户编程设定。没有进行传输 时,可随时修改这个ID。用户可以对接口进行配置,以使 其响应四个从机地址。 I2C系统的传输过程为:当总线处于空闲状态时,主机通过 产生起始条件来启动传输;在初始地址传输期间,主机发 送从机的地址和数据传输方向(读和/或写)。如果主机没有 输掉仲裁且从机应答了最后一个字节,那么开始向从机传 输数据。传输会持续到主机发送一个停止条件为止,然后 总线进入空闲状态。 在同一时刻,I2C外设无法既作为主机又作为从机。同一个 I2C通道不能同时支持主机模式和从机模式。 ADuC7122的I2C接口具备以下特性: • 支持重复起始条件。在主机模式下,通过对ADuC7122 进行编程,可以允许其重复启动一次。在从机模式下, ADuC7122可识别重复起始条件。 • 在主机和从机模式下,器件可识别7位和10位总线地址。 • 在I2C主机模式下,ADuC7122允许在一个传输时序下, 从单个从机中连续读取512字节数据。 • 总线上的其它器件可以使能时钟延展,这不会给 ADuC7122带来任何问题。不过,ADuC7122无法使能时 钟延展。 • 在从机模式下,通过对ADuC7122进行编程,可以允许 其返回一个非应答信号(NACK)。这样可以保证在I2C数 据传输结束时校验和字节是有效的。 • 在主机模式下,支持总线仲裁。 • 支持内、外部回送,用于I2C硬件测试。在回送模式下, • 在主机和从机模式下,发送和接收电路均有两字节的 FIFO缓存。为用户提供状态位,以便控制上述FIFO缓存。 I2C功能的外部引脚配置 ADuC7122器件的I2C引脚为用于I2C0的P0.0和P0.1,以及用 于I2C1的P1.0和P1.1。 P0.0和P1.0的功能是传输I2C时钟信号,而P0.1和P1.1的功能 是 传 输 I 2 C数 据 信 号 。 例 如 , 要 配 置 I2C0引 脚 (SCL1和 SDA1),GP0CON寄存器的位0和位4必须置为1,以使能I2C 模式。或者,要配置I2C1引脚(SCL2和SDA2),GP1CON寄 存器的位1和位5必须置为1,以使能I2C模式。 串行时钟生成 系统中的I2C主机生成传输串行时钟。主机通道经过配置, 可以在快速模式(400 kHz)或标准模式(100 kHz)下工作。 I2CxDIV寄存器中的比特率定义如下: f SERIAL CLOCK = fUCLK (2 + DIVH ) + (2 + DIVL) 其中: fUCLK是分频之前的时钟。 DIVH是时钟高电平周期。 DIVL是时钟低电平周期。 因而,如果希望串行时钟为100 kHz,那么 应该配置DIVH = DIVL = 0xCF 如果希望串行时钟为400 kHz,那么 应该配置DIVH = 0x28,DIVL = 0x3C I2CxDIV寄存器对应于DIVH:DIVL。 I2C总线地址 从机模式 在从机模式下,I2CxID0、I2CxID1、I2CxID2和I2CxID3寄 存器包含器件ID。器件将4个I2CxIDx寄存器的内容与从总 线主机处接收的地址字节相比较。为确保寻址准确,每一 个ID寄存器的7个MSB必须与最先接收到的地址字节的7个 MSB相同。在地址识别过程中,ID寄存器的LSB(传输方向 位)被忽略。 ADuC7122还支持10位寻址模式。当I2CxSCTL寄存器的位1 (ADR10EN)置1时,在从机模式下,系统支持10位地址, 且将该地址保存在I2CxID0寄存器和I2CxID1寄存器之中。 10位地址的组成如下: I2CxID0[0]:读/写位,不属于I2C地址。 I2CxID0[7:1] = 地址位[6:0]。 I2CxID1[2:0] = 地址位[9:7]。 I2CxID1[7:3]的值必须为11110b。 Rev. A | Page 59 of 96 ADuC7122 I2C寄存器 主机模式 在主机模式下,I2CADR0寄存器用于存储器件的I C地址。 2 在7位地址模式下,I2CADR0[7:1]用于存储器件地址。 I2CADR0[0]是读/写位。 I2C外设接口由数个寄存器组成,这些寄存器将在以下部分 中讨论。 I2C主机寄存器 在10位地址模式下,10位地址创建如下: I2C主机控制寄存器 I2CADR0[7:3]的值必须为11110b。 名称: I2C0MCTL, I2C1MCTL I2CADR0[2:1] = 地址位[9:8]。 地址: 0xFFFF0880, 0xFFFF0900 I2CADR1[7:0] = 地址位[7:0]。 默认值: 0x0000, 0x0000 I2CADR0[0]是读/写位。 访问类型: 读/写 功能: 该16位寄存器用于在主机模式下配置I2C 外设。 表101. I2CxMCTL寄存器位功能描述 位 15:9 8 名称 7 I2CNACKENI 6 I2CALENI 5 I2CMTENI 4 I2CMRENI 3 2 I2CILEN 1 I2CBD 0 I2CMEN I2CMCENI 名称 保留。这些位为保留位,不允许向其中写入数据。 I2C发送完成中断使能位。 将该位置1,则当从I2C总线上检测到停止条件时,使能中断。 将该位清0,则禁用中断源。 I2C NACK接收中断使能位。 将该位置1,则当I2C主机接收到NACK时,使能中断。 将该位清0,则禁用中断源。 I2C仲裁失效中断使能位。 将该位置1,则当I2C主机没有获得对I2C总线的控制权时,使能中断。 将该位清0,则禁用中断源。 I2C发送中断使能位。 将该位置1,则当I2C主机完成一个字节的传输后,使能中断。 将该位清0,则禁用中断源。 I2C接收中断使能位。 将该位置1,则当I2C主机接收到数据时,使能中断。 用户清0,则在I2C主机接收数据的过程中,禁用中断。 保留。应向此位写入0值。 I2C内部回送使能位。 该位置1,可以使能回送测试模式。在该模式下,SCL和SDA信号在内部分别与各自的输入信号相连。 用户清0,可禁用回送模式。 I2C主机撤回禁用位。 将该位置1,可允许器件与另一器件争夺对总线的控制权(即使另一个器件正在产生一个起始条件)。 清0,则等到I2C总线释放后执行撤回。 I2C主机使能位。 用户置1,使能I2C主机模式。 用户清0,禁用I2C主机模式。 Rev. A | Page 60 of 96 ADuC7122 I2C主机状态寄存器 名称: I2C0MSTA , I2C1MSTA 地址: 0xFFFF0884, 0xFFFF0904 默认值: 0x0000, 0x0000 访问类型: 读操作 功能: 该16位寄存器是主机模式下的I2C状态寄存器。 表102.I2CxMSTA寄存器位功能描述 位 15:11 10 名称 9 I2CMRxFO 8 I2CMTC 7 I2CMNA 6 I2CMBUSY 5 I2CAL 4 I2CMNA 3 I2CMRXQ 2 I2CMTXQ 1:0 I2CMTFSTA I2CBBUSY 说明 保留。这些位保留。 I2C总线忙碌状态位。 当从I2C总线上检测到起始条件后,该位被置1。 当从I2C总线上检测到停止条件后,该位被清0。 主机接收FIFO溢出。 接收FIFO已满后,又有一个字节的数据写入FIFO时,该位被置1。 在其它条件下,该位被清0。 I2C发送完成状态位。 当主机与从机之间完成一次传输后,该位被置1。如果I2CxMCTL寄存器的I2CMCENI位被置1,当该位的值为1时, 使能中断。 将该位清0,则禁用中断源。 I2C主机NACK数据位。 在执行数据写传输过程中,当主机接收到一个NACK条件后,该位被置1。如果I2CxMCTL寄存器的I2CNACKENI位 被置1,当该位的值为1时,使能中断。 在其它条件下,该位被清0。 I2C主机忙碌状态位。 当主机忙于处理事务时,该位被置1。 当主机处于就绪状态或者当另一主机取得了总线控制权时,该位被清0。 I2C仲裁失效状态位。 当I2C主机未获得对I2C总线的控制权时,该位被置1。 如果I2CxMCTL寄存器的I2CALENI位被置1,当该位的值为1时,使能中断。 在其它条件下,该位被清0。 I2C主机NACK地址位。 当主机从一个I2C从机地址接收到NACK条件时,该位被置1。 如果I2CxMCTL寄存器的I2CNACKENI位被置1,当该位的值为1时,使能中断。 在其它条件下,该位被清0。 I2C主机接收请求位。 当数据进入接收FIFO后,该位被置1。如果I2CxMCTL寄存器的I2CMRENI位被置1,则产生中断。 在其它条件下,该位被清0。 I2C主机发送请求位。 如果发送FIFO为空或仅包含一个字节,且主机已经传输一个地址并执行了写操作,则该位置1。如果I2CxMCTL 寄存器的I2CMTENI位被置1,当该位的值为1时,使能中断。 在其它条件下,该位被清0。 I2C主机发送FIFO状态位。 00 = I2C主机发送FIFO为空。 01 = 主机发送FIFO中包含1个字节的数据。 10 = 主机发送FIFO中包含1个字节的数据。 11 = I2C主机发送FIFO已满。 Rev. A | Page 61 of 96 ADuC7122 I2C主机接收寄存器 I2C主机读取计数寄存器 名称: I2C0MRX, I2C1MRX 名称: I2C0MCNT0, I2C1MCNT0 地址: 0xFFFF0888, 0xFFFF0908 地址: 0xFFFF0890, 0xFFFF0910 默认值: 0x00, 0x00 默认值: 0x0000, 0x0000 访问类型: 只读 访问类型: 读/写 功能: 该8位寄存器是I2C主机接收寄存器。 功能: 该16位寄存器用于保存主机需要从从机中 读取的字节数。 I2C主机发送寄存器 名称: I2C0MTX, I2C1MTX 地址: 0xFFFF088C, 0xFFFF090C 默认值: 0x00, 0x00 访问类型: 读/写 功能: 该8位寄存器是I2C主机发送寄存器。 I2C主机当前读取计数寄存器 名称: I2C0MCNT1, I2C1MCNT1 地址: 0xFFFF0894, 0xFFFF0914 默认值: 0x00, 0x00 访问类型: 读操作 功能: 该8位寄存器用于保存在一次读序列中主 机从从机处接收到的字节数。 表103. I2CxMCNT0寄存器位功能描述(地址 = 0xFFFF0890、0xFFFF0910,默认值 = 0x0000) 位 15:9 8 名称 7:0 I2CRCNT I2CRECNT 说明 保留。 当需要从从机处读取的字节数多于256时,该位置1。 当需要从从机处读取的字节数小于等于256时,该位清0。 I2CRCNT 这8位所保存的数值为需要从从机处读取的字节数减1的结果。如果只需要读取1个字节, 则应将这些位清0。 Rev. A | Page 62 of 96 ADuC7122 I2C地址0寄存器 I2C主机时钟控制寄存器 名称: I2C0ADR0, I2C1ADR0 名称: I2C0DIV, I2C1DIV 地址: 0xFFFF0898, 0xFFFF0918 地址: 0xFFFF08A4, 0xFFFF0924 默认值: 0x00, 0x00 默认值: 0x1F1F, 0x1F1F 访问类型: 读/写 访问类型: 读/写 功能: 当主机开始与从机进行通信后,该8位寄存 器用于保存7位从机地址和读/写位。 功能: 该寄存器用于控制SCL引脚上由主机产生 的I2C时钟的频率。详情见I2C部分。 I2C地址1寄存器 名称: I2C0ADR1, I2C1ADR1 地址: I2C起始字节寄存器 名称: I2C0SBYTE, I2C1SBYTE 0xFFFF089C, 0xFFFF091C 地址: 0xFFFF08A0, 0xFFFF0920 默认值: 0x00, 0x00 默认值: 0x00, 0x00 访问类型: 读/写 访问类型: 读/写 功能: 该8位寄存器只可用于10位寻址模式。它包 含地址的最低有效字节。 功能: 此寄存器可用来在处理开始时产生一个起 始字节。 要产生一个起始字节(后接正常地址),首先应写入I2CxSBYTE,然后写入地址寄存器(I2CxADRx)。这将把写入 I2CxSBYTE的字节驱动到总线上,其后跟随一个重复起始 条件。此寄存器可用来将任何字节驱动到I2C总线上,然后 是 一 个 重 复 起 始 条 件 (不 只 是 一 个 起 始 字 节 , 例 如 00000001)。 表104. 7位地址模式下的I2CxADR0寄存器(地址 = 0xFFFF0898、0xFFFF0918,默认值 = 0x00) 位 7:1 0 名称 I2CADR R/W 说明 这些位包含目标从机的7位地址。 位0为读/写位。 当该位置1时,表示需要读序列。 当该位清0时,表示需要写序列。 表105. 10位地址模式下的I2CxADR0寄存器 位 7:3 2:1 0 名称 I2CMADR R/W 说明 在10位地址模式下,这些位的值必须为[11110b]。 在10位寻址模式下,这些位包含ADDR[9:8]。 读/写位。 当该位置1时,表示需要读序列。 当该位清0时,表示需要写序列。 表106. 10位地址模式下的I2CxADR1寄存器 位 7:0 名称 I2CLADR 说明 在10位寻址模式下,这些位包含ADDR[7:0]。 表107. I2CxDIV寄存器 位 15:8 7:0 名称 DIVH DIVL 说明 这些位用于控制SCLx高电平周期的持续时间。 这些位用于控制SCLx低电平周期的持续时间。 Rev. A | Page 63 of 96 ADuC7122 I2C从机寄存器 I2C从机控制寄存器 名称: I2C0SCTL, I2C1SCTL 地址: 0xFFFF08A8, 0xFFFF0928 默认值: 0x0000, 0x000 访问类型: 读/写 功能: 该16位寄存器用于在从机模式下配置I2C外设。 表108. I2CxSCTL寄存器位功能描述 位 15:11 10 名称 9 I2CSRXENI 8 I2CSSENI 7 I2CNACKEN 6 5 I2CSETEN 4 I2CGCCLR 3 I2CHGCEN 2 I2CGCEN I2CSTXENI 说明 保留位。 从机发送中断使能位。 将该位置1,则当从机发送一个字节后,使能中断。 清除该中断源。 从机接收中断使能位。 将该位置1,则当从机接收到数据后,使能中断。 清除该中断源。 I2C停止条件检测中断使能位。 将该位置1,则当从I2C总线上检测到停止条件时,使能中断。 清除该中断源。 I2C NACK使能位。 将该位置1,则对传输序列中的下一字节不作出应答(NACK)。 将该位清0,可允许硬件对ACK/NACK序列进行控制。 保留。应向此位写入0值。 I2C发送提前中断使能位。 将该位置1,则允许在读位发送的过程中,在SCLx正向沿之后立刻产生发送请求中断。 将该位置1,则允许在读位发送的过程中,在SCLx负向沿之后立刻产生发送请求中断。 I2C广播状态与ID清除位。 通过向该位写入1,可清除I2CxSSTA寄存器中的呼叫状态(I2CGC)与ID (I2CGCID[1:0])位。 在其它状况下,该位被清0。 I2C硬件广播使能位。 硬件广播使能位。当该位和位2置1时,如果已接收到一个广播信号(地址为0x00)和1字节数据,器件将对接收寄 存器中的数据和I2CxALT中的数据进行比较。如果数据匹配,表明器件接收到一个硬件广播。当器件需要紧急 呼叫一个主机而又不知道呼叫哪一个时,可使用该方法。该广播消息会发送到总线上的所有主机。ADuC7122 会监视这些地址。要求主机注意的器件会将自己的地址嵌入到消息中。所有的主机都会侦听这些消息,然后能 够处理该器件要求的主机会与其从机通信并进行相应操作。 根据2000年1月的I2C总线规范,I2CxALT寄存器的LSB应该始终写入1。 通过将该位和I2CGCEN置1,可在从机模式下使能硬件广播识别。 通过将该位清0,可禁用硬件广播命令识别。 I2C广播使能位。 将该位置1,可以让从机为I2C广播发送有效应答,写地址0x00。然后器件将识别一个数据位。如果器件接收到 的数据是0x06,即由硬件复位和对从机地址的可编程部分进行写操作,那么,根据2000年1月的I2C总线规范, 此时I2C接口复位。这个命令可用于复位整个I2C系统。如果接收到的数据为0x04,即由硬件对从机地址可编程 部分进行写操作,则当产生任一广播后,广播中断状态位被置位。 在复位后,用户必须通过重新对器件地址进行编程来进行恰当的操作。 通过将该位置1,可允许从机应答I2C广播命令。 通过将该位清0,可禁用广播命令识别。 Rev. A | Page 64 of 96 ADuC7122 位 1 名称 ADR10EN 0 I2CSEN 说明 I2C 10位地址模式。 将该位置1,以启用10位地址模式。 将该位清0,以启用正常地址模式。 I2C从机使能位。 用户置1,使能I2C从机模式。 清0,禁用I2C从机模式。 I2C从机状态寄存器 名称: I2C0SSTA, I2C1SSTA 地址: 0xFFFF08AC, 0xFFFF092C 默认值: 0x0000, 0x0000 访问类型: 只读 功能: 该16位寄存器是从机模式下的I2C状态寄存器。 表109. I2CxSSTA寄存器位功能描述 位 15 14 名称 I2CSTA 13 I2CREPS 12-11 I2CID[1:0] 10 I2CSS 9:8 I2CGCID[1:0] 7 I2CGC 6 I2CSBUSY 5 I2CSNA 说明 保留位。 检测到起始条件并且地址匹配时,该位置1。如果接收到起始字节(0x01),或者使能了广播且接收到广播 代码0x00,该位也会置1。 接收到停止条件后,该位清0。 检测到重复起始条件时,该位置1。 接收到停止条件后,该位清0。读取I2CxSSTA寄存器时,该位也会清0。 I2C地址匹配寄存器。这些位用于表示哪个I2CxIDx寄存器与接收到的地址相匹配。 00 = 接收到的地址与I2CxID0相匹配。 01 = 接收到的地址与I2CxID1相匹配。 10 = 接收到的地址与I2CxID2相匹配。 11 = 接收到的地址与I2CxID3相匹配。 I2C起始后停止条件检测位。 若在起始条件和匹配地址之后检测到停止条件,则该位置1。如果I2CxSCTL寄存器的I2CSSENI位置1, 则产生中断。 读该寄存器时,该位清0。 I2C广播ID位。 00 = 未收到广播。 01 = 广播复位和程序地址。 10 = 通用程序地址。 11 = 广播匹配可供选择的ID。 注意:无法通过广播复位命令来清除这些位。 通过向I2CxSCTL的I2CGCCLR位写入1,可清除这些位。 I2C广播状态位。 从机接收到任何类型的广播命令后,该位置1。 从机接收到复位命令后,寄存器返回各自的默认状态。 从机接收到硬件广播命令后,接收FIFO将保存命令的第2个字节,它可以与I2CxALT寄存器的值进行比较。 通过向I2CxSCTL的I2CGCCLR位写入1,可将该位清0。 I2C从机忙碌状态位。 从机接收到起始条件后,该位置1。 发生下列情形之一,硬件会自动清除该位:如接收到的地址与I2CxIDx寄存器的内容不匹配,从机收到停止 条件,或重复起始地址与I2CxIDx寄存器的内容不匹配。 I2C从机NACK数据位。 从机发出非应答信号(NACK)以响应总线地址时,该位被置1。如果因发送FIFO内无数据而返回一非应答信号, 或者I2CxSCTL寄存器的I2CNACKEN位被置1,则该位置1。 在其它条件下,该位被清0。 Rev. A | Page 65 of 96 ADuC7122 位 4 名称 I2CSRxFO 3 I2CSRXQ 2 I2CSTXQ 1 I2CSTFE 0 I2CETSTA 说明 从机接收FIFO溢出。 接收FIFO已满后,又有一个字节的数据写入FIFO时,该位被置1。 在其它条件下,该位被清0。 I2C从机接收请求位。 从机接收FIFO不为空时,该位被置1。I2CxSCTL寄存器的I2CSRXENI位置1时,I2CSRXQ位置1会产生中断。 通过对接收FIFO执行读操作或清除操作,可将该位清0。 I2C从机发送请求位。 从机接收到一个匹配的地址并执行读操作后,该位被置1。 如果I2CxSCTL寄存器的I2CSETEN位清0,则在读位发送的过程中,SCL负向沿之后,此位立即被置1。 如果I2CxSCTL寄存器的I2CSETEN位置1,则在读位发送的过程中,SCL正向沿之后,此位立即被置1。 I2CxSCTL寄存器的I2CSTXENI位置1时,I2CSTXQ位置1会产生中断。 在其它条件下,该位被清0。 I2C从机FIFO下溢状态位。 主机要求从机发送数据时,如果发送FIFO为空,则该位变为高电平。在读位操作期间,该位在SCL上升沿置位。 在其它条件下,该位被清0。 I2C从机发送提前FIFO状态位。 如果I2CxSCTL寄存器的I2CSETEN位清0,则当从机发送FIFO为空时,此位变为高电平。 如果I2CxSCTL寄存器的I2CSETEN位置1,则在写位发送的过程中,SCL正向沿之后,此位立即被置1。 在一次传输过程中,该位只能被置位一次。 对该位执行读操作后,该位被清0。 Rev. A | Page 66 of 96 ADuC7122 I2C从机接收寄存器 I2C从机ID寄存器 名称: I2C0SRX, I2C1SRX 名称: I2C0IDx, I2C1IDx 地址: 0xFFFF08B0, 0xFFFF0930 地址: 0xFFFF093C = I2C1ID0 默认值: 0x00 0xFFFF08BC = I2C0ID0 访问类型: 读操作 0xFFFF0940 = I2C1ID1 功能: 该8位寄存器是I2C从机接收寄存器。 0xFFFF08C0 = I2C0ID1 0xFFFF0944 = I2C1ID2 0xFFFF08C4 = I2C0ID2 I2C从机发送寄存器 名称: I2C0STX, I2C1STX 0xFFFF0948 = I2C1ID3 地址: 0xFFFF08B4, 0xFFFF0934 0xFFFF08C8 = I2C0ID3 默认值: 0x00 默认值: 0x00 访问类型: 读/写 访问类型: 读/写 功能: 该8位寄存器是I2C从机发送寄存器。 功能: 通过编程,可在这些8位寄存器内编程 从机的I2C总线ID。详情见I2C总线地址 部分。 I2C硬件广播识别寄存器 名称: I2C0ALT, I2C1ALT 地址: 0xFFFF08B8, 0xFFFF0938 默认值: 0x00 访问类型: 读/写 功能: 2CxSCTL寄存器的位3置1时,此8位寄存 器可用于识别硬件广播。主机无法为从 机生成地址,相反,从机必须为主机生 成地址时,该寄存器便可以发挥作用了。 Rev. A | Page 67 of 96 ADuC7122 I2C公共寄存器 I2C FIFO状态寄存器 名称: I2C0FSTA, I2C1FSTA 地址: 0xFFFF08CC, 0xFFFF094C 默认值: 0x0000 访问类型: 读/写 功能: 这些16位寄存器用于存储在主机和从机模式下接收/发送FIFO的状态。 表110. I2CxFSTA寄存器位功能描述 位 15:10 9 8 7:6 名称 5:4 I2CMTXSTA 3:2 I2CSRXSTA 1:0 I2CSTXSTA I2CFMTX I2CFSTX I2CMRXSTA 说明 保留位。 将该位置1,可清除主机发送FIFO。 将该位置1,可清除从机发送FIFO。 I2C主机接收FIFO状态位。 00 = FIFO为空。 01 = FIFO字节写入。 10 = FIFO中有1字节数据。 11 = FIFO已满。 I2C主机发送FIFO状态位。 00 = FIFO为空。 01 = FIFO字节写入。 10 = FIFO中有1字节数据。 11 = FIFO已满。 I2C从机接收FIFO状态位。 00 = FIFO为空。 01 = FIFO字节写入。 10 = FIFO中有1字节数据。 11 = FIFO已满。 I2C从机发送FIFO状态位。 00 = FIFO为空。 01 = FIFO字节写入。 10 = FIFO中有1字节数据。 11 = FIFO已满。 Rev. A | Page 68 of 96 ADuC7122 串行外设接口 ADuC7122片内集成一个完整的硬件串行外设接口(SPI)。 SPI是一种工业标准同步串行接口,允许同时双向传输8位 数据(即全双工),最大比特率可达20 Mb。 该SPI端口可配置为主机或从机操作,一般由4个引脚组 成:SPIMISO、SPIMOSI、SPICLK和SPICS。 SPIMISO(主机输入,从机输出)引脚 SPIMISO引脚在主机模式下配置为输入线路,在从机模式 下配置为输出线路。主机上的SPIMISO线路(数据输入)应 与从机内的SPIMISO线路(数据输出)相连。传送的数据是 以字节(8位)为单位的串行数据,MSB优先。 SPIMOSI(主机输出,从机输入)引脚 SPIMOSI引脚在主机模式下配置为输出线路,在从机模式 下配置为输入线路。主机上的SPIMOSI线路(数据输出)应 与从机内的SPIMOSI线路(数据输入)相连。传送的数据是 以字节(8位)为单位的串行数据,MSB优先。 SPICLK(串行时钟输入/输出)引脚 主机串行时钟(SPICLK)用于在MOSI SPICLK周期内同步发 送和接收数据。所以,每隔8个SPICLK周期,芯片发送/接 收一个字节。在主机模式下,SPICLK引脚配置成输出;而 在从机模式下,配置成输入。 SPI片选(SPICS输入)引脚 E B96 在SPI从机模式时,置位SPICS引脚将启动数据传输,该引 脚为一个低电平有效输入信号。SPI端口随后开始发送和接 收8位数据,直到SPICS解除置位以结束传输为止。在从机 模式下,SPICS总是输入。 在SPI主机模式下,SPICS是低电平有效输出信号。传输开 始后,它自动置位;传输完成后,它自动解除置位。 SPI功能的外部引脚配置 B07 ADuC7122的SPI引脚为P0.2至P0.5。 P0.5为从机片选引脚。在从机模式下,该引脚作为输入引 脚,必须通过主机将其驱动为低电平。在主机模式下,该 引脚为输出引脚。当传输开始后,该引脚的电平为低电 平;传输完成后,该引脚的电平为高电平。 P0.2为SPICLK引脚。 P0.3为主机输入、从机输出(SPIMISO)引脚。 P0.4为主机输出、从机输入(SPIMOSI)引脚。 要配置P0.2至P0.5在SPI模式下工作,参见“通用I/O”部分。 在主机模式下,时钟的极性和相位由SPICON寄存器控 制,SPIDIV寄存器的值决定了比特率。比特率的计算公式 如下: f SERIAL CLOCK = f UCLK 2 × (1 + SPIDIV ) SPI时钟的最高频率与时钟分频器位无关。 在从机模式下,可对SPICON寄存器进行设置,以配置预 期输入时钟的相位和极性。从机可以从外部主机接收数据 (速率可达10 Mb)。 在主机模式和从机模式下,数据均在SPICLK信号的一个沿 发送并另一个沿采样。所以,从机时钟的极性和相位必须 与主机配置一致。 Rev. A | Page 69 of 96 ADuC7122 SPI状态寄存器 SPI寄存器 B31 下列MMR寄存器用来控制SPI接口:SPISTA、SPIRX、 SPITX、SPIDIV和SPICON。 名称: SPISTA 地址: 0xFFFF0A00 默认值: 0x0000 访问类型: 只读 功能: 该16位寄存器用于存储主机、从机模式下 SPI接口的状态。 表111. SPISTA寄存器位功能描述 位 15:12 11 名称 10:8 SPIRXFSTA[2:0] 7 SPIFOF 6 SPIRXIRQ 5 SPITXIRQ 4 SPITXUF 3:1 SPITXFSTA[2:0] 0 SPIISTA SPIREX 说明 保留位。 SPI接收FIFO存在过剩字节。接收FIFO中字节的个数超过由SPICON寄存器中SPIMDE位规定的个数后, 该位被置1。 FIFO中字节的个数不超过由SPICON寄存器中的SPIRXMDE位规定的个数时,该位被清0。 SPI接收FIFO状态位。 000 = 接收FIFO为空。 001 = 该FIFO内有1个有效字节。 010 = 该FIFO内有2个有效字节。 011 = 该FIFO内有3个有效字节。 100 = 该FIFO内有4个有效字节。 SPI接收FIFO溢出状态位。 Rx FIFO已满,再一次向该FIFO内写入数据时,该位被置1。除非SPICON寄存器的SPIRFLH位置1, 否则该位被置1将产生一个中断。 读取SPISTA寄存器的内容后,该位被清0。 SPI接收IRQ状态位。 产生接收中断时,该位被置1。SPICON寄存器的SPITMDE位置1时,在接收到所需字节数后, SPIRXIRQ位被置1。 读取SPISTA寄存器的内容后,该位被清0。 SPI发送IRQ状态位。 产生发送中断时,该位被置1。SPICON寄存器的SPITMDE位置1时,在发送所需字节数后, SPITXIRQ位被置1。 读取SPISTA寄存器的内容后,该位被清0。 SPI发送FIFO下溢。 当启动一次发送操作且发送FIFO内没有有效数据时,该位置1。除非SPICON寄存器的SPITFLH位置1, 否则该位被置1将产生一个中断。 读取SPISTA寄存器的内容后,该位被清0。 SPI发送FIFO状态位。 000 = 发送FIFO为空。 001 = 该FIFO内有1个有效字节。 010 = 该FIFO内有2个有效字节。 011 = 该FIFO内有3个有效字节。 100 = 该FIFO内有4个有效字节。 该位清0,可使能7位地址模式。 SPI中断状态位。 SPI中断发生时,该位被置1。 读取SPISTA寄存器的内容后,该位被清0。 Rev. A | Page 70 of 96 ADuC7122 SPIRX寄存器 SPIDIV寄存器 B431 B631 名称: SPIRX 名称: SPIDIV 地址: 0xFFFF0A04 地址: 0xFFFF0A0C 默认值: 0x00 默认值: 0x1B 访问类型: 读操作 访问类型: 读/写 功能: 该8位寄存器是SPI接收寄存器。 功能: 该8位寄存器是SPI波特率选择寄存器。 SPITX寄存器 B531 名称: SPITX 地址: 0xFFFF0A08 默认值: 0x00 访问类型: 写操作 功能: 该8位寄存器是SPI发送寄存器。 SPI控制寄存器 B731 名称: SPICON 地址: 0xFFFF0A10 默认值: 0x0000 访问类型: 读/写 功能: 该16位寄存器用于在主机和从机模式下 配置SPI外设。 表112. SPICON寄存器位功能描述 位 15:14 名称 SPIMDE 13 SPITFLH 12 SPIRFLH 11 SPICONT 10 SPILP 9 SPIOEN 说明 SPI IRQ模式位。这些位用于配置在传输过程中何时发生发送/接收中断。 00 = 传输完1个字节后,产生发送中断。FIFO接收到一个或以上字节后,产生接收中断。 01 = 传输完2个字节后,产生发送中断。FIFO接收到两个或以上字节后,产生接收中断。 10 = 传输完3个字节后,产生发送中断。FIFO接收到三个或以上字节后,产生接收中断。 11 = 传输完4个字节后,产生发送中断。当接收FIFO已满或存在四个字节时,产生接收中断。 SPI发送FIFO清空使能位。 该位置1时,清空发送FIFO。该位无法自清0;需要一个单次清空操作时,应将该位置1。如果该位的值总保持为1, 那么,发送0x00还是最后被发送的数值取决于SPIZEN位的值。清空使能位置1时,FIFO在单个微处理器周期内 清空。 该位为1时,无法对发送FIFO进行写操作。该位清0时,禁用发送FIFO清空。 SPI接收FIFO清除使能位。 该位置1时,清空接收FIFO。该位无法自清0;需要一个单次清空操作时,应将该位置1。清空使能位置1时, FIFO在单个微处理器周期内清空。 该位置1后,所有向接收FIFO写数据的操作将被忽略,且系统不产生中断。 如果该位置1且SPITMDE = 0,对接收FIFO执行读操作可以启动一次数据传输。 该位清0时,禁用接收FIFO清空。 连续传输使能。 用户将该位置1,连续发送使能。在主机模式下,主机连续发送数据,直到发送寄存器内无有效数据为止。 SPICS引脚被置位后,在每一次8位串行传输期间,如发送寄存器不为空,该引脚将始终保持有效。 用户清0,禁用连续发送。每一次传输都是单独的8位串行传输。如果SPITX寄存器中存在有效数据,那么在一个 串行时钟停转周期后会重新开始发送数据。 回送使能位。 用户将该位置1,MISO连接到MOSI,用于测试软件。 用户清0,返回正常模式。 从机MISO输出使能位。 将该位置1,SPIMISO在正常模式下工作。 将该位清0,可禁用SPIMISO引脚上的输出驱动。该位被清0后,SPIMISO引脚变为开漏极。 Rev. A | Page 71 of 96 ADuC7122 8 名称 SPIROW 7 SPIZEN 6 SPITMDE 5 SPILF 4 SPIWOM 3 SPICPO 2 SPICPH 1 SPIMEN 0 SPIEN 位 说明 SPIRX上溢覆盖使能。 用户置1,则新接收到的串行字节覆盖接收寄存器中的有效数据。 用户清0,则新接收到的串行字节会被丢弃。 发送FIFO为空时,SPI发送0。 若将该位置1,则在发送FIFO无有效数据时,SPI发送0x00。 若将该位清0,则在发送FIFO无有效数据时,SPI发送上次发送的值。 SPI传输和中断模式。 用户将该位置1,启动数据传输,同时向SPITX寄存器写入数据。只有当发送寄存器为空时,才产生中断。 用户清0,读取SPIRX寄存器开始发送。只有当接收寄存器已满时,才产生中断。 LSB优先传输使能位。 用户置1,先发送LSB。 用户清0,先发送MSB。 SPI线或模式使能位。 将该位置1,使能开漏数据输出。数据输出引脚需要外部上拉电阻。 清0使用正常输出电平。 串行时钟极性模式位。 用户置1,串行时钟高电平空闲。 用户清0,串行时钟低电平空闲。 串行时钟相位模式位。 用户置1,串行时钟脉冲出现在每一次串行位传输的起始位置。 用户清0,串行时钟脉冲出现在每一个串行位传输的末尾。 主机模式使能位。 用户置1,主机模式使能。 用户清0,从机模式使能。 SPI使能位。 用户置1,SPI使能。 用户清0,SPI禁用。 Rev. A | Page 72 of 96 ADuC7122 可编程逻辑阵列(PLA) ADuC7122集成有一个完整的可编程逻辑阵列(PLA),它由 两个相互独立但内部连接的PLA模块组成。每一个模块包 括8个PLA单元,所以每种器件共有16个PLA单元。 每个PLA单元都包含有一个双输入的查找表,通过配置可 以实现任何基于双输入和一个触发器的逻辑输出功能,如 图35所示。 PLA寄存器接口 PLA外设接口包括21个寄存器,具体描述参见表114至表128。 表114. PLAELMx寄存器 ADuC7122上共有32个GPIO引脚可用于PLA。其中包括16 个输入引脚和16个输出引脚,在使用PLA功能之前需要在 GPxCON寄存器中对这些引脚进行配置。注意,比较器输 出也属于16个输入引脚之一。 名称 PLAELM0 PLAELM1 PLAELM2 PLAELM3 PLAELM4 PLAELM5 PLAELM6 PLAELM7 PLAELM8 PLAELM9 PLAELM10 PLAELM11 PLAELM12 PLAELM13 PLAELM14 PLAELM15 PLA是通过一组用户寄存器进行配置的。PLA的输出可以 连接到内部中断系统、ADC的CONVST信号、一个寄存器 或者16个PLA输出引脚中的任何一个。 PLAELMx是单元0到单元15的控制寄存器。通过它们可以 配置每一个单元的输入和输出多路复用器、在查找表中选 择功能并且选择旁路或使用触发器。参见表115和表118。 0 4 A 2 LOOKUP TABLE B 3 08755-036 1 图35. PLA单元 A 可通过以下方式对两个模块进行互连: • 单元15(模块1)的输出可以反馈到单元0(模块0)的多路复 用器0的输入0 • 单元7(模块0)的输出可以反馈到单元8(模块1)的多路复 用器0的输入0 表113. 单元输入/输出 单元 0 1 2 3 4 5 6 7 PLA模块0 输入 P2.7 P2.2 P0.6 P0.7 P0.1 P0.0 P1.1 P1.0 输出 P3.0 P3.1 P3.2 P3.3 P1.7 P1.6 P2.5 P2.4 单元 8 9 10 11 12 13 14 15 PLA模块1 输入 P1.4 P1.5 P0.5 P0.4 P2.1 P2.0 P2.3 P2.6 输出 P3.4 P3.5 P3.6 P3.7 P0.3 P0.2 P1.3 P1.2 Rev. A | Page 73 of 96 地址 0xFFFF0B00 0xFFFF0B04 0xFFFF0B08 0xFFFF0B0C 0xFFFF0B10 0xFFFF0B14 0xFFFF0B18 0xFFFF0B1C 0xFFFF0B20 0xFFFF0B24 0xFFFF0B28 0xFFFF0B2C 0xFFFF0B30 0xFFFF0B34 0xFFFF0B38 0xFFFF0B3C 默认值 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 访问类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ADuC7122 表 115. PLAELMx寄存器位功能描述 位 31:11 10:9 8:7 6 值 1 0 5 1 0 4:1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 表116. PLACLK寄存器 说明 保留。 Mux0控制位(见表118)。 Mux1控制位(见表118)。 Mux2控制位。 用户置1,选择Mux0的输出。 用户清0,选择PLADIN寄存器中的位值。 Mux3控制位。 置1,选择特定单元的输入引脚。 清0,选择Mux1的输出。 查找表控制位。 0。 或非。 B与A非。 A非。 A与B非。 B非。 异或。 与非。 与。 同或。 B。 A非或B。 答: A或B非。 或。 1。 Mux4控制位。置1,旁路触发器。 清0,使用触发器(默认为清0)。 名称 PLACLK 地址 0xFFFF0B40 默认值 0x00 PLACLK是模块0和模块1触发器的时钟选择寄存器。注意 当使用GPIO引脚作为PLA模块的时钟输入时,最大频率为 41.78 MHz。 表117. PLACLK寄存器位功能描述 位 7 6:4 值 000 001 010 011 100 101 其他 3 2:0 000 001 010 011 100 101 其他 说明 保留。 模块1时钟源选择。 P0.5引脚连接的GPIO时钟。 P0.0引脚连接的GPIO时钟。 P0.7引脚连接的GPIO时钟。 HCLK。 外部晶振(OCLK) (32.768 kHz)。 定时器1溢出。 保留。 保留。 模块0时钟源选择。 P0.5引脚连接的GPIO时钟。 P0.0引脚连接的GPIO时钟。 P0.7引脚连接的GPIO时钟。 HCLK。 外部晶振(OCLK) (32.768 kHz)。 定时器1溢出。 保留。 表118. 反馈配置 位 10:9 8:7 值 00 01 10 11 00 01 10 11 PLAELM0 单元15 单元2 单元4 单元6 单元1 单元3 单元5 单元7 访问类型 R/W PLAELM1至PLAELM7 单元0 单元2 单元4 单元6 单元1 单元3 单元5 单元7 Rev. A | Page 74 of 96 PLAELM8 单元7 单元10 单元12 单元14 单元9 单元11 单元13 单元15 PLAELM9至PLAELM15 单元8 单元10 单元12 单元14 单元9 单元11 单元13 单元15 ADuC7122 表119. PLAIRQ寄存器 名称 PLAIRQ 地址 0xFFFF0B44 默认值 0x00000000 访问类型 R/W PLAIRQ可以使能IRQ0和/或IRQ1和选择IRQ中断源。 值 1 0 11:8 0000 0001 1111 7:5 4 3:0 0000 0001 1111 说明 保留。 PLA IRQ1使能位。 置1,使能PLA输出IRQ1。 清0,禁用PLA输出IRQ1。 PLA IRQ1中断源。 PLA单元0。 PLA单元1。 PLA单元15。 保留。 PLA IRQ0使能位。 置1,使能PLA输出IRQ0。 清0,禁用PLA输出IRQ0。 PLA IRQ0中断源。 PLA单元0。 PLA单元1。 PLA单元15。 地址 0xFFFF0B48 默认值 0x00000000 访问类型 0x00000000 R/W 表125. PLADOUT寄存器 名称 PLADOUT 1 0 3:0 0000 0001 1111 默认值 0x00000000 访问类型 R 表126. PLADOUT寄存器位功能描述 位 31:16 15:0 说明 保留。 单元15至单元0的输出位。 表127. PLACLK寄存器 名称 PLACLK 访问类型 R/W 地址 0xFFFF0B40 默认值 0x00 访问类型 W PLACLK是PLA锁定选项。位0只可以写入一次。该位一旦 被置1,除了PLADIN寄存器外,其它任何PLA寄存器的值 都不允许修改。开发系统提供了一套PLA工具,通过它可 以很容易地对PLA进行配置。 表122. PLAADC寄存器位功能描述 值 地址 0xFFFF0B50 PLADOUT是一个PLA的数据输出寄存器。这个寄存器是 始终更新的。 PLAADC是配置PLA作为ADC起始转换信号来源的寄存器。 位 31:5 4 0xFFFF0B4C PLADIN是一个PLA的数据输入寄存器。 表121. PLAADC寄存器 名称 PLAADC 默认值 PLADIN 表124. PLADIN寄存器位功能描述 位 说明 保留。 31:16 15:0 单元15至单元0的输入位。 表120. PLAIRQ寄存器位功能描述 位 15:13 12 表123. PLADIN寄存器 名称 地址 说明 保留。 ADC转换启动使能位。 置1,使能从PLA启动ADC转换。 清0,禁用从PLA启动ADC转换。 ADC转换起始源选择位。 PLA单元0。 PLA单元1。 PLA单元15。 Rev. A | Page 75 of 96 ADuC7122 中断系统 ADuC7122拥有由中断控制器控制的27个中断源。除用户 可编程的软件中断(SWI)外,其余中断均由片内外设产生。 ARM7TDMI CPU内核只能识别以下两类中断:正常中断 请求(IRQ)和快速中断请求(FIQ)。所有中断都可以被单独 屏蔽。 ADuC7122提供一个矢量中断控制器(VIC),用于支持中断 嵌套(最高可达8级嵌套)。此外,VIC还可以让编程人员为 所有中断源指定优先级。通过设置IRQCONN寄存器的 ENIRQN位,可以启用中断嵌套功能。当整个矢量中断控 制器被使能后,需额外用到大量寄存器。 器件内部有许多用于控制和配置中断系统的寄存器。每一 个IRQ寄存器和FIQ寄存器中的控制位都代表相同的中断 源,如表128所示。 内 核 开 始 执 行 中 断 服 务 程 序 (ISR)后 , 应 立 即 保 存 IRQSTA/FIQSTA,以确保能够响应所有有效中断源。 表128. IRQ/FIQ1寄存器位功能描述 位 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 说明 所有中断的逻辑或(限FIQ) 软件中断 定时器0 定时器1 定时器2或唤醒定时器 定时器3或看门狗定时器 定时器4 保留 PSM 未定义 闪存控制0 闪存控制1 模数转换器 UART SPI I2C0主机IRQ I2C0从机IRQ I2C1主机IRQ I2C1从机IRQ XIRQ0(GPIO IRQ0) XIRQ1(GPIO IRQ1) XIRQ2 (GPIO IRQ2) XIRQ3 (GPIO IRQ3) PWM XIRQ4(GPIO IRQ4) XIRQ5(GPIO IRQ5) PLA IRQ0 PLA IRQ1 注释 任意FIQ激活时,该位置1 用户可编程中断源 通用定时器0 通用定时器1 通用定时器2或唤醒定时器 通用定时器3或看门狗定时器 通用定时器4 保留 电源监控器 该位未使用 模块0中断的闪存控制器 模块1中断的闪存控制器 ADC中断源位 UART中断源位 SPI中断源位 I2C主机中断源位 I2C从机中断源位 I2C主机中断源位 I2C从机中断源位 外部中断0 外部中断1 外部中断2 外部中断3 PWM触发中断源位 外部中断4 外部中断5 PLA模块0 IRQ位 PLA模块1 IRQ位 适用于IRQEN、FIQEN、IRQCLR、FIQCLR、IRQSTA和FIQSTA寄存器。 Rev. A | Page 76 of 96 ADuC7122 IRQ IRQSTA 中断请求(IRQ)是进入处理器IRQ模式的一个异常信号。它 用于内、外部事件的通用中断处理。 IRQSTA是一个只读寄存器,提供当前使能的IRQ源的状态 (IRQSIG和IRQEN对应位进行逻辑“与”操作)。当置1时,这 个源将向ARM7TDMI内核发出一个有效的IRQ中断请求。 没有优先级编码器和中断矢量产生。该功能可以在软件中 通过一个普通的中断处理程序实现。 B241 所 有 的 32个 位 经 过 逻 辑 “或 ”运 算 后 , 形 成 要 发 送 给 ARM7TDMI内核的IRQ信号。器件有4个专门用于IRQ的32 位寄存器:IRQSIG、IRQEN、IRQCLR和IRQSTA。 IRQSTA寄存器 IRQSIG B18 名称: IRQSTA 地址: 0xFFFF0000 默认值: 0x00000000 访问类型: 只读 IRQSIG反映不同IRQ源的状态。如果一个外设产生了一个 IRQ信号,IRQSIG中相应的位就会被置1;否则就会被清0。当 特定外设的中断请求取消时,IRQSIG的位就会被清0。通 过设置IRQEN寄存器,可屏蔽所有IRQ中断源。IRQSIG为 只读寄存器。 IRQSIG寄存器 B871 名称: IRQSIG 地址: 0xFFFF0004 默认值: 0x00000000 访问类型: 只读 快速中断请求(FIQ) 快速中断请求(FIQ)是进入处理器FIQ模式的一个异常信号。 提供此信号的目的是以低延迟处理数据传输或通信通道任 务。FIQ接口与IRQ接口相同,但它提供二级中断(最高优 先级)。器件内有4个32位寄存器专门用于FIQ,包括: FIQSIG、FIQEN、FIQCLR和FIQSTA。 B37 IRQEN IRQEN提供当前使能屏蔽的值。将该寄存器的某一位置1,可 使能相应的中断请求,此时将产生IRQ异常。将某一位清0, 可禁用或屏蔽相应的中断请求,此时将无法产生IRQ异常。 IRQEN寄存器无法用来禁用中断。 IRQEN寄存器 名称: IRQEN 地址: 0xFFFF0008 默认值: 0x00000000 访问类型: 读/写 B971 FIQSTA的位31至位1通过逻辑“或”运算产生FIQ信号到内核 以及FIQ和IRQ寄存器的位0(FIQ源)。 逻辑上FIQEN和FIQCLR不允许一个中断源同时使能IRQ和 FIQ屏蔽。FIQEN中的某一位被置1会导致IRQEN中的同一 位被清0。同样,IRQEN中的某一位被置1会导致FIQEN中 的同一位被清0。一个中断源可以同时被IRQEN屏蔽和 FIQEN屏蔽禁用。 FIQSIG FIQSIG反映不同FIQ源的状态。如果一个外设产生了一个 FIQ信号,FIQSIG中相应的位就会被置1;否则就会被清0。 当特定外设的中断请求取消时,FIQSIG的位就会被清0。 通过设置FIQEN寄存器,可屏蔽所有FIQ中断源。FIQSIG 为只读寄存器。 B341 IRQCLR B14 IRQCLR是一个只写寄存器,可清除IRQEN寄存器的相应 位,从而屏蔽相应的中断源。将该寄存器的某一位置1, 会清除IRQEN寄存器的相应位(但不影响其他位)。寄存器 IRQEN和IRQCLR配对使用,可以实现独立的使能屏蔽功 能,而无需执行原子性读-改-写操作。 FIQSIG寄存器 IRQCLR寄存器 B081 名称: IRQCLR 地址: 0xFFFF000C 默认值: 0x00000000 访问类型: 只写 名称: FIQSIG 地址: 0xFFFF0104 默认值: 0x00000000 访问类型: 只读 B281 Rev. A | Page 77 of 96 ADuC7122 FIQEN FIQEN提供了当前使能屏蔽值。将该寄存器的某一位置1, 可使能相应的中断请求,此时将产生FIQ异常。当某一位 被清0时,相应的中断源就会被禁止或屏蔽,此时将无法 产生FIQ异常。FIQEN寄存器无法用来禁用中断。 FIQEN寄存器 专用于设置软件中断的32位寄存器为SWICFG,见表129。 该寄存器允许控制可编程源中断。 表129. SWICFG寄存器位功能描述 位 31至3 2 说明 保留。 可编程中断FIQ。通过将该位置1或清0, 可将FIQSTA和FIQSIG寄存器的位1置1或清0。 可编程中断IRQ。通过将该位置1或清0, 可将IRQSTA和IRQSIG寄存器的位1置1或清0。 保留。 名称: 1 地址: 0 默认值: 注意,任何中断信号的有效时间不得少于中断延迟时间, 这样才能保证中断信号能够被中断控制器检测到或者被用 户在IRQSTA或FIQSTA寄存器中检测到。 183B 访问类型: 读/写 FIQCLR FIQCLR是一个只写寄存器,可清除FIQEN寄存器的相应位, 从而屏蔽相应的中断源。如将该寄存器的某一位置1,会 清除FIQEN寄存器的相应位(但不影响其它位)。寄存器 FIQEN与FIQCLR配合使用,可以实现独立的使能屏蔽功能, 而无需执行原子性读-改-写操作。 PROGRAMMABLE PRIORITY PER INTERRUPT (IRQP0/IRQP1/IRQP2) IRQ_SOURCE FIQ_SOURCE INTERNAL ARBITER LOGIC POINTER TO FUNCTION (IRQVEC) FIQCLR寄存器 名称: 地址: BIT 31 TO BIT 22 TO BIT 7 (IRQBASE) BIT 23 UNUSED 默认值: 访问类型: 只写 BIT 6 TO BIT 1 TO BIT 2 BIT 0 HIGHEST LSB PRIORITY ACTIVE IRQ 08755-037 INTERRUPT VECTOR 图36. 中断结构 FIQSTA 矢量中断控制器(VIC) FIQSTA是一个只读寄存器,提供当前使能的FIQ源的状态 (FIQSIG和FIQEN对应位进行逻辑“与”操作)。当置1时,这 个源将向ARM7TDMI内核发出一个有效的FIQ中断请求。 没有优先级编码器和中断矢量产生。该功能可以在软件中 通过一个普通的中断处理程序实现。 ADuC7122集成一个增强的中断控制系统或矢量中断控制 器。通过设置IRQCONN寄存器的位0,可以启用针对IRQ 中断源的矢量中断控制器。同样,通过设置IRQCONN寄 存器的位1,可以启用针对FIQ中断源的矢量中断控制器。 矢量中断控制器在以下几个方面增强了标准IRQ/FIQ中断: FIQSTA寄存器 • 矢量中断——允许用户为每个中断源单独定义中断服务 程序地址。这可以通过IRQBASE和IRQVEC寄存器来完成。 • IRQ/FIQ中断——可根据优先级进行嵌套,最多允许8级 嵌套。FIQ中断的优先级高于IRQ中断。因此,当使能 FIQ和IRQ的矢量中断控制器且优先级为最高时,将有 可能形成16个不同的中断级。 • 可编程中断优先级——通过设置IRQP0至IRQP2寄存器, 可以为中断源分配不同的中断优先级(1至8)。 185B 名称: 地址: 默认值: 访问类型: 只读 可编程中断 由于可编程中断是无法屏蔽的,因此,它们由另外一个寄 存器(SWICFG)来控制,通过这个寄存器可以同时写入 IRQSTA和IRQSIG寄存器和/或FIQSTA和FIQSIG寄存器。 Rev. A | Page 78 of 96 ADuC7122 VIC寄存器 优先级寄存器 B15 IRQBASE寄存器 IRQBASE(矢量基址寄存器)用于指向存储32位指针地址的 存储器的起始地址。这些指针地址是各个终端服务程序的 地址。 IRQP0寄存器 B781 名称: IRQP0 地址: 0xFFFF0020 名称: IRQBASE 默认值: 0x00000000 地址: 0xFFFF0014 访问类型: 读/写 默认值: 0x00000000 表132. IRQP0寄存器位功能描述 访问类型: 读/写 表130. IRQBASE寄存器位功能描述 位 31:16 15:0 类型 只读 R/W 初始值 保留 0 说明 读数始终为0 矢量基地址 IRQVEC寄存器 IRQVEC(IRQ中断矢量寄存器)指向包含指向一个存储地址, 该地址包含当前活动IRQ的中断服务程序的指针。当产生 IRQ中断,且已通过设置IRQCONN的位0启用IRQ中断嵌 套功能后,该寄存器为只读的。 位 31:27 26:24 23 22:20 19 18:16 15 14:12 11 10:8 7 6:4 3:0 名称 保留 T4PI 保留 T3PI 保留 T2PI 保留 T1PI 保留 T0PI 保留 SWINTP 保留 说明 保留位。 为定时器4设置中断优先级(0至7)。 保留位。 为定时器3设置中断优先级(0至7)。 保留位。 为定时器2设置中断优先级(0至7)。 保留位。 为定时器1设置中断优先级(0至7)。 保留位。 为定时器0设置中断优先级(0至7)。 保留位。 为软件中断源设置中断优先级(0至7)。 中断0不能设置优先级。 名称: IRQVEC 地址: 0xFFFF001C 默认值: 0x00000000 名称: IRQP1 访问类型: 只读 地址: 0xFFFF0024 默认值: 0x00000000 访问类型: 读/写 IRQP1寄存器 B81 表131. IRQVEC寄存器位功能描述 位 31:23 22:7 6:2 类型 只读 R/W 只读 初始值 0 0 0 1:0 保留 0 说明 读数始终为0。 IRQBASE寄存器值。 最高优先级IRQ中断源。这些位存 储的数据对应0至27其中的一个 数字,代表可能的中断源。例如, 如果当前活动的优先级最高的IRQ 是定时器1,那么这些位的值为 00011。 保留位。 Rev. A | Page 79 of 96 ADuC7122 IRQP3寄存器 表133. IRQP1寄存器位功能描述 位 31 30:28 27 26:24 23 22:20 19 18:16 15 14:12 名称 保留 I2C0MPI 保留 SPIPI 保留 UARTPI 保留 ADCPI 保留 Flash1PI 11 10:8 保留 Flash0PI 7:3 2:0 保留 PSMPI B091 说明 保留位。 为I2C0主机设置中断优先级(0至7)。 保留位。 为SPI设置中断优先级(0至7)。 保留位。 为UART设置中断优先级(0至7)。 保留位。 为ADC中断源设置中断优先级(0至7)。 保留位。 为闪存模块1控制器中断源设置中断优先级 (0至7)。 保留位。 为闪存模块0控制器中断源设置中断优先级 (0至7)。 保留位。 为电源监控器中断源设置中断优先级(0至7)。 名称: IRQP3 地址: 0xFFFF002C 默认值: 0x00000000 访问类型: 读/写 表135. IRQP3寄存器位功能描述 位 31:15 14:12 11 10:8 7 6:4 3 2:0 名称 保留 PLA1PI 保留 PLA0PI 保留 IRQ5PI 保留 IRQ4PI 说明 保留位。 为PLA0设置中断优先级(0至7)。 保留位。 为PLA0设置中断优先级(0至7)。 保留位。 为IRQ5设置中断优先级(0至7)。 保留位。 为IRQ4设置中断优先级(0至7)。 IRQCONN寄存器 IRQP2寄存器 B981 名称: IRQP2 地址: 0xFFFF0028 默认值: 0x00000000 访问类型: 读/写 表134. IRQP2寄存器位功能描述 位 名称 说明 31 30:28 27 26:24 23 22:20 19 18:16 15 14:12 11 10:8 7 6:4 3 2:0 保留 PWMPI 保留 IRQ3PI 保留 IRQ2PI 保留 IRQ1PI 保留 IRQ0PI 保留 I2C1SPI 保留 I2C1MPI 保留 I2C0SPI 保留位。 为PWM设置中断优先级(0至7)。 保留位。 为IRQ3设置中断优先级(0至7)。 保留位。 为IRQ2设置中断优先级(0至7)。 保留位。 为IRQ1设置中断优先级(0至7)。 保留位。 为IRQ0设置中断优先级(0至7)。 保留位。 为I2C1从机设置中断优先级(0至7)。 保留位。 为I2C1主机设置中断优先级(0至7)。 保留位。 为I2C0从机设置中断优先级(0至7)。 IRQCONN寄存器为IRQ和FIQ控制寄存器,它包含两个有 效位。第一位用于使能IRQ中断的嵌套和优先级设置,而 第二位用于使能FIQ中断的嵌套和优先级设置。 将这两位清0,则FIQ和IRQ仍可使用,但无法嵌套IRQ或 FIQ。此外,也无法设置中断源的中断优先级。在此默认 状态下,FIQ的优先级高于IRQ的优先级。 名称: IRQCONN 地址: 0xFFFF0030 默认值: 0x00000000 访问类型: 读/写 表136. IRQCONN寄存器位功能描述 位 31:2 1 名称 保留 ENFIQN 说明 这些位为保留位,不允许向其中写入数据。 0 ENIRQN 将该位置1,可以使能IRQ中断嵌套。将该 位清0,则不能设置IRQ中断嵌套及优先级。 Rev. A | Page 80 of 96 将该位置1,可以使能FIQ中断嵌套。将 该位清0,则不能设置FIQ中断嵌套及优 先级。 ADuC7122 IRQSTAN寄存器 FIQSTAN寄存器 如果IRQCONN[0]被置位且IRQVEC被读取,则这些位中 的一位将被置位。IRQ的优先级决定了第几位将被置位。 例如,如果IRQ中断的优先级为0,则位0被置位;如果IRQ 中断的优先级为1,则位1被置位。将该寄存器中的某一位 置1,可屏蔽所有与该位所对应的中断具有相同或更低优 先级的中断。 如果IRQCONN[1]被置位且FIQVEC被读取,则这些位中的 一位将被置位。FIQ的优先级决定了第几位将被置位。例 如,如果FIQ中断的优先级为0,则位0被置位;如果FIQ中 断的优先级为1,则位1被置位。 B351 如需清0该寄存器中的某一位,必须先将其它与更高优先 级对应的位清0。一次只能清0一位。例如,如果该寄存器 的 值 为 0x09, 第 一 次 写 0xFF可 以 将 该 寄 存 器 的 值 改 为 0x08,再一次写0xFF可以将该寄存器的值改为0x00。 将该寄存器中的某一位置1,可屏蔽所有与该位所对应的 中断具有相同或更低优先级的中断。 如需清0该寄存器中的某一位,必须先将其它与更高优先 级对应的位清0。一次只能清0一位。例如,如果该寄存器 的 值 为 0x09, 第 一 次 写 0xFF可 以 将 该 寄 存 器 的 值 改 为 0x08,再一次写0xFF可以将该寄存器的值改为0x00。 名称: IRQSTAN 名称: FIQSTAN 地址: 0xFFFF003C 地址: 0xFFFF013C 默认值: 0x00000000 默认值: 0x00000000 访问类型: 读/写 访问类型: 读/写 表137. IRQSTAN寄存器位功能描述 位 31:8 7:0 名称 保留 说明 这些位为保留位,不允许向其中写入数据。 将该位置1,可以使能FIQ中断嵌套。将该位 清0,则不能设置FIQ中断嵌套及优先级。 表139. FIQSTAN寄存器位功能描述 位 31:8 7:0 名称 保留 说明 这些位为保留位,不允许向其中写入数据。 将该位置1,可以使能FIQ中断嵌套。 将该位清0,则不能设置FIQ中断嵌套及 优先级。 FIQVEC寄存器 FIQVEC(FIQ中断矢量寄存器)指向包含指向一个存储地址, 该地址包含当前活动FIQ的中断服务程序的指针。当产生 FIQ中断,且已通过设置IRQCONN的位1启用FIQ中断嵌套 功能后,该寄存器为只读的。 名称: FIQVEC 地址: 0xFFFF011C 默认值: 0x00000000 访问类型: 只读 外部中断(IRQ0至IRQ5) B651 ADuC7122可支持6个外部中断源。这些外部中断源可单独 配置为电平触发、上升沿/下降沿触发。 为使能外部中断源,首先必须将FIQEN或IRQEN寄存器的 适当位置1。而要选择所需的边沿或电平触发,则必须正 确配置IRQCONE寄存器。 设置IRQCLRE中的适当位,可以清除边沿触发的外部IRQ 中断。 IRQCONE寄存器 B19 表138. FIQVEC寄存器位功能描述 位 31:23 22:7 6:2 1:0 类型 只读 R/W 保留 初始值 0 0 0 0 说明 读数始终为0。 IRQBASE寄存器值。 最高优先级FIQ中断源。这些位存 储的数据对应0至27其中的一个数 字,代表可能的中断源。例如, 如果当前活动的优先级最高的FIQ 是 定 时 器 1, 那 么 这 些 位 的 值 为 00011。 保留位。 名称: IRQCONE 地址: 0xFFFF0034 默认值: 0x00000000 访问类型: 读/写 Rev. A | Page 81 of 96 ADuC7122 表140. IRQCONE寄存器位功能描述 位 31:12 11:10 9:8 7:6 5:4 3:2 1:0 值 11 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00 名称 保留 IRQ5SRC[1:0] IRQ4SRC[1:0] IRQ3SRC[1:0] IRQ2SRC[1:0] IRQ1SRC[1:0] IRQ0SRC[1:0] 说明 这些位为保留位,不允许向其中写入数据。 外部IRQ5在下降沿触发。 外部IRQ5在上升沿触发。 外部IRQ5在低电平时触发。 外部IRQ5在高电平时触发。 外部IRQ4在下降沿触发。 外部IRQ4在上升沿触发。 外部IRQ4在低电平时触发。 外部IRQ4在高电平时触发。 外部IRQ3在下降沿触发。 外部IRQ3在上升沿触发。 外部IRQ3在低电平时触发。 外部IRQ3在高电平时触发。 外部IRQ2在下降沿触发。 外部IRQ2在上升沿触发。 外部IRQ2在低电平时触发。 外部IRQ2在高电平时触发。 外部IRQ1在下降沿触发。 外部IRQ1在上升沿触发。 外部IRQ1在低电平时触发。 外部IRQ1在高电平时触发。 外部IRQ0在下降沿触发。 外部IRQ0在上升沿触发。 外部IRQ0在低电平时触发。 外部IRQ0在高电平时触发。 Rev. A | Page 82 of 96 ADuC7122 在正常模式下,每当计数器的值达到0(递减计数)或满量程 (递增计数)时,都会产生一个IRQ中断。向某一定时器 (TxCLRI)的清除寄存器内写入任一数据,可以清除IRQ 中断。 IRQCLRE寄存器 B291 名称: IRQCLRE 地址: 0xFFFF0038 默认值: 0x00000000 访问类型: 只写 事件选择特性支持根据定时器0和定时器1灵活地产生中 断。T0CON和T1CON可用来配置中断源,如表142所示。 当定时器0或定时器1到期时,就会根据T0CON和T1CON 寄存器中的事件选择产生中断。 表141. IRQCLRE寄存器位功能描述 位 31:26 25 名称 保留 IRQ5CLRI 24 IRQ4CLRI 23 22 保留 IRQ3CLRI 21 IRQ2CLRI 20 IRQ1CLRI 19 IRQ0CLRI 18:0 保留 说明 这些位为保留位,不允许向其中写入数据。 必须在IRQ5中断服务程序中向该位写入1, 以清除边沿。 必须在IRQ4中断服务程序中向该位写入1, 以清除边沿。 此位为保留位,不允许向其中写入数据。 必须在IRQ3中断服务程序中向该位写入1, 以清除边沿触发的IRQ3中断。 必须在IRQ2中断服务程序中向该位写入1, 以清除边沿触发的IRQ2中断。 必须在IRQ1中断服务程序中向该位写入1, 以清除边沿触发的IRQ1中断。 必须在IRQ0中断服务程序中向该位写入1, 以清除边沿触发的IRQ0中断。 这些位为保留位,不允许向其中写入数据。 定时器 ADuC7122具有5个通用定时器/计数器。 • • • • • 定时器0 定时器1 定时器2或唤醒定时器 定时器3或看门狗定时器 定时器4 表142. 事件选择编号 事件选择(TxCON [16:12]) 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 中断号 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 名称 定时器0 定时器1 唤醒定时器(定时器2) 看门狗定时器(定时器3) 定时器4 保留 电源监控器 未定义 闪存模块0 闪存模块1 模数转换器 UART SPI I2C0主机 I2C0从机 I2C1主机 I2C1从机 外部IRQ0 时:分:秒:1/128格式 这5个定时器可以在自由模式或周期模式下工作。 当工作在自由模式时,计数器从最大值/最小值开始递减/ 递增至0/满量程,然后再从最大值/最小值重新开始递减/ 递增。 在周期模式下,计数器以载入寄存器(TxLD寄存器)中的值 为起始值递减/递增计数至0/满量程,然后再以该寄存器中 的值为起始值,重新开始计数。 通过访问计数器的值寄存器(TxVAL),可以随时读出计数 器的值。通过对某一定时器的控制寄存器(TxCON)进行写 操作,可以启动相应的定时器。 若要以“时:分:秒:百分数”格式使用定时器,应选择 32,768 kHz时钟和预分频值256。百位数字段不代表毫秒, 而是一秒的1/128 (256/32,768)。代表时、分、秒的位在寄存 器中不是连续的。使用TxCON[5:4]设置的“时:分:秒: 百位数”格式时,这一配置适用于TxLD和TxVAL。详情参 见表143。 表143. 时:分:秒:百分数格式 位 31:24 23:22 21:16 15:14 13.8 7 6:0 Rev. A | Page 83 of 96 值 0至23或0至255 0 0至59 0 0至59 0 0至127 说明 小时 保留 分钟 保留 秒 保留 1/128秒 ADuC7122 定时器0—使用寿命定时器 表147. 定时器0控制寄存器 定时器0是一个带有可编程预分频器的通用48位递增计数 或16位递增/递减计数定时器。定时器0采用内核时钟工作, 预分频器为1、16、256或32,768。这样,当内核在41.78 MHz频 率下工作时,如预分频系数为1,定时器的最小分辨率能 够达到22 ns。定时器0也可采用未分频的内核时钟、内部 32 kHz振荡器或外部32 kHz晶振工作。 名称 T0CON 工作在48位模式时,定时器0从0开始递增计数。当前计数 器值从T0VAL0和T0VAL1读取。 工作在16位模式时,定时器0既可递增计数,也可递减计 数。16位值可通过写入T0LD以载入到计数器内。当前计数 器值可从T0VAL0读取。定时器0有一个事件捕获寄存器 (T0CAP),它可以被选定的IRQ中断源初始置位所触发。 中断触发时,定时器的当前值被复制到T0CAP内,与此同 时,定时器继续运行。此功能可用来确定事件断言,其精 度高于单独通过响应中断的方式。 当定时器0溢出或执行T0CLRI写操作后,定时器0将从 T0LD重载数值。 表144. 定时器0接口寄存器 T0CAP T0VAL0/T0VAL1 T0CLRI T0CON 说明 该16位寄存器保存计数器的16位载入值。仅 适用于16位模式。 该16位寄存器保存已使能IRQ事件所捕捉的 16位数值。仅适用于16位模式。 T0VAL0是一个16位寄存器,用于保存16个最 低有效位(LSB)。 T0VAL1是一个32位寄存器,用于保存32个最 高有效位(MSB)。 8位寄存器。向其中写入任意值就可以清除 中断。仅适用于16位模式。 配置寄存器。 表145. 定时器0值寄存器 名称 T0VAL0 T0VAL1 地址 0xFFFF0304 0xFFFF0308 默认值 0x00, 0x00 访问类型 R R T0VAL0和T0VAL1分别是16位和32位寄存器,保存16个LSB 和32个MSB。T0VAL0和T0VAL1为只读寄存器。16位模式 使用16位T0VAL0。48位模式同时使用16位T0VAL0和32位 T0VAL1。 表146. 定时器0捕捉寄存器 名称 T0CAP 地址 0xFFFF0314 默认值 0x00 访问类型 R 默认值 0x00 访问类型 R/W 该17位寄存器用于设置定时器0的工作模式。 表148. T0CON寄存器位功能描述 位 31:18 17 值 16:12 11 10:9 00 01 10 11 8 7 定时器0接口有6个寄存器,如表144所示。 名称 T0LD 地址 0xFFFF030C 6 5 4 0 1 3:0 0000 0100 1000 1111 说明 保留。 事件选择位。 用户置1,使能对事件的实时捕捉。 用户清0,禁用对事件的实时捕捉。 事件选择(ES)范围是0至17。事件说明参见 “定时器”部分。 保留。 时钟选择。 内部32 kHz振荡器。 UCLK。 外部32 kHz晶振。 HCLK。 递增计数。仅适用于16位模式。用户置1, 定时器0递增计数。用户清0,定时器0递减 计数(默认)。 定时器0使能位。 用户置1,使能定时器0。用户清0,禁用定 时器0(默认)。 定时器0模式。 用户置1,选择周期模式。用户清0,选择自 由模式(默认)。 保留。 定时器0工作模式。 16位工作模式(默认)。 48位工作模式。 预分频器。 时钟源/1(默认)。 时钟源/16。 时钟源/256。 时钟源/32,768。 表149. 定时器0载入寄存器 名称 T0LD 地址 0xFFFF0300 默认值 0x00 访问类型 R/W T0LD是一个16位寄存器,用于保存载入计数器的16位值; 仅适用于16位模式。 表150. 定时器0清零寄存器 名称 T0CLRI 地址 0xFFFF0310 默认值 0x00 访问类型 W 通过用户代码向该8位只写寄存器写入任意值,可以刷新 (重载)定时器0。 这是一个16位寄存器,用于保存已使能IRQ事件所捕捉的 16位数值;仅适用于16位模式。 Rev. A | Page 84 of 96 ADuC7122 定时器1—通用定时器 定时器1是一个带有可编程预分频器的32位通用定时器, 可递增计数或递减计数。预分频器时钟源可以是32 kHz内部 振荡器、32 kHz外部晶振、内核时钟或未分频的PLL时钟 输出。时钟源分频系数共有1、16、256或32,768四种。这 样,当CD为0且内核在41.78 MHz频率下工作时,如预分频 系数为1,定时器的最小分辨率能够达到42 ns。 计数器可以采用标准的32位数格式或者时间格式(时:分: 秒:百分数)。 定时器1有一个事件捕获寄存器(T1CAP),它可以被选定的 IRQ中断源初始置位所触发。中断触发时,定时器的当前 值被复制到T1CAP内,与此同时,定时器继续运行。此功 能可用来更精确地判断事件断言。 定时器1接口有5个寄存器,如表151所示。 T1VAL T1CAP T1CLRI T1CON 表152. 定时器1载入寄存器 名称 T1LD 地址 0xFFFF0320 默认值 0x00000 访问类型 R/W T1LD是一个32位寄存器,用于保存载入计数器的32位值。 表153. 定时器1清零寄存器 名称 T1CLRI 地址 0xFFFF032C 默认值 0x00 访问类型 W 通过用户代码向该8位只写寄存器写入任意值,可以刷新 (重载)定时器1。 表154. 定时器1值寄存器 名称 T1VAL 地址 0xFFFF0324 默认值 0x0000 访问类型 R T1VAL是一个32位寄存器,用于保存定时器1的当前值。 表151. 定时器1接口寄存器 寄存器 T1LD 当定时器 1溢出或执行T1ICLR写操作后,定时器 1将从 T1LD载入数值。 说明 32位寄存器。保存32位无符号整数。 这是一个只读寄存器。 32位寄存器。保存32位无符号整数。 32位寄存器。保存32位无符号整数。 这是一个只读寄存器。 8位寄存器。向其中写入任意值,可以清除定时器1 中断。 配置寄存器。 注意,当器件处于低功耗模式且定时器1从GPIO或低功耗 振荡器源接收时钟信号时,定时器1仍继续工作。 表155. 定时器1捕捉寄存器 名称 T1CAP 地址 0xFFFF0330 默认值 0x00 访问类型 R 这是一个32位寄存器,用于保存使能IRQ事件所捕捉的32 位数值。 表156. 定时器1控制寄存器 名称 T1CON 地址 0xFFFF0328 默认值 0x0000 该32位寄存器用于设置定时器1的工作模式。 Rev. A | Page 85 of 96 访问类型 R/W ADuC7122 表157. T1CON寄存器位功能描述 位 31:24 23 22:20 19 18 17 值 1 0 16:12 11:9 000 001 010 011 8 1 0 7 1 0 6 1 0 5:4 00 01 10 11 3:0 0000 0100 1000 1111 说明 8位后分频器。 使能对后分频器的写操作。 保留。 后分频器比较标志。 定时器1中断产生选择标志。 事件选择位。 用户置1,使能对事件的实时捕捉。 用户清0,禁用对事件的实时捕捉。 事件选择范围是0至17。事件说明参见“定时器”部分。 时钟选择。 内部32 kHz振荡器(默认)。 内核时钟。 UCLK。 P0.6。 递增计数。 用户置1,定时器1递增计数。 用户清0,定时器1递减计数(默认)。 定时器1使能位。 用户置1,使能定时器1。 用户清0,禁用定时器1(默认)。 定时器1模式。 用户置1,选择周期模式。 用户清0,选择自由模式(默认)。 格式。 二进制(默认)。 保留。 时:分:秒:百分数:23小时至0小时。 时:分:秒:百分数:255小时至0小时。 预分频器。 时钟源/1(默认)。 时钟源/16。 时钟源/256。 时钟源/32,768。 Rev. A | Page 86 of 96 ADuC7122 定时器2—唤醒定时器 表159. 定时器2载入寄存器 定时器2是一个带有可编程预分频器的32位唤醒定时器, 可递增计数或递减计数。预分频器直接从4个时钟源中的 一个接收时钟信号:内核时钟(默认选择)、内部32.768 kHz 振荡器、外部32.768 kHz时钟晶体或PLL未分频时钟。所选 的时钟源可经1、16、256或32768分频。当内核时钟被禁用 后,唤醒定时器仍继续工作。这样,当内核在41.78 MHz频 率下工作时,如预分频系数为1,定时器的最小分辨率能 够达到22 ns。如果通过IRQEN[4]使能定时器2,就可以捕捉 当前定时器值(见表128)。 名称 T2LD 计数器可以采用标准的32位数格式或者时间格式(时:分: 秒:百分数)。 当定时器 2溢出或执行T2ICLR写操作后,定时器2将从 T2LD载入数值。 地址 0xFFFF0340 表160. 定时器2清零寄存器 名称 T2CLRI 地址 0xFFFF034C 名称 T2VAL 地址 0xFFFF0344 默认值 0x0000 访问类型 R T2VAL为32位寄存器,用于保存定时器2的当前值。 名称 T2CON T2CON 访问类型 W 表161. 定时器2值寄存器 表158. 定时器2接口寄存器 T2CLRI 默认值 0x00 通过用户代码向该8位只写寄存器写入任意值,可以刷新 (重载)定时器2。 表162. 定时器2控制寄存器 说明 32位寄存器。保存32位无符号整数。 32位寄存器。保存32位无符号整数。 这是一个只读寄存器。 8位寄存器。向其中写入任意值就可以 清除定时器2中断。 配置寄存器。 访问类型 R/W T2LD是一个32位寄存器,用于保存载入计数器的32位值。 定时器2接口有4个寄存器,如表158所示。 寄存器 T2LD T2VAL 默认值 0x00000 地址 0xFFFF0348 默认值 0x0000 该32位寄存器用于设置定时器2的工作模式。 Rev. A | Page 87 of 96 访问类型 R/W ADuC7122 表163. T2CON寄存器位功能描述 位 31:11 10:9 值 00 01 10 11 8 1 0 7 1 0 6 1 0 5:4 00 01 10 11 3:0 0000 0100 1000 1111 说明 保留。 时钟源选择。 内部32.768 kHz振荡器(默认)。 内核时钟。 外部32.768 kHz时钟晶体。 UCLK。 递增计数。 用户置1,定时器2递增计数。 用户清0,定时器2递减计数(默认)。 定时器2使能位。 用户置1,使能定时器2。 用户清0,禁用定时器2(默认)。 定时器2模式。 用户置1,选择周期模式。 用户清0,选择自由模式(默认)。 格式。 二进制(默认)。 保留。 时:分:秒:百分数:23小时至0小时。 时:分:秒:百分数:255小时至0小时。 预分频器。 时钟源/1(默认)。 时钟源/16。 源时钟/256(此设置应与定时器2格式10和格式11一起使用)。 时钟源/32,768。 Rev. A | Page 88 of 96 ADuC7122 定时器3在JTAG调试访问期间自动暂停,并且只在JTAG放 弃内核控制权后才会重新开始计数。默认情况下,定时器 3在断电期间仍会继续计数。但可通过将T3CON位0置1来 禁用。建议采用默认值,即在断电期间仍允许看门狗定时 器继续计数。 定时器3—看门狗定时器 B97 16-BIT LOAD PRESCALER 1, 16, OR 256 16-BIT UP/DOWN COUNTER TIMER3 VALUE WATCHDOG RESET TIMER3 IRQ 定时器3接口 08755-038 LOW POWER 32.768kHz 定时器3接口有4个寄存器,如下表所示。 图37. 定时器3框图 定时器3共有两种工作模式:正常模式和看门狗模式。看 门狗定时器用于强制处理器从非法软件状态恢复到正常工 作状态。一旦看门狗定时器被使能,它需要周期性服务来 阻止自身强制处理器执行复位操作。 当定时器 3溢出或执行T3ICLR写操作后,定时器3将从 T3LD载入数值。 表164. 定时器3接口寄存器 寄存器 T3CON T3LD T3VAL T3ICLR 正常模式 说明 配置寄存器。 6位寄存器(位0至位15);保存16位无符号整数。 6位寄存器(位0至位15);保存16位无符号整数。 这是一个只读寄存器。 8位寄存器。正常模式下向这个寄存器写入任意值 会清除定时器3中断;在看门狗模式下向这个寄存 器写入任意值就会重新开始一个超时周期。 在正常模式下的定时器3和在16位工作模式下的定时器0相 同,但时钟源除外。时钟源采用32.768 kHz振荡器,分频系 数共有1、16和256三种。定时器3也有捕捉功能,如果通过 IRQEN[5]使能定时器2,就可以捕捉当前定时器值。 表165. 定时器3载入寄存器 看门狗模式 表166. 定时器3值寄存器 看门狗模式通过设置T3CON[5]进入。定时器3从T3LD寄存 器中的超时值开始递减计数,直至计数值为0。当使用 1/256的最大预分频和T3LD的满量程值时,最长超时时间 为512秒。 名称 T3VAL 由于Flash/EE存储器完成一次页擦除操作和内核执行需要 20 ms,为避免与此发生任何冲突,用户软件不得将超时周 期设为小于30 ms。 名称 T3CLRI T3VAL到达0后,取决于T3CON[1]状态,就会产生复位或 中断。为避免产生复位或者中断,向T3ICLR内写入任何值 必须在T3VAL达到0之前进行。将T3LD值重新载入计数器 内后就会开始一个新的超时周期。 一旦进入看门狗模式,T3LD和T3CON就会被写保护。除 非通过上电复位将看门狗定时器复位,否则,无法修改这 两个寄存器内的数据。其它任何复位事件产生后,看门狗 定时器仍会继续计数。看门狗定时器应在用户代码的最初 行内配置以免陷入看门狗复位的无限循环内。 名称 T3LD 地址 0xFFFF0360 默认值 0x03D7 访问类型 R/W 该16位寄存器用于保存定时器3的重新载入值。 地址 0xFFFF0364 默认值 0x03D7 访问类型 R 该16位只读寄存器用于保存定时器3的当前计数值。 表167. 定时器3清零寄存器 地址 0xFFFF036C 默认值 0x00 访问类型 W 在看门狗模式下,通过用户代码向该8位只写寄存器写入 任意值,可刷新(重新载入)定时器3,以防止产生看门狗定 时器复位。 表168. 定时器3控制寄存器 名称 T3CON 地址 0xFFFF0368 默认值 0x0000 访问类型 R/W一次 该16位寄存器用于配置定时器3的工作模式,该寄存器功 能的详细说明见表169。 Rev. A | Page 89 of 96 ADuC7122 表169. T3CON寄存器位功能描述 位 16:9 8 值 1 0 7 1 0 6 1 0 5 1 0 4 1 0 3:2 00 01 10 11 1 1 0 0 1 0 说明 这些位保留,应由用户代码写入0。 递增/递减计数使能。 用户代码置1,配置定时器3递增计数。 用户代码清0,配置定时器3递减计数。 定时器3使能。 用户代码置1,使能定时器3。 用户代码清0,禁用定时器3。 定时器3工作模式。 用户代码置1,定时器3采用周期模式。 用户代码清0,可将定时器3的工作模式设定为自由模式。 看门狗定时器模式使能。 用户代码置1,使能看门狗模式。 用户代码清0,禁用看门狗模式。 安全清除位。 用户置1,使能安全清除。 用户清0,禁用安全清除(默认)。 定时器3时钟(32.768 kHz)预分频器。 时钟源/1(默认)。 保留。 保留。 保留。 看门狗定时器IRQ使能。 用户代码置1,在看门狗计数值为0时产生IRQ中断而非复位。 用户代码清0,禁用IRQ选项。 PD_OFF。 用户代码置1,在利用POWCON寄存器的位[6:4]使外设掉电时停止定时器3。 用户代码清0,在利用POWCON寄存器的位[6:4]使外设掉电时使能定时器3。 Rev. A | Page 90 of 96 ADuC7122 安全清除位(仅用于看门狗模式) 定时器4接口有5个寄存器。 安全清除位(T3CPM[4])用于实现更高层次的保护。当它被 置1时,一个特殊的数值序列就必须写入T3CLRI中来避免 看门狗复位。这个特殊的数值序列是由一个8位线性反馈 移位寄存器(LFSR)多项式 = X8 + X6 + X5 + X + 1产生的(参 见图38)。 • T4LD、T4VAL和T4CAP都是32位寄存器,保存32位无 符号整数。T4VAL和T4CAP是只读的。 • T4ICLR是一个8位寄存器。向其中写入任意值,可以清 除定时器1中断。 • T4CON是配置寄存器。 在进入看门狗模式之前必须先向T3ICLR中写入一个初始值 或种子。在进入看门狗模式以后,再次写入到T3CLRI的值 必须与期望值相匹配。如果匹配,当计数器被重新载入 时,LFSR就会进入下一状态。如果不匹配,即使计数器没 有计满,也将立即产生复位。 注意,当器件处于低功耗模式且定时器4从GPIO或振荡器 源接收时钟信号时,定时器4仍继续工作。 当定时器4溢出或执行T4CLRI写操作后,定时器4将从 T4LD重载数值。 表170. 定时器4载入寄存器 根据这个多项式的性质,0x00不应该作为初始值种子,因 为0x00会一直迫使系统快速复位。此外,LFSR的值不能被 访问,且必须在软件中产生和跟踪。 名称 T4LD 地址 0xFFFF0380 默认值 0x00000 访问类型 R/W T4LD是一个32位寄存器,用于保存载入计数器的32位值。 一个数值序列的示例如下所示: 1. 设定定时器3为看门狗模式之前,在T3CLRI中写入初始 种子0xAA。 2. 在T3CLRI中写入0xAA,定时器3被重载。 3. 在T3CLRI中写入0x37,定时器3被重载。 4. 在T3CLRI中写入0x6E,定时器3被重载。 5. 写入0x66。0xDC是期望值,看门狗将芯片复位。 表171. 定时器4清零寄存器 定时器4—通用定时器 名称 T4VAL 名称 T4CLRI 地址 0xFFFF038C 默认值 0x00 访问类型 W 通过用户代码向该8位只写寄存器写入任意值,可以刷新 (重载)定时器4。 表172. 定时器4值寄存器 定时器4是一个带有可编程预分频器的32位通用定时器, 可递增计数或递减计数。预分频器时钟源可以是32 kHz振荡 器、内核时钟或PLL为分频输出。时钟源分频系数共有1、 16、256或32,768四种。这样,当CD为0且内核在41.78 MHz 频率下工作时,如预分频系数为1(忽略外部GPIO),定时 器的最小分辨率能够达到42 ns。 地址 0xFFFF0384 默认值 0x0000 访问类型 R T4VAL是一个32位寄存器,用于保存定时器4的当前值。 表173. 定时器4捕捉寄存器 名称 T4CAP 地址 0xFFFF0390 默认值 0x00 访问类型 R 计数器可以采用标准的32位数格式或者时间格式(时:分: 秒:百分数)。 这是一个32位寄存器,用于保存使能IRQ事件所捕捉的32 位数值。 定时器4有一个事件捕获寄存器(T4CAP),它可以被选定的 IRQ中断源初始置位所触发。中断触发时,定时器的当前 值被复制到T4CAP内,与此同时,定时器继续运行。此功 能可用来更精确地判断事件断言。 表174. 定时器4控制寄存器 7 D Q 6 D Q 5 D 地址 0xFFFF0388 默认值 0x0000 该32位寄存器用于设置定时器4的工作模式。 Q 4 D Q 3 D Q 2 D Q 1 D Q 0 D 08755-039 Q 名称 T4CON CLOCK 图38. 8位LFSR Rev. A | Page 91 of 96 访问类型 R/W ADuC7122 表175. T4CON寄存器位功能描述 位 31:18 17 值 1 0 16:12 11:9 000 001 010 011 8 1 0 7 1 0 6 1 0 5:4 00 01 10 11 3:0 0000 0100 1000 1111 说明 保留。用户置0。 事件选择位。 用户置1,使能对事件的实时捕捉。 用户清0,禁用对事件的实时捕捉。 事件选择范围是0至31。事件说明参见“定时器”部分。 时钟选择。 32.768 kHz振荡器。 内核时钟。 UCLK。 UCLK。 递增计数。 用户置1,定时器4递增计数。 用户清0,定时器4递减计数(默认)。 定时器4使能位。 用户置1,使能定时器4。 用户清0,禁用定时器4(默认)。 定时器4模式。 用户置1,选择周期模式。 用户清0,选择自由模式(默认)。 格式。 二进制(默认)。 保留。 时:分:秒:百分数:23小时至0小时。 时:分:秒:百分数:255小时至0小时。 预分频器。 时钟源/1(默认)。 时钟源/16。 时钟源/256。 时钟源/32,768。 Rev. A | Page 92 of 96 ADuC7122 硬件设计考虑 电源 ADuC7122工作电压范围为3.0 V至3.6 V。模拟电源引脚和 数字电源引脚(分别对应AVDD和IOVDD)是分离的,因此 AVDD不受系统IOVDD线路上经常出现的干扰数字信号影 响。在这种模式下,器件可以在分离电源下工作;也就是 说,每个电源使用不同的电压。例如,系统的IOVDD工作 电压为3.3 V,而AVDD电压为3 V;反之亦然。图39是一个 典型的分离电源配置。 ANALOG SUPPLY 10µF + – ADuC7122 IOVDD IOVDD 10µF IOVDD电源灵敏度 IOVDD电源对高频噪声很敏感,因为片内振荡器和锁相环 电路也是由IOVDD供电的。当内部锁相环失锁时,一个门 电路会将时钟源与CPU隔离开,并且ARM7TDMI内核会停 止执行代码,直到锁相环重新锁定。这个特性可以确保闪 存接口时序或ARM7TDMI时序不受干扰。 + – AVDD 0.1µF AVDD 0.1µF 0.1µF AVDD 通常,电源上频率高于50 kHz并且峰峰值为50 mV的噪声会 导致内核停止工作。 0.1µF AGND IOGND IOGND AGND 如果在电源部分推荐的去耦电容不足以保证IOVDD上的所 有噪声低于50 mV,那么就需要一个图41所推荐的滤波电路。 AGND AGND AGND 1µH 08755-040 AGND DIGITAL + SUPPLY – 10µF 图39. 外部双电源连接 ADuC7122 IOVDD 除了使用两个分离的电源外,用户还可以通过在AVDD和 IOVDD之间串联一个小电阻和/或磁珠来降低AVDD的噪声, 然后将AVDD单独去偶到地。图40所示的就是用这种方法 进行设计的一个示例。使用这种方法时,其它模拟电路(如 运算放大器和基准电压源等)也可以通过AVDD供电。 IOVDD 0.1µF 0.1µF IOGND IOGND 图41. 推荐的IOVDD电源滤波电路 10µF + – ANALOG SUPPLY BEAD ADuC7122 IOVDD IOVDD 10µF AVDD 0.1µF AVDD 0.1µF 0.1µF AVDD 0.1µF AGND IOGND IOGND AGND AGND AGND AGND AGND 08755-041 DIGITAL SUPPLY 图40. 外部单电源连接 Rev. A | Page 93 of 96 08755-042 DIGITAL SUPPLY 注意在图39和图40中,在IOVDD处有一个大容值(10 μF)的 储能电容,以及在AVDD处单独有一个10 μF的电容。此外, 在芯片的每一个AVDD和IOVDD引脚都连接了一个小容值 (0.1 μF)电容。按照实际设计时的标准,必须确保包括所有 这些电容并且更小的电容应该尽可能地接近每一个AVDD 引脚,布线长度也应尽量越短越好。这些电容的接地线端 直接连接到地平面即可。还应注意:无论在任何时候, ADuC7122的模拟和数字接地引脚必须以同一系统接地基 准点为基准。 ADuC7122 线性稳压器 ADuC7122要求采用3.3 V单电源供电,而内核逻辑要求采用 2.6 V电源供电。片内有一个线性稳压器,可以将来自IOVDD 的电源调节到2.6 V,从而为内核逻辑供电。LVDD引脚的 2.6 V电源用来给内核逻辑供电。在各LVDD和DGND之间必 须连接一个0.47 μF的补偿电容(应尽量靠近这些引脚)作为 电荷槽,如图42所示。内部LDO提供稳定的2.5 V电源。 REG_PWR引脚提供2.5 V电源输出。在REG_PWR和DGND 之间必须连接一个0.47 μF的补偿电容(应尽量靠近这些引脚) 作为电荷槽,如图42所示。 a. b. PLACE ANALOG COMPONENTS HERE PLACE DIGITAL COMPONENTS HERE AGND DGND PLACE ANALOG COMPONENTS HERE PLACE DIGITAL COMPONENTS HERE AGND DGND PLACE ANALOG COMPONENTS HERE PLACE DIGITAL COMPONENTS HERE ADuC7122 LVDD 0.47µF DGND LVDD c. 0.47µF DGND REG_PWR 08755-043 0.47µF 08755-044 DGND 图43. 系统地框图 图42. 稳压器连接 LVDD引脚不能用来给任何其它芯片供电。此外,推荐在 IOVDD引脚使用性能优良的电源去耦装置,以便提高片内 稳压器的线性稳压性能。 接地和电路板布局建议 和所有高分辨率数据转换器一样,为了实现ADC和DAC的 最优性能,对于基于ADuC7122的设计,应特别注意接地 和PC电路板布局。 尽管这些器件已经将模拟地和数字地引脚分开(AGND和 IOGND),但用户务必不要将这些引脚连接到两个分开的 地平面,除非这两个地平面非常靠近器件。图43a是一个 简化的示意图。在系统中,如果数字地和模拟地平面在某 处连接在一起(例如在系统电源),那么这个平面不能再连 接到靠近芯片的地方,因为这样会导致一个地环路。在这 种情况下,ADuC7122的所有AGND和IOGND引脚都应连 接到模拟地平面,如图43b所示。如果系统中只有一个地 平面,必须确保数字和模拟器件在板上是物理分开且分属 两个半平面,这样数字回路电流就不会流经模拟电路附 近;反之亦然。ADuC7122可以放置在数字和模拟部分之 间,如图43c所示。 在上述方案以及更为复杂的实际应用中,应该特别注意来 自电源的电流和返回地的电流。要确保所有电流的回流路 径均尽可能靠近电流到达目的地所经过的路径。例如,不 要用IOVDD给模拟部分的器件供电(如图43b所示),因为 这会导致IOVDD回路电流强行通过AGND。另外,如果电 路板的左半平面放置了一个带有噪声的数字芯片(如图43c 所示),那么应该避免可能出现的数字电流流经模拟电路。 如果可能的话,尽量避免在地平面上出现长的不连续部 分,例如由同一层上的一条长迹线构成的不连续部分,因 为它们会强迫回路信号通过一个长的路径。此外,所有需 要连接到地的引脚应该直接连接到地平面,尽量少用一些 或不要用迹线将引脚通过其过孔与地分离。 当ADuC7122的任何数字输入引脚连接高速逻辑信号(上升/ 下降时间小于5 ns)时,应该在每一条相关的线路上串联一个 电阻以确保器件输入引脚上信号上升和下降时间大于5 ns。 通常,阻值为100 Ω或200 Ω的电阻足以阻止高速信号从容 性器件耦合进入器件并影响ADC的转换精度。 Rev. A | Page 94 of 96 ADuC7122 ADuC7122的时钟源可以由内部锁相环或一个外部时钟输入 产生。当使用内部锁相环时,应该在XTALI和XTALO引脚 之间连接一个32.768 kHz的并行谐振晶体并且这两个引脚与 地之间应连接一个电容,如图44所示。这个晶体使得锁相 环可以正确锁相进而产生41.78 MHz频率的时钟信号。如果 不使用外部晶体,内部振荡器会产生一个41.78 MHz ±3% 的典型频率。 如果使用一个外部时钟源输入代替锁相环(如图45所示), PLLCON寄存器的位1和位0都需要修改,外部时钟从P1.4 和XCLK引脚输入。 ADuC7122 XTALO XTALI EXTERNAL CLOCK SOURCE ADuC7122 使用外部时钟源时,ADuC7122的额定时钟频率范围为50 kHz 到41.78 MHz ±1%,以确保模拟外设和Flash/EE正常工作。 12pF XTALO 08755-045 32.768kHz TO INTERNAL PLL TO FREQUENCY DIVIDER 图45. 连接一个外部时钟源 XTALI 12pF XCLK 08755-046 时钟振荡器 图44. 外部并行谐振晶体连接 Rev. A | Page 95 of 96 ADuC7122 外形尺寸 A1 BALL CORNER 7.10 7.00 SQ 6.90 BALL A1 PAD CORNER 12 11 10 9 8 7 6 5 4 3 2 1 A B C D E F G H J K L M 5.50 BSC SQ 0.50 BSC BOTTOM VIEW TOP VIEW DETAIL A *1.40 MAX DETAIL A *1.11 MAX 0.15 MIN *COMPLIANT WITH JEDEC STANDARDS MO-195-BD WITH EXCEPTION TO PACKAGE HEIGHT AND THICKNESS. SEATING PLANE COPLANARITY 0.08 090408-A 0.35 0.30 0.25 BALL DIAMETER 图46. 108引脚CSP_BGA封装 (BC-108-4) 尺寸单位:mm 订购指南 型号1 ADuC7122BBCZ ADuC7122BBCZ-RL EVAL-ADUC7122QSPZ 1 温度范围 −10°C至+95°C −10°C至+95°C 封装描述 108引脚CSP_BGA封装 108引脚CSP_BGA封装,13”卷带和卷盘 ADuC7122 Quickstart Plus开发系统 Z = 符合RoHS标准的器件。 I2C指最初由Philips Semiconductors(现为NXP Semiconductors)开发的一种通信协议。 ©2010–2014 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. D08755sc -0-11/14(A) Rev. A | Page 96 of 96 封装选项 BC-108-4 BC-108-4
EVAL-ADUC7122QSPZ 价格&库存

很抱歉,暂时无法提供与“EVAL-ADUC7122QSPZ”相匹配的价格&库存,您可以联系我们找货

免费人工找货