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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
EVAL-ADUC7039QSPZ

EVAL-ADUC7039QSPZ

  • 厂商:

    AD(亚德诺)

  • 封装:

    -

  • 描述:

    BOARD EVAL FOR ADUC7039

  • 数据手册
  • 价格&库存
EVAL-ADUC7039QSPZ 数据手册
车用集成精密电池传感器 ADuC7039 特性 存储器 64 kB Flash/EE存储器选项,4 kB SRAM Flash/EE耐久性:10,000个周期,数据保持时间:20年 通过JTAG和LIN在线下载 片内外设 SAEJ2602/LIN 2.1兼容从机 SPI GPIO端口 1个通用定时器 唤醒和看门狗定时器 片内上电复位 电源 12 V电池电源直接供电 功耗:7.5 mA (10 MHz) 低功耗监控模式 封装和温度范围 32引脚6 mm × 6 mm LFCSP封装 额定工作温度范围:−40°C至+115°C 通过汽车应用认证 高精度ADC 双通道、同步采样、16位Σ-Δ型ADC 可编程ADC吞吐量:10 Hz至1 kHz 片内5 ppm/°C基准电压源 电流通道 全差分、缓冲输入 可编程增益 ADC输入范围:−200 mV至+300 mV 数字比较器,内置电流累加器功能 电压通道 缓冲、片内衰减器,适用于12 V电池输入 温度通道 外部和片内温度传感器方案 微控制器 16位/32位RISC架构ARM7TDMI-S内核 20.48 MHz PLL 片内精密振荡器 JTAG端口支持代码下载和调试 应用 汽车系统电池检测/管理 图1. Rev. D 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 ©2010–2013 Analog Devices, Inc. All rights reserved. Technical Support www.analog.com ADI中文版数据手册是英文版数据手册的译文,敬请谅解翻译中可能存在的语言组织或翻译错误,ADI不对翻译中存在的差异或由此产生的错误负责。如需确认任何词语的准确性,请参考ADI提供 的最新英文版数据手册。 ADuC7039 目录 特性.................................................................................................. 1 应用.................................................................................................. 1 功能框图 ......................................................................................... 1 修订历史 ......................................................................................... 3 技术规格 ......................................................................................... 4 电气规格.................................................................................... 4 时序规格.................................................................................... 8 绝对最大额定值............................................................................ 9 ESD警告..................................................................................... 9 引脚配置和功能描述 ................................................................. 10 术语................................................................................................ 12 工作原理 ....................................................................................... 13 ARM7TDMI-S内核概览 ....................................................... 13 存储器结构 ............................................................................. 15 复位 .......................................................................................... 16 Flash/EE存储器............................................................................ 17 Flash/EE MMR接口 ............................................................... 17 Flash/EE存储器签名.............................................................. 21 Flash/EE存储器安全性 ......................................................... 22 Flash/EE存储器可靠性 ......................................................... 24 ADuC7039内核....................................................................... 24 存储器映射寄存器(MMR)........................................................ 26 完整MMR列表 ....................................................................... 27 16位Σ-Δ型模数转换器............................................................... 30 ADC接地开关 ........................................................................ 33 ADC噪声性能表 .................................................................... 33 ADC MMR接口...................................................................... 34 ADC Sinc3数字滤波器响应................................................. 43 ADC工作模式 ........................................................................ 44 ADC配置 ................................................................................. 46 I-ADC诊断 .............................................................................. 47 电源支持电路 .............................................................................. 48 系统时钟 ....................................................................................... 49 振荡器校准 ............................................................................. 54 中断系统 ....................................................................................... 59 定时器 ........................................................................................... 61 异步时钟域的定时器同步 ................................................... 61 定时器编程 ............................................................................. 62 定时器0—通用定时器 .......................................................... 63 定时器1—唤醒定时器 .......................................................... 65 定时器2—看门狗定时器...................................................... 67 通用输入/输出............................................................................. 69 串行外设接口(SPI) ..................................................................... 74 主机输入、从机输出(MISO)引脚 ..................................... 74 主机输出、从机输入(MOSI)引脚 ..................................... 74 串行时钟I/O (SCLK)引脚 .................................................... 74 从机选择(SS)引脚.................................................................. 74 SPI MMR接口 ......................................................................... 74 高压外设控制接口 ..................................................................... 78 低压标志(LVF) ....................................................................... 81 处理高压接口中断和高压通信 .......................................... 81 LIN(局域互连网络)接口 ........................................................... 83 LIN物理接口........................................................................... 83 LIN诊断 ................................................................................... 84 LIN通信 ................................................................................... 84 LIN MMR................................................................................. 84 器件标识 ....................................................................................... 88 推荐原理图................................................................................... 90 外形尺寸 ....................................................................................... 91 订购指南.................................................................................. 91 汽车应用级产品..................................................................... 91 Rev. D | Page 2 of 92 ADuC7039 修订历史 2013年3月—修订版C至修订版D “固定10 MHz频率”改为“默认10 MHz频率”(通篇) ............... 1 更改“特性”部分和图1.................................................................. 1 更改表1 ........................................................................................... 5 更改表4 ......................................................................................... 12 更改“系统内核校验和”部分..................................................... 24 更改图9 ......................................................................................... 25 更改“ADCxOF默认值”................................................................41 更改图20 ....................................................................................... 49 更改“序列示例”部分.................................................................. 50 重新组织“LIN振荡器校准”部分的布局................................. 56 更改图22和表44 .......................................................................... 59 更改表59 ....................................................................................... 80 更改“高压状态寄存器功能描述”.............................................81 更改图31 ....................................................................................... 83 更改“器件标识”部分,增加表64 ............................................ 88 更新外形尺寸 .............................................................................. 91 更改“订购指南”............................................................................91 添加“汽车应用级产品”部分..................................................... 91 2010年6月—修订版0至修订版A “特性”部分增加SAEJ2602 ........................................................... 1 更改表2 ........................................................................................... 9 更改表34中的位2和位1描述 .................................................... 39 更改“系统时钟”部分.................................................................. 49 增加“异步时钟域的定时器同步”部分、图23和图24 ......... 60 增加“定时器编程”部分.............................................................. 61 更改“推荐原理图”文本.............................................................. 89 2010年3月—修订版0:初始版 2012年1月—修订版B至修订版C 更改“LVF电平测试条件/注释”.................................................. 5 引脚25从GPIO_4改为GPIO_4/IRQ1 ...................................... 10 更改“Flash/EE存储器安全性”部分 ......................................... 22 更改图9 ......................................................................................... 25 更改图22和表44 .......................................................................... 59 更改表49中的GPIO_4端口信号与功能 ................................. 69 更改图33 ....................................................................................... 90 更新外形尺寸 .............................................................................. 91 2010年8月—修订版A至修订版B 更改“快速温度转换模式”部分 ................................................ 46 更改表62中的位4描述(LINCON[6]参考).............................. 86 更改“器件标识”部分.................................................................. 87 Rev. D | Page 3 of 92 ADuC7039 技术规格 电气规格 除非另有说明,VDD = 3.5 V至18 V,VREF = 1.2 V内部基准电压,fCORE = 20.48 MHz(采用片内精密振荡器驱动),且所有规格TA = −40°C至+115°C。 表1. 参数 ADC技术规格 转换速率1 电流通道 无失码1 积分非线性(INL)1, 2 失调误差1, 2, 3 失调误差1, 3 失调误差1, 3 失调误差1, 3 失调误差漂移1, 2, 4 失调误差漂移1, 4 失调误差漂移1, 4 总增益误差1, 3, 5, 6 增益漂移1, 7 PGA增益不匹配误差 输出噪声1 电压通道8 无失码1 积分非线性(INL)1 失调误差1, 3 失调误差1, 3 失调误差漂移4 总增益误差1, 3, 5, 6 总增益误差1, 3, 5, 6 增益漂移1, 7 输出噪声1, 9 温度通道 无失码1 积分非线性(INL)1 失调误差3, 10 失调误差1, 3 失调误差漂移1 总增益误差1, 3, 10 增益漂移1 输出噪声1 测试条件/注释 最小值 ADC正常工作模式 ADC低功耗模式,斩波开启 10 10 对所有ADC更新速率和ADC模式有效 16 斩波关闭,外部短路,用户系统校准后, 1 LSB = (36.6/增益) μV 斩波开启,外部短路,低功耗模式,MCU关断 斩波开启,外部短路,用户系统校准后 测试条件:CD = 0,VDD = 18 V 斩波开启,外部短路,用户系统校准后 测试条件:CD = 0,VDD = 4 V 斩波关闭,增益为8至64,正常模式 斩波关闭,对于ADC增益512有效 斩波开启 增益为4时工厂校准,正常模式 低功耗模式 −10 +250 0 −0.5 −1 10 Hz更新速率,增益 = 512,斩波使能 1 kHz更新速率,增益 = 512,ADCFLT = 0x0007 1 kHz更新速率,增益 = 32,ADCFLT = 0x0007 1 kHz更新速率,增益 = 8,ADCFLT = 0x8101 1 kHz更新速率,增益 = 8,ADCFLT = 0x0007 1 kHz更新速率,增益 = 4,ADCFLT = 0x0007 ADC低功耗模式,250Hz更新速率,斩波使能,增益 = 512 典型值 最大值 单位 1000 650 Hz Hz ±10 ±3 ±60 +10 位 FSR的ppm LSB ±50 −300 3.0 nV µV ±0.5 µV ±0.03 ±30 ±5 ±0.1 ±0.2 ±3 ±0.1 100 0.6 0.8 2.1 1.6 2.6 0.6 LSB/°C nV/°C nV/°C % % ppm/°C % nV rms µV rms µV rms µV rms µV rms µV rms µV rms +0.5 +1 150 0.9 1.2 4.1 2.4 3.9 0.9 16 在所有ADC更新速率下有效 斩波关闭,1 LSB = 439.5 μV,两点校准后 斩波开启,两点校准后 斩波关闭 包括电阻不匹配 温度范围 = −25°C至+65°C 包括电阻不匹配漂移 10 Hz更新速率,斩波开启 1 kHz更新速率,ADCFLT = 0x0007 −0.25 −0.15 在所有ADC更新速率下有效 16 斩波关闭,1 LSB = 19.84 μV(单极性模式下) 斩波开启 斩波关闭 VREF = (REG_AVDD, GND_SW)/2 1 kHz更新速率 Rev. D | Page 4 of 92 −10 −1 −10 −5 −0.25 ±10 ±1 ±0.3 ±0.03 ±0.06 ±0.03 ±3 60 180 ±60 +10 +1 ±10 ±3 +1 0.03 ±0.06 3 7.5 ±60 +10 +5 +0.25 +0.15 90 270 +0.25 11.25 位 FSR的ppm LSB LSB LSB/°C % % ppm/°C µV rms µV rms 位 FSR的ppm LSB LSB LSB/°C % ppm/°C µV rms ADuC7039 参数 ADC模拟输入规格 电流通道 绝对输入电压范围1 输入电压范围11, 12 测试条件/注释 最小值 同时适用于IIN+和IIN− −200 增益 = 4 增益 = 8 增益 = 32 增益 = 512 输入漏电流1 输入失调电流1, 13 电压通道 绝对输入电压范围1 输入电压范围1 VBAT输入电流 温度通道 绝对输入电压范围14 输入电压范围1 VTEMP输入电流1 基准电压源 内部VREF 上电时间1 初始精度1 温度系数1, 15 长期稳定性16 ADC诊断 VREF/136精度1 电压衰减器电流源精度1 电阻衰减器1 分频比 电阻不匹配漂移 ADC接地开关 接地电阻 温度传感器17 精度 上电复位(POR)1 POR触发电平 POR迟滞 POR复位超时 低压标志(LVF) LVF电平 看门狗定时器(WDT) 超时周期1 超时步幅 Flash/EE存储器1 耐久性18 数据保持时间19 数字输入1 输入漏电流 输入上拉电流1 输入电容1 输入漏电流 输入下拉电流 逻辑输入1 输入低电压(VINL) 输入高电压(VINH) 典型值 最大值 单位 +300 mV +3 1.5 mV mV mV mV nA nA ±300 ±150 ±37.5 ±2.3 −3 0.5 电压ADC规格在此范围内有效 VBAT = 18 V VREF = (REG_AVDD, GND_SW)/2 4 3 18 0 to 28.8 5.5 100 8 1300 0至VREF 2.5 100 1.2 0.5 在TA = 25°C时测定 −0.15 −20 任意增益设置 ,完成选定增益的自校准后 当电流源开启时差分电压在衰减器上递增 8.4 2.3 ±5 100 +0.15 +20 9.4 3.6 24 ±3 包括在电压通道总增益误差中 V V µA mV V nA V ms % ppm/°C ppm/1000小时 mV V ppm/°C 15 20 30 kΩ 未校准 MCU处于关断或待机模式,TA= −40°C至+85°C MCU处于关断或待机模式,TA= −20°C至+60°C −10 −8 ±3 ±2 +10 +8 °C ºC 参考VDD引脚的电压 2.85 3.0 300 20 3.15 V mV ms 参考REG_DVDD引脚的电压 1.9 2.1 2.3 V 32 kHz时钟,256预分频 0.008 524 秒 ms 7.8 10,000 20 除NTRST外的所有数字输入 输入高电平 = REG_DVDD 输入低电平 = 0 V 10 仅限NTRST:输入低电平 = 0 V 仅限NTRST:输入高电平= REG_DVDD 所有逻辑输入 30 周期 年 ±1 20 10 ±1 55 ±10 80 ±10 100 0.4 2.0 Rev. D | Page 5 of 92 µA µA pF µA µA V V ADuC7039 参数 测试条件/注释 最小值 标称电源电压和室温下进行用户校准后; 包括1000小时寿命测试的漂移数据 −3 运行时校准后 默认设置 −1 典型值 最大值 单位 +3 kHz % 片内振荡器 低功耗振荡器 精度 精密振荡器 精度 MCU时钟速率1 MCU启动时间1 上电时 复位事件后 从MCU关断起 内部PLL锁定时间 LIN通用I/O 波特率 VDD 输入电容1 LIN比较器响应时间1 LIN直流参数 ILIN DOM MAX ILIN_PAS_REC1 ILIN_PAS_DOM1 ILIN_NO_GND1, 20 IBUS_NO_BAT1 VLIN_DOM1 VLIN_REC1 VLIN_CNT1 VHYS1 VLIN_DOM_DRV_LOSUP1 RL 500 Ω RL 1000 Ω VLIN_DOM_DRV_HISUP1 RL 500 Ω RL 1000 Ω VLIN_RECESSIVE1 VBAT偏移20 GND偏移20 RSLAVE VSERIAL DIODE20 LIN交流参数1 D1 D2 D31, 20 D41, 20 128 128 包括内核上电执行时间 包括内核上电执行时间 振荡器运行 10.24 kHz % MHz 25 5 2 1 ms ms ms ms +1 1000 7 LIN接口工作电压范围 20,000 18 5.5 38 使用22 Ω电阻 LIN总线处于主动状态时驱动器电流限值, VBAT = VBAT(最大值) 驱动器关闭,7.0 V < VBUS < 18 V, VDD = VLIN − 0.7 V 输入漏电流,VLIN = 0 V 控制单元接地断开,GND = VDD,0 V < VLIN < 18 V, VBAT = 12 V VBAT断开,VDD = GND,0 V < VBUS < 18 V LIN接收器主动状态,VDD > 7.0 V LIN接收器被动状态,VDD > 7.0 V LIN接收器中心电压,VDD > 7.0 V LIN接收器迟滞电压 LIN主动输出电压,VDD = 7.0 V 40 −1 −1 90 位/秒 V pF µs 200 mA 20 µA mA mA +1 100 0.4 VDD 0.6 VDD 0.475 VDD 0.5 VDD 0.525 VDD 0.175 VDD 1.2 V V 2 V V V V V kΩ V 0.6 LIN主动输出电压,VDD = 18 V LIN被动输出电压 从机端接电阻 串行二极管处的压降,DSer_Int 总线负载条件(CBUS||RBUS): 1 nF||1 kΩ; 6.8 nF||660 Ω; 10 nF||500 Ω 占空比1 THREC(MAX) = 0.744 × VBAT THDOM(MAX) = 0.581 × VBAT VSUP = 7.0 V … 18 V; tBIT = 50 µs D1 = tBUS_REC(MIN)/(2 × tBIT) 占空比2 THREC(MIN) = 0.284 × VBAT THDOM(MIN) = 0.422 × VBAT VSUP = 7.0 V … 18 V; tBIT = 50 µs D2 = tBUS_REC(MAX)/(2 × tBIT) THREC(MAX) = 0.778 × VBAT THDOM(MAX) = 0.616 × VBAT VDD = 7.0 V ... 18 V tBIT = 96 µs D3 = tBUS_REC(MIN)/(2 × tBIT) THREC(min) = 0.389 × VBAT THDOM(min) = 0.251 × VBAT Rev. D | Page 6 of 92 0.8 0.8 VDD 0 0 20 0.4 30 0.7 µA V V V V 0.115 VDD 0.115 VDD 47 1 0.396 0.581 0.417 0.590 ADuC7039 参数 tRX_PDR1, 20 tRX_SYM1, 20 封装热规格 热阻(θJA)21 电源要求1 电源电压 VDD(电池电源) REG_DVDD, REG_AVDD22 功耗 IDD(MCU正常模式)23 IDD(MCU关断)1 IDD(MCU关断)1 测试条件/注释 VDD = 7.0 V … 18 V tBIT = 96 µs D4 = tBUS_REC(MAX)/(2 × tBIT) 接收器传播延迟 接收器传播延迟上升沿相对于下降沿的对称性(tRX_SYM = tRF_PDR − tRX_PDF) 最小值 典型值 −2 32引脚CSP,堆叠式芯片 最大值 单位 6 +2 µs µs 32 3.5 2.45 ADC关闭(20.48 MHz) ADC关闭(10.24 MHz) ADC低功耗模式,在TA = −10°C至+40°C的环境温度范围内 测定,ADC连续转换 精密振荡器关闭,ADC关闭 平均电流,在唤醒和看门狗定时器从低功耗振荡器获取时 钟信号时测定(−40°C至+85°C) 平均电流,唤醒和看门狗定时器从低功耗振荡器获取时 钟信号时测定,−10°C至+40°C环境温度范围 IDD(电流ADC) IDD(电压/温度ADC) IDD(精密振荡器) 2.6 18 2.75 V V 10 7.5 750 20 16 1000 mA mA µA 95 300 µA 95 175 µA 1.7 0.5 400 1 °C/W mA mA µA 未经生产测试,但在产品发布时由设计和/或特性数据保证。 对于电流ADC增益设置PGA 40%的VREF/增益)。 片内Flash/EE存储器可以存储多个校准系数。这些校准系 数可根据系统配置由用户代码直接复制到相关校准寄存器 内。 对于I-ADC,工厂设置或下线校准分两步: 1. 施加0 A电流。根据所需PGA设置等条件配置ADC,并写 入ADCMDE[2:0]以进行系统零电平校准,从而将新失 调校准值写入ADC0DAT内。用户代码必须将此值存储 在ADC0OF或Flash/EE存储器中。 2. 针对所选PGA设置施加满量程电流。写入ADCMDE, 进行系统满量程校准,从而将新增益校准值写入 ADC0DAT内。用户软件必须将此值复制到ADC0GN MMR或Flash/EE存储器。 Rev. D | Page 45 of 92 ADuC7039 了解失调和增益校准寄存器 ADC配置 ADC信号流中的平均模块输出可视为小数且正负满量程输 入范围约为±0.75。此范围小于±1.0,这是因为调制器有衰 减,使输入信号具有一定的超量程能力。由于工艺容差, 确切的衰减值因器件而略有不同。 快速温度转换模式 I-ADC SAMPLING ADC0OF正值表示从滤波器输出中减去失调,负值则相 加。此寄存器的标称值为0x0000,表明要消除零失调。实 际失调可能因器件、PGA增益而异。启用斩波模式(即 ADCFLT[15] = 1)可以将ADC内部失调降到最低。 V V T T T V V V/T-ADC SAMPLING V I-ADC INTERRUPT VALID V/T CONVERSION V T 08463-031 增益系数是一个无单位比例因子,此寄存器的16位值除以 16,384后 再 乘 以 失 调 校 正 值 。 此 寄 存 器 的 标 称 值 为 0x5555,对应于乘法因子1.3333。这将把标称±0.75信号放 大到±1.0的满量程输出信号,在进行上溢/下溢检查后转换 成二进制补码或单极性模式,然后输出到数据寄存器。 V V CHANNEL SWITCHING REQUEST 图17. 默认温度模式,斩波关闭 温度通道提供一种快速模式,用于尽可能缩短电压转换和 温度转换之间的切换延迟时间,如图18和表36所示。 实际增益和零增益误差所需的调整系数因器件、PGA设置 而略有差异。上电复位时下载到ADC0GN的值对应PGA增 益为4的比例因子。如果在不同的PGA设置下使用此值, 可能会产生一定的增益误差。用户代码可以运行ADC校准 并覆盖校准系数,以校正当前PGA设置的增益误差。 I-ADC SAMPLING V V V V V V V V V V/T-ADC SAMPLING V I-ADC INTERRUPT VALID V/T CONVERSION 总之,简化后的ADC传递函数可描述为 V T V V CHANNEL SWITCHING REQUEST  V × PGA  ADCGN − ADCOF  × ADCOUT =  IN V ADCGN REF NOM   V V V 08463-032 失调系数读取自ADC0OF校准寄存器,此值是一个16位二 进制补码。就信号链而言,此值的有效范围为±1.0。因 此,ADC0OF寄存器的1 LSB和ADC0DAT寄存器的1 LSB不 一样。 电池温度可通过片内温度传感器获得。默认情况下,ADC 输入从电压通道切换到温度通道或从温度通道切换到电压 通道后,获得第一个有效(完全稳定)结果的时间为斩波模 式关闭时的三个ADC转换周期,如图17所示。 图18. 快速温度模式,斩波关闭(ADCFLT = 0x07) 请求进行快速温度转换时,会延迟一个ADC转换周期。温 度测量结果可用之后、请求进行新温度转换之前,必须退 出快速温度转换模式。 此公式对于电压/温度通道ADC有效。 对于电流通道ADC,  V × PGA  ADCGN − K × ADCOF  × ADCOUT =  IN V ADCGN REF NOM   表36. 快速温度转换模式 其中K取决于PGA增益设置和ADC模式。 PGA增益为4和32时,系数K为1。PGA增益为512时,系数 K为8。 中断 1 2 3 有效标志 I和V I和V I和V 4 I和T 5 6 7 8 I I I和V I和V Rev. D | Page 46 of 92 用户代码 电压 = ADC1DAT 电压 = ADC1DAT 电压 = ADC1DAT 必须读取此数据,之后下一个温度 通道标志才会有效。 温度 = ADC1DAT 快速温度请求位清0 电压 = ADC1DAT 电压 = ADC1DAT ADuC7039 快速温度选项不能用在ADC上电后的第一次转换上,至少 必须在第一个ADC中断后才能设置,但不必等待一个有效 的ADC结果出现。使用快速温度模式时,还有一个限制是 SF >=1。此外,在此工作模式下,建议使用1 ms的转换速率, 这是为了确保快速温度结果与当前通道结果同时出现。 I-ADC诊断 ADuC7039具有检测应用电路板开路状态的功能。这是通 过ADC0CON[14:13]控制IIN+和IIN−上的两个电流源来实 现的。 注意,这些电流源的容差为±30%。 写入ADCMDE、ADC0CON或ADCFLT以更改ADC配置 时,快速温度位也必须清0,以确保器件正常工作。这种 情况与ADC上电后的第一次转换相似。 Rev. D | Page 47 of 92 ADuC7039 电源支持电路 ADuC7039集成两个片内低压差(LDO)调节器,它们通过电 池电压直接驱动来产生一个2.6 V内部电源。然后,该2.6 V 电源用作ARM7 MCU和外设的电源,包括那些片内精密模 拟电路。 数字LDO利用REG_DVDD上并联的两个外部电容工作,模 拟LDO则利用REG_AVDD上的一个外部电容(0.47 μF)工作。 输出电容的ESR会影响LDO控制环路的稳定性。频率大于 32 kHz时,建议使用ESR为5 Ω或以下的电容以确保调节器 的稳定性。 如图19所示,当VDD上的电源电压达到最小工作电压3 V时, POR信号将ARM内核保持在复位状态下20 ms。这样可以确 保 施 加 到 ARM内 核 及 相 关 外 设 的 调 节 电 源 电 压 (REG_ DVDD)大于最小工作电压,由此保证功能完整。RSTSTA MMR中的POR标志位置1,指示发生了POR复位事件。 电压低于POR电平时,可使能另一个低压标志(HVCFG [2])。它可用来指示SRAM的内容在复位事件后仍然有效。 低压标志的示例如图19所示。使能后,可通过HVSTA[2]监 控该位的状态。如果该位置1,则SRAM内容有效。如果该 位清0,则SRAM内容可能遭到破坏。 此外还集成了上电复位(POR)及低压标志(LVF)功能,以确 保MCU安全运行以及连续监控电池电源。POR电路的设计 VDD(0 V至12 V)上电时间大于100 μs。因此,选择外部电 源去耦元件时务必小心,确保VDD电源上电时间始终大于 100 μs。VDD上的串联电阻和去耦电容组合应确保RC时间常 数至少为100 μs,例如10 Ω和10 μF,如图33所示。 12V VDD 3V TYP POR TRIP 3.0V TYP LVF TRIP 2.1V TYP 2.6V REG_DVDD 20ms TYP POR_TRIP 08463-018 RESET (INTERNAL ACTIVE LOW RESET SIGNAL) ENABLE_LVF 图19. 典型上电周期 Rev. D | Page 48 of 92 ADuC7039 系统时钟 ADuC7039集成一个灵活的时钟系统,其时钟源可以是下 面两个集成的片内振荡器之一:精密振荡器和低功耗振 荡器。 ADC由PLL输出驱动,PLL输出经分频后提供512 kHz的ADC 时钟源。在低功耗模式下,ADC时钟源会从标准512 kHz 切换到低功耗128 kHz振荡器。 每个内部振荡器除以4即可产生32 kHz的时钟频率。两个内 部振荡器之一提供32 kHz,然后PLL锁定在它的倍数(640)上, 为系统提供稳定的20.48 MHz时钟。默认情况下,PLL由低 功耗振荡器驱动。 注意,低功耗振荡器通过一个4分频电路来同时驱动看门 狗和内核唤醒定时器。ADuC7039时钟系统的详细框图如 图20所示。 两个集成的振荡器可以按照“振荡器校准”部分所述进行 校准。 内核默认以10.24 MHz的固定频率工作。 128kHz 128kHz LOW POWER OSCILLATOR PRECISION OSCILLATOR 32kHz LOW POWER OSCILLATOR CORE CLOCK 32kHz DIV 4 DIV 4 LOW POWER OSCILLATOR PLLCON PLL 1 8 CORE CLOCK PLL OUTPUT 20.48MHz LOW POWER OSCILLATOR CORE CLOCK CLOCK DIVIDER CORE CLOCK PLL LOCK ADCMDE TIMER0 TIMER1 WAKE-UP TIMER2 WATCHDOG LIN INTERFACE SPI PLL OUTPUT FLASH CONTROLLER 1 2CD HIGH ACCURACY CALIBRATION COUNTER LOW POWER OSCILLATOR LOW POWER CALIBRATION COUNTER ADC CLOCK MCU ADC 图20. ADuC7039系统时钟发生 Rev. D | Page 49 of 92 08463-019 CORE CLOCK PRECISION OSCILLATOR ADuC7039 工 作 模 式 和 时 钟 模 式 由 两 个 MMR控 制 (PLLC ON和 POWCON),PLL状态(PLL锁定和PLL中断)由PLLSTA指示。 如果用户代码需要精确的PLL输出,用户代码必须在唤醒 后、恢复正常代码执行前轮询锁定位(PLLSTA[1])。 关断ADuC7039之前,建议将PLL时钟源切换到低功耗振荡 器以缩短唤醒时间。低功耗振荡器始终有效。 PLL在唤醒后2 ms内锁定。 当 ADuC7039从 关 断 模 式 中 唤 醒 时 , PLL一 开 始 振 荡 , MCU内核就会执行代码。这发生在PLL锁定到20.48 MHz的 频率之前。为了确保Flash/EE存储器控制器获得有效的时 钟,当PLL正在锁定时,该控制器通过PLL输出8分频时钟 源来驱动。PLL锁定后,PLL输出才从这个8分频切换到锁 定的输出。 PLLCON为采用两个32位密钥保护的MMR:PLLKEY0(预 写密钥)和PLLKEY1(写后密钥)。 PLLKEY0 = 0x000000AA PLLKEY1 = 0x00000055 PLLCON为采用两个32位密钥保护的MMR:POWKEY0(预 写密钥)和POWKEY1(写后密钥)。 POWKEY0 = 0x00000001 POWKEY1 = 0x000000F4 序列示例 写入两个MMR的示例如下: 写入POWCON MMR: //Function Prototype Void PowerDown (void) PowerDown PROC LDR LDR LDR MOVS STR r2, = 0x98765432 r3, = 0x12345678 r0, = 0xffff0400 r1,#0x1 r1,[r0,#4] MOVS r1,#0x01 STR r1,[r0,#8] MOVS STR UMLAL BX ENDP ; Load random number for multiplication ;Base address ;POWKEY0 = 1 ;Set POWKEY0 ;Set POWCON value to recommended value of 0x01 to ensure a 10 MHz core clock r1,#0xf4 r1,[r0,#0xc] r1,r3,r2,r0 lr ;Set POWKEY1 ;longest possible assembly multiplication instruction ;Flush ARM7 pipeline 写入PLLCON MMR: PLLKEY0 PLLCON PLLKEY1 iA1*iA2 change = = = 0xAA 0x1 0x55 //PLLCON key //Switch to precision oscillator. //PLLCON key //PSEUDOCODE-dummy cycle to prevent Flash/EE access during clock Rev. D | Page 50 of 92 ADuC7039 PLLSTA寄存器 名称: PLLSTA 地址: 0xFFFF0400 默认值: 0xXX 访问类型: 只读 功能: 该8位寄存器允许用户代码监控PLL的锁定状态。 表37. PLLSTA MMR位分配 位 7至2 1 描述 保留。 PLL锁定状态位,只读。 PLL锁定并输出20.48 MHz时,该位自动置1。 PLL未锁定并输出fCORE 8分频时钟源时,该位自动清0。 0 PLL中断。 PLL锁定状态位信号变为低电平时,该位置1。 用户代码写入1到该位可清0。 PLLCON预写密钥PLLKEY0 名称: PLLKEY0 地址: 0xFFFF0410 访问类型: 只写 密钥: 0x000000AA 功能: PLLCON是一个加密寄存器,PLLCON前后需写入32位密钥值。PLLKEY0为预写密钥。 PLLCON写后密钥PLLKEY1 名称: PLLKEY1 地址: 0xFFFF0418 访问类型: 只写 密钥: 0x00000055 功能: PLLCON是一个加密寄存器,PLLCON前后需写入32位密钥值。PLLKEY1为写后密钥。 PLLCON寄存器 名称: PLLCON 地址: 0xFFFF0414 默认值: 0x00 访问类型: 读/写 功能: 该8位寄存器允许用户代码从两种不同振荡器源中动态选择PLL时钟源。 Rev. D | Page 51 of 92 ADuC7039 表38. PLLCON MMR位分配 位 7至1 0 1 描述 保留。应由用户代码置0。 PLL时钟源。1 0 = 低功耗振荡器。 1 = 精密振荡器。 如果用户代码切换MCU时钟源,在将时钟切换写入PLLCON后应插入一个MCU空周期。 POWCON预写密钥POWKEY0 名称: POWKEY0 地址: 0xFFFF0404 访问类型: 只写 密钥: 0x00000001 功能: POWCON是一个加密寄存器,POWCON前后需写入32位密钥值。POWKEY0为预写密钥。 POWCON写后密钥POWKEY1 名称: POWKEY1 地址: 0xFFFF040C 访问类型: 只写 密钥: 0x000000F4 功能: POWCON是一个加密寄存器,POWCON前后需写入32位密钥值。POWKEY1为写后密钥。 POWCON寄存器 名称: POWCON 地址: 0xFFFF0408 默认值: 0x079 访问类型: 读/写 功能: 该12位寄存器允许用户代码动态进入各种低功耗模式。 Rev. D | Page 52 of 92 ADuC7039 表39. POWCON MMR位分配 位 11至9 8 7至6 5 4 3 2至0 描述 保留。这些位应该写入0。 精密振荡器使能。 该位由用户置1时,使能精密振荡器。 该位由用户清0时,关断精密振荡器。 保留。这些位应该写入0。 PLL关断。如果定时器外设由PLL输出时钟驱动,则关断。如果由有效时钟源驱动,则保持有效。 该位默认置1,并在唤醒事件时由硬件置1。 该位清0将关断PLL。内核或外设使能时不得关断PLL:位3、4及5必须同时清0。 外设关断。由此位关断的外设有:SRAM、Flash/EE存储器、GPIO接口以及SPI端口。 该位默认置1,并且/或者在唤醒事件时由硬件置1。即使该位置1,由低功耗振荡器驱动时,唤醒定时器(定时 器2)仍可继续工作。 该位清0将关断外设。内核使能时,外设无法关断:位3和位4必须同时清0。即使该位清0,LIN仍能对唤醒事 件作出响应。 内核关断。用户代码关断MCU时,在将关断命令写入POWCON后插入一个MCU空周期。 该位默认置1,并在唤醒事件时由硬件置1。 该位清0将关断ARM内核。 内核时钟分频器(CD)位。 000 = 20.48 MHz, 48.83 ns. 001 = 10.24 MHz,97.66 ns(上电默认设置) 010 = 5.12 MHz, 195.31 ns. 011 = 2.56 MHz, 390.63 ns. 100 = 1.28 MHz, 781.25 ns. 101 = 640 kHz, 1.56 μs. 110 = 320 kHz, 3.125 μs. 111 = 160 kHz, 6.25 μs. Rev. D | Page 53 of 92 ADuC7039 振荡器校准 ADuC7039具有两个振荡器和两种校准方案: 器为10位,由低功耗振荡器提供时钟。时钟校准模式由下 列MMR控制: • 低功耗振荡器可以利用精密振荡器或LIN通信校准。时 间值也可以由用户代码修改。 • 精密振荡器可以利用LIN通信校准。时间值也可以由用 户代码修改。 • • • • 每个振荡器都有专用校准MMR: 校准程序示例如图21所示。用户代码利用OSCCON配置并 使能校准序列。当精密功耗振荡器校准计数器OSCVAL0达 到0x1FF时,两个计数器禁用。 • LOCUSR0是低功耗振荡器用户调整寄存器。它是一个8位 寄存器。提高LOCUSR0的值会降低低功耗振荡器的频 率;降低该值则会提高其频率。根据标称频率128 kHz,典 型调整范围在103 kHz到156 kHz之间。此MMR可以由用 户代码直接写入,或者由硬件相对于LIN波特率自动 更改。 • LOCUSR1是精密振荡器用户调整寄存器。它是一个10位 MMR。提高LOCUSR1的值会降低精密振荡器的频率; 降低该值则会提高其频率。根据标称频率128 kHz,典型 调整范围在94 kHz到178 kHz之间。此MMR可以由用户代 码直接写入,或者由硬件相对于LIN波特率自动更改。 • LOCVAL0是一个8位只读MMR,显示低功耗振荡器的当 前调整值。 • LOCVAL1是一个10位只读MMR,显示精密振荡器的当 前调整值。注意,从该寄存器可以读出11位,但只有10 位用于校准。 OSCCON—校准控制位。 OSCSTA—校准状态寄存器。 OSCVAL0—9位计数器0。 OSCVAL1—10位计数器1。 然后,用户代码回读低功耗振荡器校准计数器的值。有三 种可能情形: • OSCVAL0 = OSCVAL1。无需进一步操作。 • OSCVAL0 > OSCVAL1。低功耗振荡器缓慢运行中。必须 降低LOCUSR0。 • OSCVAL0 < OSCVAL1。低功耗振荡器快速运行中。必须 提高LOCUSR0。 更改LOCUSR0后,应再次执行校准程序,同时检查新频 率。注意,LOCUSR0 MMR受密钥保护。写入LOCUSR0之 前,应将值0x1324写入LOCKEY。 利用内部精密振荡器执行校准程序耗时约4 ms。 BEGIN CALIBRATION ROUTINE 低功耗振荡器初始校准 复位后,低功耗振荡器以128 kHz的频率运行,最大误差为 中心频率128 kHz的−10%到+3%。客户生产线上的下线校准 必须在25°C ± 5°C的温度范围内执行,使低功耗振荡器和精 密振荡器的中心频率一致。校准后,低功耗振荡器的误差 为中心频率的±3%。 WAIT FOR INTERRUPT OSC0VAL0 < OSC0VAL1 OSC0VAL0 > OSC0VAL1 OSC0VAL0 = OSC0VAL1 该初始校准只需在下线时执行一次。进一步的校准可通过 用户代码执行,以补偿低功耗振荡器的温度漂移。 INCREASE LOCUSR0 DECREASE LOCUSR0 低功耗振荡器校准序列 128 kHz低功耗振荡器可以利用128 kHz精密振荡器校准。实 现这一功能需要用到两个专用校准计数器。 NO IS ERROR WITHIN DESIRED LEVEL? 一个计数器为9位,由精密振荡器提供时钟。另一个计数 END CALIBRATION ROUTINE 08463-020 YES 图21. OSCTRM校准程序 开始时钟校准程序前,用户必须将PLL时钟源切换到精密 振荡器。否则,每次修改LOCUSR0时,PLL可能失锁,从 而导致低功耗振荡器校准时间延长。 Rev. D | Page 54 of 92 ADuC7039 OSCCON寄存器 名称: OSCCON 地址: 0xFFFF0440 默认值: 0x00 访问类型: 读/写 功能: 该8位寄存器控制低功耗振荡器校准程序。 表40. OSCCON MMR位分配 位 7 to 4 3 2 1 0 描述 保留。应写入0。 校准复位。 该位由用户代码置1时,复位校准计数器并禁用校准逻辑。 校准复位后,该位由用户代码清0。 OSCVAL1复位。 该位由用户代码置1时,清除OSCVAL1。 清除OSCVAL1后,该位由用户代码清0。 OSCVAL0复位。 该位由用户代码置1时,清除OSCVAL0。 清除OSCVAL0后,该位由用户代码清0。 校准使能。 该位由用户代码置1时,开始校准。 该位由用户代码清0时,中止校准。 OSCSTA寄存器 名称: OSCSTA 地址: 0xFFFF0444 默认值: 0x00 访问类型: 只读 功能: 该8位寄存器指示低功耗振荡器校准程序的状态。 表41. OSCSTA MMR位分配 位 7至3 2 1 0 描述 保留。 振荡器校准结束。 校准周期完全结束时,该位由硬件置1。 读取OSCVAL1时,该位清0。 繁忙位。 校准正在进行时,该位由硬件置1。 校准结束时,该位由硬件清0。 校准完成中断。 位1解除置位时,该位由硬件置1。 读取OSCSTA MMR时,该位清0。 Rev. D | Page 55 of 92 ADuC7039 OSCVAL0寄存器 名称: OSCVAL0 地址: 0xFFFF0448 默认值: 0x00 访问类型: 只读 功能: 该9位计数器由128 kHz精密振荡器提供时钟。 OSCVAL1寄存器 名称: OSCVAL1 地址: 0xFFFF044C 默认值: 0x0000 访问类型: 只读 功能: 该10位计数器由128 kHz低功耗振荡器提供时钟。注意,可以读出11位,但只使用10位。 LIN振荡器校准 有9个MMR可用: ADuC7039提供了第二种振荡器校准机制,这一新特性允 许根据LIN数据包中的同步元素校准时钟。它基于一个固 定且预定义的LIN波特率。新调整值从LIN通信获得。这种 方法需要足够数量的LIN处理,温度每变化10度,大约需 要1次。 LOCCON寄存器 如果LIN外设测得的波特率(位于LINBR MMR中)不在用户 代码定义的限值(位于LOCMIN和LOCMAX MMR中)范围内, 则所选振荡器调整位根据LIN振荡器校准控制寄存器选择 的选项进行修改,幅度为LOCCON中定义的步进数。 两个只读调整寄存器指示当前针对每个振荡器使用的调整 值。LIN振荡器校准模块修改这两个只读寄存器,但不修 改用户寄存器LOCUSRx。校准完成后,可以禁用LIN振荡 器校准,但禁用之前,须将LOCVALx的值复制到相应的 LOCUSRx寄存器。下一部分给出了一个例子。状态寄存器 指示所选振荡器的调整寄存器是否发生了改变。 名称: LOCCON 地址: 0xFFFF0480 默认值: 0x00 访问类型: 读/写(密钥保护) 功能: 通过LIN控制寄存器执行振荡器校准。 表42. LOCCON MMR位分配 位 7至3 2至1 0 Rev. D | Page 56 of 92 描述 保留。读取0。 振荡器校准步进大小。 0x00 = 默认值,步进1。 0x01 = 步进2。 0x10 = 步进3。 0x11 = 步进4。 使能通过LIN执行振荡器校准。 该位由用户置1时,使能根据LIN波特率对选定的 振荡器进行自动校准。 该位由用户清0时,禁用自动校准。 ADuC7039 LOCUSR0寄存器 名称: LOCUSR0 地址: 0xFFFF0484 默认值: 由内核更新 访问类型: 读/写(密钥保护) 功能: 低功耗振荡器的用户调整寄存器。 表43. LOCSTA MMR位分配 位 7至3 2 1 0 LOCUSR1寄存器 名称: LOCUSR1 地址: 0xFFFF0488 默认值: Updated by kernel 访问类型: 读/写(密钥保护) 功能: 精密振荡器的用户调整寄存器。 LOCVAL0寄存器 LOCMAX寄存器 名称: LOCMAX 地址: 0xFFFF048C 默认值: 描述 保留。读取0。 低功耗振荡器调整值已修改。 精密振荡器调整值发生改变时,该位由硬件置1。 读取LOCSTA MMR时,该位由硬件清0。 精密振荡器调整值已修改。 精密振荡器调整值发生改变时,该位由硬件置1。 读取LOCSTA MMR时,该位由硬件清0。 选定的振荡器。 选择低功耗振荡器进行校准时,该位由硬件置1。 选择精密振荡器进行校准时,该位由硬件清0。 名称: LOCVAL0 地址: 0xFFFF0498 默认值: 由内核更新 访问类型: 只读 功能: 低功耗振荡器当前调整值,只读。 LOCVAL1寄存器 名称: LOCVAL1 0x00000 地址: 0xFFFF049C 访问类型: 读/写 默认值: 由内核更新 功能: 对于预定的波特率,LINBR中预期的上限。 访问类型: 只读 功能: 精密振荡器当前调整值,只读。 LOCMIN寄存器 名称: LOCMIN 地址: 0xFFFF0490 默认值: 0x00000 访问类型: 读/写 功能: 对于预定的波特率,LINBR中预期的下限。 LOCKEY寄存器 名称: LOCKEY 地址: 0xFFFF04A0 访问类型: 只写 功能: 必须写入才能解锁任何可写的校准寄存 器。写入此MMR的值为0x1324。 LOCSTA寄存器 名称: LOCSTA 地址: 0xFFFF0494 默认值: 0x01 访问类型: 只读 功能: 校准状态寄存器。 Rev. D | Page 57 of 92 ADuC7039 开始LIN校准的典型序列如下: LOCMIN LOCMAX LOCKEY LOCCON = = = = EXPECTED_LINBR_VALUE-0x20; EXPECTED_LINBR_VALUE+0x20; 0x1324; 0x1; //Define //Define //Unlock //Enable tolerance tolerance key protection calibration with step size = 1 序列示例 利用LIN通信校准低功耗振荡器的示例如下: LINCON = 0x800; expected_baudrate = 0x10AB; LOCMIN = EXPECTED_LINBR_VALUE-0x20; LOCMAX = EXPECTED_LINBR_VALUE+0x20; LOCKEY = 0x1324; LOCCON = 0x1; while ((LOCSTA & 0x05)!= 0x05){} while ((LINBRLOCMAX)){} temp_trim = LOCVAL0; LOCKEY = 0x1324; LOCUSR0 = temp_trim; LOCKEY = 0x1324; LOCCON = 0; //Enable LIN //Correspond to 19200 bps //Define tolerance //Define tolerance //Unlock key protection //Enable calibration with step size = 1 //Wait for the trim value to be modified //Wait for the correct baud rate //Store the trim value given //Unlock key protection //Write the trim value into the user MMR //Unlock key protection //Turn off the LIN calibration block Rev. D | Page 58 of 92 ADuC7039 中断系统 ADuC7039拥有由中断控制器控制的10个中断源。大多数 中 断 都 是 由 片 内 外 设 产 生 的 , 例 如 ADC和 定 时 器 。 ARM7TDMI-S CPU内核只能识别以下两类中断:正常中断 请求(IRQ)和快速中断请求(FIQ)。所有中断都可以被单独 屏蔽。 TIMER0 TIMER1 FLASH/EE PLL LOCK IRQSIG FIQSIG TIMER2 LIN H/W ADC SPI 中断系统的控制和配置由9个中断相关的寄存器管理:4个 专用于IRQ,4个专用于FIQ,还有一个MMR用于选择编程 中断源。每一个IRQ和FIQ寄存器中的控制位都代表相同的 中断源,如表44所示。 IRQSTA FIQSTA HV IRQ1 TIMER0 TIMER1 内核开始执行中断服务程序(ISR)后,应立即保存IRQSTA/ FIQSTA,以确保能够响应所有有效中断源。 FLASH/EE PLL LOCK IRQSIG FIQEN TIMER2 LIN H/W ADC 08463-021 SPI ARM7TDMI-S内核中断产生程序如图22所示。 HV 例如,设置定时器0每隔5 ms产生一次超时。第一次5 ms超 时后,FIQSIG[2]或IRQSIG[2]置1,只能通过写入T0CLRI 清 0。 如 果 在 IRQEN或 FIQEN内 没 有 使 能 定 时 器 0, 则 FIQSTA/IRQSTA[2]不会置1,也不会产生中断。如果在 IRQEN或FIQEN内使能定时器0,则FIQSTA[2]或IRQSTA [2]置1或产生中断(FIQ或IRQ)。 IRQ1 图22. 中断结构 注意,CPSR的IRQ和FIQ中断位定义仅通过ARM内核来控 制中断识别,而非外设。例如,如果配置定时器2通过 IRQEN产生一个IRQ,则CPSR内的IRQ中断位置1(禁用)并 关断ADuC7039。中断发生后,外设唤醒,但ARM内核仍 处于关断状态。这相当于POWCON = 0x71。发生这种情况 时,ARM内核只能通过复位事件来上电。 表44. IRQ/FIQ MMR位分配 位 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14至31 描述 所有中断的逻辑或 SWI 定时器0 定时器1或唤醒定时器 定时器2或看门狗定时器 LIN Flash/EE中断 PLL锁定 ADC SPI 高压 低功耗振荡器校准完成 保留 IRQ1 ( GPIO IRQ1) 保留 IRQ FIQ 注释 仅限FIQ MMR 不用于IRQEN/CLR和FIQEN/CLR。 GPIO4处的外部中断 Rev. D | Page 59 of 92 ADuC7039 IRQ 快速中断请求(FIQ) IRQ是进入处理器IRQ模式的一个异常信号。它用于内、 外部事件的通用中断处理。 快速中断请求(FIQ)是进入处理器FIQ模式的一个异常信 号。它用于数据传输或低延迟通信通道任务处理。FIQ接 口与IRQ接口相同;此外,它还会提供二级中断(拥有最高 优先级)。器件内有4个32位寄存器专门用于FIQ,包括: FIQSIG、FIQEN、FIQCLR和FIQSTA。 所有32位经逻辑“或”运算后,形成要发送给ARM7TDMI-S 内 核 的 IRQ信 号 。 器 件 有 如 下 4个 32位 寄 存 器 专 门 用 于 IRQ。 IRQSIG IRQSIG是一个只读寄存器,反映不同IRQ源的状态。如果 一个外设产生了一个IRQ信号,IRQSIG中相应的位就会被 置1;否则就清0。当特定外设的中断被清除时,IRQSIG位 就会被清0。通过设置IRQEN MMR,可屏蔽所有IRQ中断源。 IRQEN IRQEN提供当前使能屏蔽的值。将该寄存器的某一位置1时, 可使能相应的中断请求,此时将产生IRQ异常。将某一位 清0时,可禁用或屏蔽相应的中断请求,此时将无法产生 IRQ异常。IRQEN寄存器无法用来禁用中断。 IRQCLR IRQCLR是一个只写寄存器,可清除IRQEN寄存器的相应 位,从而屏蔽相应的中断源。将该寄存器的某一位置1时, 会清除IRQEN寄存器的相应位,但不影响其他位。寄存器 IRQEN和IRQCLR配对使用,可以实现独立的使能屏蔽功 能,而无需执行原子性读-改-写操作。 IRQSTA IRQSTA是一个只读寄存器,提供当前使能的IRQ源的状态 (IRQSIG和IRQEN对应位进行逻辑“与”操作)。置1时,这个 源将向ARM7TDMI-S内核发出一个有效的IRQ中断请求。 没有优先级编码器和中断矢量产生。该功能可以在软件中 通过一个普通的中断处理程序实现。 FIQSTA的位31至位1经逻辑“或”运算产生FIQ信号,传送到 内核以及FIQ和IRQ寄存器的位0(FIQ源)。 逻辑上FIQEN和FIQCLR不允许一个中断源同时使能IRQ和 FIQ屏蔽。FIQEN中的某一位被置1会导致IRQEN中的同一 位被清0。同样,IRQEN中的某一位被置1会导致FIQEN中 的同一位被清0。一个中断源可以被IRQEN屏蔽和FIQEN 屏蔽禁用。 可编程中断 因为可编程中断是无法屏蔽的,所以它们由另一个寄存器 SWICFG控制,通过这个寄存器可以同时写入IRQSTA和 IRQSIG寄存器和/或FIQSTA和FIQSIG寄存器。 专用于设置软件中断的32位寄存器为SWICFG,见表45。 该寄存器允许控制可编程源中断。 表45. SWICFG MMR位分配 位 31至3 2 1 0 描述 保留。 可编程中断FIQ。 通过将该位置1或清0,可将FIQSTA和FIQSIG寄存器 的位1置1或清0。 可编程中断IRQ。 通过将该位置1或清0,可将IRQSTA和IRQSIG寄存器 的位1置1或清0。 保留。 注意,任何中断信号的有效时间不得少于中断延迟时间, 这样才能保证中断信号能够被中断控制器检测到,或者被 用户在IRQSTA或FIQSTA寄存器中检测到。 Rev. D | Page 60 of 92 ADuC7039 定时器 ADuC7039具有3个通用定时器/计数器: • 定时器0或通用定时器 • 定时器1或唤醒定时器 • 定时器2或看门狗定时器 在周期模式下,计数器以加载寄存器(TxLD寄存器)中的值 为起始值,递减/递增计数至0或满量程,然后再以该值为 起始值,重新开始计数。这意味着,当相关中断位置1时, TxVAL会重新加载TxLD,计数再次从该值开始。 通过写入数据到某一定时器的控制寄存器(TxCON),可以 启动相应的定时器。计数模式和速度取决于TxCON中选择 的配置。 建议不要将0加载到TxLD寄存器中。通过访问计数器的值 寄存器(TxVAL),可以随时读出计数器的值。 在正常模式下,每当计数器的值达到0(递减计数)或满量程 (递增计数)时,都会产生一个IRQ中断。向某一定时器 (TxCLRI)的清除寄存器内写入任一数据,可以清除IRQ 中断。 图23显示了用户定时器MMR与内核定时器模块之间的接 口 。 用 户 代 码 可 以 直 接 访 问 所 有 定 时 器 MMR, 包 括 TxLD、TxVAL、TxCON和TxCLRI。数据必须从这些MMR 传输到定时器子系统内的内核定时器(T0、T1和T2)。这些 内核定时器由同步(SYNC)模块通过用户的MMR接口缓 冲。SYNC模块的主要作用是提供一种方法来确保数据和 所需的其它控制信号能够正确穿过异步时钟域。异步时钟 域的一个例子是:MCU以10 MHz内核时钟运行,定时器1以 32 KHz的低功耗振荡器频率运行。 这3个定时器可以在自由模式或周期模式下工作。 在自由模式下,利用TxLD寄存器中的值,计数器从最大值/ 最小值开始递减/递增至0/满量程,然后再次从最大值/最 小值开始。这意味着,在自由模式下,当相关中断位置1时, TxVAL不会重新加载;当计数器下溢或上溢时,计数值 翻转。 异步时钟域的定时器同步 USEER MMR INERFACE ARM7TDMI AMBA AMBA T0 REG T0 SYNC T0 T1 REG T1 SYNC T1 T2 REG T2 SYNC CORE CLOCK T0IRQ T1IRQ T2IRQ T2 WDRST 0 1 2 08463-033 LOW POWER OSCILLATOR 图23. 定时器功能框图 Rev. D | Page 61 of 92 ADuC7039 SYNCHRONIZER FLIP-FLOPS UNSYNCHRONIZED SIGNAL TIMER 2 LOW POWER CLOCK DOMAIN TARGET CLOCK 08463-034 CORE CLOCK (FCORE) DOMAIN SYNCHRONIZED SIGNAL 图24. 跨时钟域信号的同步器 从图23可以看出,MMR逻辑和内核定时器逻辑位于不同且 异步的时钟域内。来自MMR内核时钟域并且传送到内部 定时器域的任何数据必须与内部定时器时钟域同步,确保 正确锁存到内核定时器时钟域。这是通过两个正反器实现 的,如图24所示,数据不仅同步,而且经过双缓冲,从而 确保数据在定时器时钟域中的完整性。 由于同步模块的存在,虽然MMR时钟域几乎是立即锁存 (利用快速内核时钟)定时器控制数据,但此数据不会立即 到达内核定时器逻辑,而是在所选内部定时器域时钟的至 少2个周期之后。 定时器编程 不同定时器域的同步还要求用户代码对定时器进行仔细编 程,决定何时停止或启动定时器。建议使用的代码控制定 时器模块何时停止和启动定时器,以及何时使用不同的时 钟域。如果使能定时器产生IRQ或FIQ异常,这种控制特别 重要。下面以定时器1为例进行说明。 暂停定时器1 暂 停 定 时 器 1时 , 建 议 屏 蔽 定 时 器 1的 IRQEN位 (使 用 IRQCLR),这可以防止不需要的IRQ在定时器1内部逻辑锁 存T1CON控制位之前产生MCU中断。 IRQCLR = WAKEUP_TIMER_BIT; T1CON = 0x00; // Masking interrupts // halting the timer, 启动定时器1 启动定时器1时,建议首先将所需的TxLD值加载到定时器1。 然后,根据需要设置T1CON位以启动定时器。这将使能定 时器,但前提是定时器1时钟域已内部锁存T1CON位。因 此,建议插入3个时钟周期(对于32 kHz定时器时钟源,则 为100 μs)以上的延迟,使得T1LD值和T1CON值均可通过同 步逻辑锁存并到达定时器1域。延迟之后,建议使用T1CLRI = 0x00清 除 所 有 (意 外 的 )定 时 器 1中 断 。 最 后 , 将 IRQEN MMR中的相应位置1可以解除屏蔽定时器1系统中断。示例 代码如下。 序列示例 假设定时器1按照上文所述中止。 T1LD = 0x1; T1CON = 0x001F; Delay(100us); T1CLRI = 0 ; IRQEN = WAKEUP_TIMER_BIT; // Reload timer // Enable timer, Low power oscillator, 32768 prescaler, periodic // Include delay to ensure T1CON bits take effect //* Clear Timer IRQ // Unmask Timer1 Rev. D | Page 62 of 92 ADuC7039 定时器0值寄存器 定时器0—通用定时器 定时器0是一个16位通用定时器,可递增计数或递减计数。 定时器0采用内核时钟工作,预分频器为1或16,384。当预 分频器为16,384时,产生1.6 ms的最低分辨率,定时器可以 计数1分钟以上。 定时器0可以递增计数,也可以递减计数。16位值可通过 写入T0LD以载入到计数器内。当前计数器值可从T0VAL读 取。当定时器0上溢时,定时器0从T0LD寄存器中重新载入 数值。 名称: T0VAL 地址: 0xFFFF0304 默认值: 0x0000 访问类型: 只读 功能: T0VAL为16位寄存器,用于保存定时器0 的当前值。 定时器0控制寄存器 定时器0接口包括4个寄存器: • T0LD是一个16位寄存器,用于保存载入计数器的16位值。 • T0VAL是一个16位寄存器,用于保存定时器0的当前16 位值。 • T0CLRI是一个8位寄存器。向其中写入任意值,可以清 除定时器0中断。 • T0CON是一个16位配置寄存器,如表46所示。 定时器0载入寄存器 名称: T0CON 地址: 0xFFFF0308 默认值: 0x0000 访问类型: 读/写 功能: 该16位寄存器用于设置定时器0的工作 模式。 定时器0清除寄存器 名称: T0LD 地址: 0xFFFF0300 默认值: 0x0000 访问类型: 读/写 功能: T0LD为16位寄存器,用于保存载入计数 器的16位值。 名称: T0CLRI 地址: 0xFFFF030C 访问类型: 只写 功能: 通过用户代码向该8位只写寄存器写入任 意值,可以清除中断。 Rev. D | Page 63 of 92 ADuC7039 16-BIT LOAD PRESCALER 1 OR 16,384 16-BIT UP/DOWN COUNTER TIMER0 VALUE 图25. 定时器0框图 表46. T0CON MMR位分配 位 15至6 5 4 3 2 1至0 描述 保留。 定时器0模式。 该位由用户代码置1时,选择周期模式。 该位由用户代码清0时,选择自由模式(默认)。 递增计数。 该位由用户代码置1时,定时器0递增计数。 该位由用户代码清0时,定时器0递减计数(默认)。 定时器0使能位。 该位由用户代码置1时,使能定时器0。 该位由用户代码清0时,禁用定时器0(默认)。 保留。 预分频器。 00 = 时钟源/1(默认)。 01 = 时钟源/1。 10 = 时钟源/16,384。 11 = 时钟源/16,384。 Rev. D | Page 64 of 92 TIMER0 IRQ 08463-022 CORE CLOCK FREQUENCY ADuC7039 定时器1值寄存器 定时器1—唤醒定时器 定时器1是一个带有可编程预分频器的32位唤醒定时器, 可递增计数或递减计数。所选时钟源(内核时钟或低功耗振 荡器)的分频系数共有1、16、256或32,768四种。如果从低 功耗振荡器获得时钟,当内核时钟被禁用时,唤醒定时器 仍继续运行。 名称: T1VAL 地址: 0xFFFF0324 默认值: 0xFFFFFFFF 访问类型: 只读 定时器1在溢出时从T1LD重新载入值。 功能: T1VAL是一个32位寄存器,用于保存定 时器1的当前值。 定时器1接口有4个寄存器: • T1LD和T1VAL均为32位寄存器,用于保存32位无符号 整数。T1VAL为只读寄存器。 • T1CLRI是一个8位寄存器。向其中写入任意值,可以清 除定时器1中断。 • T1CON是一个16位配置寄存器,如表47所示。 定时器1载入寄存器 定时器1清除寄存器 名称: T1CLRI 地址: 0xFFFF032C 默认值: 只写 功能: 通过用户代码向该8位只写寄存器写入任意 值,可以清除中断。 名称: T1LD 地址: 0xFFFF0320 定时器1控制寄存器 默认值: 0x00000000 名称: T1CON 访问类型: 读/写 地址: 0xFFFF0328 功能: T1LD是一个32位寄存器,用于保存载入 计数器的32位值。 默认值: 0x0000 访问类型: 读/写 功能: T1CON是一个16位寄存器,用于设置定 时器1的工作模式。 Rev. D | Page 65 of 92 ADuC7039 32-BIT LOAD LOW POWER OSCILLATOR PRESCALER 1, 16, 256, OR 32,768 32-BIT UP/DOWN COUNTER TIMER1 IRQ TIMER1 VALUE 图26. 定时器1框图 表47. T1CON MMR位分配 位 15至6 5 4 3 2 1至0 描述 保留。这些位应该写入0。 定时器1模式。 该位由用户代码置1时,选择周期模式。 该位由用户代码清0时,选择自由模式(默认)。 递增计数。 该位由用户代码置1时,定时器1递增计数。 该位由用户代码清0时,定时器1递减计数(默认)。 定时器1使能位。 该位由用户代码置1时,使能定时器1。 该位由用户代码清0时,禁用定时器1(默认)。 时钟选择。 0 = 内核时钟(默认)。 1 = 低功耗(32.768 kHz)振荡器。 预分频器。 00 = 时钟源/1(默认)。 01 = 时钟源/16。 10 = 时钟源/256。 11 = 时钟源/32,768。 Rev. D | Page 66 of 92 08463-100 CORE CLOCK FREQUENCY ADuC7039 定时器2—看门狗定时器 定时器2接口有4个寄存器: 定时器2共有两种工作模式:正常模式和看门狗模式。看 门狗定时器用于强制处理器从非法软件状态恢复到正常工 作状态。一旦看门狗定时器被使能,它需要周期性服务来 阻止自身强制处理器执行复位操作。 • T2LD是一个16位寄存器,用于保存载入计数器的16位 值。 • T2VAL是一个16位寄存器,用于保存定时器2的当前16 位值。 • T2CLRI是一个8位寄存器。在正常模式下向这个寄存器 写入任意值,将清除定时器2中断;在看门狗模式下向 这个寄存器写入任意值,则重新开始一个超时周期。 • T2CON是一个16位配置寄存器,如表48所示。 当定时器2在正常模式下溢出时,或者在看门狗模式下写 入T2CLRI时,定时器2将重新载入T2LD中的值。 正常模式 正常模式下的定时器2与16位工作模式下的定时器0相同(时 钟源和预分频器除外)。时钟源采用低功耗振荡器,分频系 数共有1、16和256三种。 定时器2载入寄存器 名称: T2LD 看门狗模式 地址: 0xFFFF0340 将T2CON[5]置1可进入看门狗模式。定时器2从T2LD寄存 器中的超时值开始递减计数,直至计数值为0。当使用 1/256的最大预分频和T2LD的满量程值时,最长超时时间 为524秒。 默认值: 0x0050 访问类型: 读/写 功能: T2LD是一个16位寄存器,用于保存载入 计数器的16位值。 Flash/EE存储器完成一次页擦除操作需要20 ms,为避免与此 发生任何冲突,用户软件不得将超时周期设为小于30 ms。 定时器2清除寄存器 当T2VAL到达0时,系统产生复位或中断,具体取决于 T2CON[1]的值。要避免出现复位或中断事件,必须在 T2VAL达到0之前将任意值写入T2CLRI。此操作可将T2LD 的值重新载入计数器内,且重新开始一个新的超时周期。 名称: T2CLRI 地址: 0xFFFF034C 访问类型: Write only 一旦进入看门狗模式,T2LD和T2CON就会被写保护。 功能: 除非通过上电复位将看门狗定时器复位,否则,无法修改 这两个寄存器内的数据。其它任何复位事件产生后,看门 狗定时器仍会继续计数。看门狗定时器应在用户代码的最 初行内配置以免陷入看门狗复位的无限循环内。 在正常模式下,通过用户代码向该8位只 写寄存器写入任意值,可清除中断;在 看门狗模式下则可复位超时。 名称: T2VAL 地址: 0xFFFF0344 默认值: 0x0050 访问类型: 只写 功能: T2VAL为16位寄存器,用于保存定时器2 的当前值。 定时器2在JTAG调试访问期间自动暂停,并且只在JTAG放 弃ARM7内核控制权后才会重新开始计数。默认情况下, 定时器2可在关断期间继续计数。这可通过将T2CON[0]置1 来禁用。建议采用默认值,即在关断期间仍允许看门狗定 时器继续计数。 定时器2值寄存器 定时器2控制寄存器 名称: T2CON 地址: 0xFFFF0348 默认值: 0x0000 访问类型: 读/写 功能: 该16位寄存器用于设置定时器2的工作 模式。 Rev. D | Page 67 of 92 ADuC7039 16-BIT LOAD PRESCALER 1, 16, 256 16-BIT UP/DOWN COUNTER WATCHDOG RESET TIMER2 IRQ TIMER2 VALUE 图27. 定时器2框图 表48. T2CON MMR位分配 位 15至9 8 7 6 5 4 3至2 1 0 描述 保留。这些位保留,应由用户代码写入0。 递增/递减计数使能。 该位由用户代码置1时,定时器2递增计数。 该位由用户代码清0时,定时器2递减计数。 定时器2使能。 该位由用户代码置1时,使能定时器2。 该位由用户代码清0时,禁用定时器2。 定时器2工作模式。 该位由用户代码置1时,选择周期模式。 该位由用户代码清0时,选择自由模式。 看门狗定时器模式使能。 该位由用户代码置1时,使能看门狗模式。 该位由用户代码清0时,禁用看门狗模式。 保留。这些位保留,应由用户代码写入0。 定时器2时钟预分频器。 00 = 时钟源/1(默认)。 01 = 时钟源/16。 10 = 时钟源/256。 11 = 保留。 看门狗定时器IRQ使能。 该位由用户代码置1时,可在看门狗计数值为0时产生IRQ中断而非复位。 该位由用户代码清0时,禁用IRQ选项。 PD_OFF. 该位由用户代码置1时,则利用POWCON MMR位4关断外设时停止定时器2。 该位由用户代码清0时,则利用POWCON MMR位4关断外设时使能定时器2。 Rev. D | Page 68 of 92 08463-024 LOW POWER OSCILLATOR ADuC7039 通用输入/输出 ADuC7039共有6个通用双向输入/输出(GPIO)引脚。一般 情况下,通过用户代码设置,GPIO引脚可以实现多种功能。 默认情况下,GPIO引脚在GPIO模式下工作。所有GPIO引 脚都具有一个内部上拉电阻,吸电流能力为0.8 mA,源电流 能力为0.1 mA。典型GPIO结构如图28所示。 REG_DVDD OUTPUT DATA GPDAT[23:16] INPUT DATA GPDAT[7:0] GPIO 引脚 GPIO_0 GPIO_1 GPIO_2 GPIO GPIO_3 08463-025 OUTPUT DRIVE ENABLE GPDAT[31:24] 表49. 外部GPIO引脚到内部端口信号分配 GPIO_4 图28. ADuC7039 GPIO 这6个GPIO归属于一个6位宽端口。该端口的GPIO分配详 见表49。 在正常操作期间,用户代码可利用这些通用寄存器来控制 外 部 GPIO引 脚 的 功 能 和 状 态 。 所 有 GPIO引 脚 在 关 断 (POWCON)模式期间保持其外部电平(高或低)。 GPIO_5 端口 信号 P0.0 SS P0.1 SCLK P0.2 MISO P0.3 MOSI P0.4 LINRx IRQ1 P0.5 LINTx 功能(由GPCON定义) 通用I/O。 SPI从机选择I/O。 通用I/O。 SPI串行时钟I/O。 通用I/O。 SPI主机输入、从机输出。 通用I/O。 SPI主机输出、从机输入。 通用I/O。 LIN一致性测试的LIN输入。 外部中断请求1。 通用I/O。 LIN一致性测试的LIN输出。 端口引脚由以下4个MMR配置和控制: • • • • GPCON:控制寄存器 GPDAT:配置和数据寄存器 GPSET:数据设置 GPCLR:数据清零 Rev. D | Page 69 of 92 ADuC7039 GPIO端口控制寄存器 名称: GPCON 地址: 0xFFFF0D00 默认值: 0x00000000 访问类型: 读/写 功能: 该32位MMR选择每个端口引脚的功能。 表50. GPCON MMR位分配 位 31至21 20 19至17 16 15至13 12 11至9 8 7至5 4 3至1 0 描述 保留。这些位保留,应由用户代码写入0。 GPIO_5功能选择位。 该位由用户代码清0时,GPIO_5引脚配置为通用I/O (GPIO)引脚。 该位由用户代码置1时,GPIO_5引脚配置为LIN一致性测试的LIN输出。 保留。这些位保留,应由用户代码写入0。 GPIO_4功能选择位。 该位由用户代码清0时,GPIO_4引脚配置为通用I/O (GPIO)引脚。 该位由用户代码置1时,GPIO_4引脚配置为LIN一致性测试的LIN输入。 保留。这些位保留,应由用户代码写入0。 GPIO_3功能选择位。 该位由用户代码清0时,GPIO_3引脚配置为通用I/O (GPIO)引脚。 该位由用户代码置1时,GPIO_3引脚配置为SPI端口的MOSI(主机输出从机输入)。 保留。这些位保留,应由用户代码写入0。 GPIO_2功能选择位。 该位由用户代码清0时,GPIO_2引脚配置为通用I/O (GPIO)引脚。 该位由用户代码置1时,GPIO_2引脚配置为SPI端口的MISO(主机输入从机输出)。 保留。这些位保留,应由用户代码写入0。 GPIO_1功能选择位。 该位由用户代码清0时,GPIO_1引脚配置为通用I/O (GPIO)引脚。 该位由用户代码置1时,GPIO_1引脚配置为SPI端口的SCLK(串行时钟I/O)。 保留。这些位保留,应由用户代码写入0。 GPIO_0功能选择位。 该位由用户代码清0时,GPIO_0引脚配置为通用I/O (GPIO)引脚。 该位由用户代码置1时,GPIO_0引脚配置为SPI端口的SS(从机选择输入)。 Rev. D | Page 70 of 92 ADuC7039 GPIO端口数据寄存器 名称: GPDAT 地址: 0xFFFF0D10 默认值: 0x000000FF 访问类型: 读/写 功能: 该32位寄存器用于配置GPIO引脚的方向,还设置用作输出端的GPIO引脚的输出值并读取用作输入端的 GPIO引脚的状态。 表51. GPDAT MMR位分配 位 31至30 29 23至22 21 20 19 18 17 16 15至6 5 4 描述 保留。这些位保留,应由用户代码写入0。 端口0.5方向选择位。 该位由用户代码清0时,将分配给端口0.5的GPIO引脚配置为输入端。 该位由用户代码置1时,将分配给端口0.5的GPIO引脚配置为输出端。 端口0.4方向选择位。 该位由用户代码清0时,将分配给端口0.4的GPIO引脚配置为输入端。 该位由用户代码置1时,将分配给端口0.4的GPIO引脚配置为输出端。 端口0.3方向选择位。 该位由用户代码清0时,将分配给端口0.3的GPIO引脚配置为输入端。 该位由用户代码置1时,将分配给端口0.3的GPIO引脚配置为输出端。 端口0.2方向选择位。 该位由用户代码清0时,将分配给端口0.2的GPIO引脚配置为输入端。 该位由用户代码置1时,将分配给端口0.2的GPIO引脚配置为输出端。 端口0.1方向选择位。 该位由用户代码清0时,将分配给端口0.1的GPIO引脚配置为输入端。 该位由用户代码置1时,将分配给端口0.1的GPIO引脚配置为输出端。 端口0.0方向选择位。 该位由用户代码清0时,将分配给端口0.0的GPIO引脚配置为输入端。 该位由用户代码置1时,将分配给端口0.0的GPIO引脚配置为输出端。 保留。这些位保留,应由用户代码写入0。 端口0.5数据输出。写入到该位的值直接出现在分配给端口0.5的GPIO引脚上。 端口0.4数据输出。写入到该位的值直接出现在分配给端口0.4的GPIO引脚上。 端口0.3数据输出。写入到该位的值直接出现在分配给端口0.3的GPIO引脚上。 端口0.2数据输出。写入到该位的值直接出现在分配给端口0.2的GPIO引脚上。 端口0.1数据输出。写入到该位的值直接出现在分配给端口0.1的GPIO引脚上。 端口0.0数据输出。写入到该位的值直接出现在分配给端口0.0的GPIO引脚上。 保留。这些位保留,应由用户代码写入0。 端口0.5数据输入。只读,反映分配给端口0.5的GPIO引脚的当前状态。应由用户代码写入0。 端口0.4数据输入。只读,反映分配给端口0.4的GPIO引脚的当前状态。应由用户代码写入0。 3 2 端口0.3数据输入。只读,反映分配给端口0.3的GPIO引脚的当前状态。应由用户代码写入0。 端口0.2数据输入。只读,反映分配给端口0.2的GPIO引脚的当前状态。应由用户代码写入0。 1 端口0.1数据输入。只读,反映分配给端口0.1的GPIO引脚的当前状态。应由用户代码写入0。 0 端口0.0数据输入。只读,反映分配给端口0.0的GPIO引脚的当前状态。应由用户代码写入0。 28 27 26 25 24 Rev. D | Page 71 of 92 ADuC7039 GPIO端口设置寄存器 名称: GPSET 地址: 0xFFFF0D14 默认值: N/A 访问类型: 只写 功能: 该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独拉高。用户代码可利用GPSET MMR来实现此操作,而不必修改或维持任何其它GPIO引脚的状态(使用GPDAT时用户代码要求)。 表52. GPSET MMR位分配 位 31至22 21 20 19 18 17 16 15至0 描述 保留。这些位保留,应由用户代码写入0。 端口0.5设置位。 该位由用户代码置1时,将外部GPIO_5引脚拉高。 该位由用户软件清0时,不影响外部GPIO_5引脚。 端口0.4设置位。 该位由用户代码置1时,将外部GPIO_4引脚拉高。 该位由用户软件清0时,不影响外部GPIO_4引脚。 端口0.3设置位。 该位由用户代码置1时,将外部GPIO_3引脚拉高。 该位由用户软件清0时,不影响外部GPIO_3引脚。 端口0.2设置位。 该位由用户代码置1时,将外部GPIO_2引脚拉高。 该位由用户软件清0时,不影响外部GPIO_2引脚。 端口0.1设置位。 该位由用户代码置1时,将外部GPIO_1引脚拉高。 该位由用户软件清0时,不影响外部GPIO_1引脚。 端口0.0设置位。 该位由用户代码置1时,将外部GPIO_0引脚拉高。 该位由用户软件清0时,不影响外部GPIO_0引脚。 保留。这些位保留,应由用户代码写入0。 Rev. D | Page 72 of 92 ADuC7039 GPIO端口清零寄存器 名称: GPCLR 地址: 0xFFFF0D18 默认值: N/A 访问类型: 只写 功能: 该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独拉低。用户代码可利用GPCLR MMR来实现此操作,而不必修改或维持任何其它GPIO引脚的状态(使用GPDAT时用户代码要求)。 表53. GPCLR MMR位分配 位 31至22 21 20 19 18 17 16 15至0 描述 保留。这些位保留,应由用户代码写入0。 端口0.5清除位。 该位由用户代码置1时,将外部GPIO_5引脚拉低。 该位由用户软件清0时,不影响外部GPIO_5引脚。 端口0.4清除位。 该位由用户代码置1时,将外部GPIO_4引脚拉低。 该位由用户软件清0时,不影响外部GPIO_4引脚。 端口0.3清除位。 该位由用户代码置1时,将外部GPIO_3引脚拉低。 该位由用户软件清0时,不影响外部GPIO_3引脚。 端口0.2清除位。 该位由用户代码置1时,将外部GPIO_2引脚拉低。 该位由用户软件清0时,不影响外部GPIO_2引脚。 端口0.1清除位。 该位由用户代码置1时,将外部GPIO_1引脚拉低。 该位由用户软件清0时,不影响外部GPIO_1引脚。 端口0.0清除位。 该位由用户代码置1时,将外部GPIO_0引脚拉低。 该位由用户软件清0时,不影响外部GPIO_0引脚。 保留。这些位保留,应由用户代码写入0。 Rev. D | Page 73 of 92 ADuC7039 串行外设接口(SPI) ADuC7039片内集成一个完整的硬件串行外设接口(SPI)。 SPI是一种工业标准同步串行接口,允许同时双向传输8位 数据(即全双工),最大比特率可达5.12 Mb。 该SPI端口可配置为主机或从机操作,一般由4个引脚组 成:MISO、MOSI、SCLK和SS。 主机输入、从机输出(MISO)引脚 在主机模式下,MISO引脚被配置为输入线路;在从机模 式下,配置为输出线路。主机上的MISO线路(数据输入)应 与从机内的MISO线路(数据输出)相连。传送的数据是以字 节(8位)为单位的串行数据,MSB优先。 从机选择(SS)引脚 在SPI从机模式时,置位SS引脚将启动数据传输,该引脚为 一个低电平有效输入信号。然后,SPI端口开始发送和接收 8位数据,直到SS解除置位,传输结束。在从机模式下, SS总是为输入。 在SPI主机模式下,SS是低电平有效输出信号。传输开始 后,它自动置位;传输完成后,它自动解除置位。 SPI MMR接口 下列MMR寄存器用来控制SPI接口:SPISTA、SPIRX、 SPITX、SPIDIV和SPICON。 主机输出、从机输入(MOSI)引脚 SPIRX寄存器 在主机模式下,MOSI引脚被配置为输出线路;在从机模 式下,配置为输入线路。主机上的MOSI线路(数据输出)应 与从机内的MOSI线路(数据输入)相连。传送的数据是以字 节(8位)为单位的串行数据,MSB优先。 名称: SPIRX 地址: 0xFFFF0A04 默认值: 0x00 串行时钟I/O (SCLK)引脚 访问类型: 只读 功能: 该8位寄存器是SPI接收寄存器。 主机串行时钟(SCLK)用于同步MOSI SCLK周期中发送和接 收的数据。所以,发送/接收一个字节需要8个SCLK周期。 在主机模式下,SCLK引脚配置成输出端,而在从机模式 下,配置成输入端。 在主机模式下,时钟的极性和相位由SPICON寄存器控 制,SPIDIV寄存器的值决定了比特率。比特率的计算公式 如下: f SERIALCLOCK = 20.48 MHz 2 × (1 + SPIDIV ) 主机模式支持的最大比特率为10.24 Mb。在从机模式下,可 对SPICON寄存器进行设置,以配置预期输入时钟的相位 和极性。从机可以从外部主机接收数据(速率可达5.12 Mb)。 在主机模式和从机模式下,数据都在SCLK信号的一个沿发 送,并在另一个沿采样。所以,从机时钟的极性和相位必 须与主机配置一致。 SPITX寄存器 名称: SPITX 地址: 0xFFFF0A08 默认值: N/A 访问类型: 只写 功能: 该8位寄存器是SPI发送寄存器。 SPIDIV寄存器 名称: SPIDIV 地址: 0xFFFF0A0C 默认值: 0x00 访问类型: 读/写 功能: 该6位寄存器是SPI波特率选择寄存器。 Rev. D | Page 74 of 92 ADuC7039 SPI状态寄存器 名称: SPISTA 地址: 0xFFFF0A00 默认值: 0x0000 访问类型: 只读 功能: 该16位寄存器用于存储主机、从机模式下SPI接口的状态。 表54. SPISTA MMR位分配 位 15至12 11 10至8 7 6 5 描述 保留位。 SPI接收FIFO存在过剩字节。 接收FIFO的字节数超过由SPICON寄存器中SPIRXMDE位规定的字节数后,该位置1。 FIFO中的字节数不超过由SPIRXMDE位规定的字节数时,该位清0。 SPI接收FIFO状态位。 [000] = 接收FIFO为空。 [001] = 该FIFO内有1个有效字节。 [010] = 该FIFO内有2个有效字节。 [011] = 该FIFO内有3个有效字节。 [100] = 该FIFO内有4个有效字节。 SPI接收FIFO溢出状态位。 当接收FIFO已满时,如果向该FIFO内加载新数据,该位置1。除非SPICON[12]置1,否则该位置1将产生一个中断。 读取SPISTA寄存器的内容后,该位清0。 SPI接收IRQ状态位。 产生接收中断时,该位置1。当SPICON[6]清0,并且接收到所需字节数后,该位置1。 读取SPISTA寄存器的内容后,该位清0。 SPI发送IRQ状态位。 产生发送中断时,该位置1。当SPICON[6]置1,并且已发送所需字节数后,该位置1。 读取SPISTA寄存器的内容后,该位清0。 4 SPI发送FIFO下溢。 当启动一次发送操作且发送FIFO内没有有效数据时,该位置1。除非SPICON[13]置1,否则该位置1将产生一个中断。 读取SPISTA寄存器的内容后,该位清0。 3至1 SPI发送FIFO状态位。 000 = 发送FIFO为空。 001 = 该FIFO内有1个有效字节。 010 = 该FIFO内有2个有效字节。 011 = 该FIFO内有3个有效字节。 100 = 该FIFO内有4个有效字节。 SPI中断状态位。 SPI中断发生时,该位置1。 读取SPISTA寄存器的内容后,该位清0。 0 Rev. D | Page 75 of 92 ADuC7039 SPI控制寄存器 名称: SPICON 地址: 0xFFFF0A10 默认值: 0x0000 访问类型: 读/写 功能: 该16位寄存器用于在主机和从机模式下配置SPI外设。 表55. SPICON MMR位分配 位 15至14 13 描述 SPI IRQ模式位。这些位用于配置在传输过程中何时发生发送/接收中断。 00 = 传输完1个字节后,产生发送中断。FIFO接收到1个或以上字节时,产生接收中断。 01 = 传输完2个字节后,产生发送中断。FIFO接收到1个或以上字节时,产生接收中断。 10 = 传输完3个字节后,产生发送中断。FIFO接收到3个或以上字节时,产生接收中断。 11 = 传输完4个字节后,产生发送中断。接收FIFO空间已满或有4个字节数据时,产生接收中断。 SPI发送FIFO清空使能位。 该位置1时,清空发送FIFO。该位无法自清0;需要一个单次清空操作时,应将该位置1。如果该位的值总保持为1, 那么将发送0x00或上次发送的值,具体取决于SPICON[7]的设置。该位为1时,无法对发送FIFO进行写操作。 该位清0时,禁用发送FIFO清空。 12 SPI接收FIFO清除使能位。 该位置1时,清空接收FIFO。该位无法自清0;需要一个单次清空操作时,应将该位置1。该位置1后,所有向接收 FIFO写数据的操作将被忽略,且系统不产生中断。如果置1并且SPICON[6] = 0,读取接收FIFO将启动一次数据传输。 该位清0时,禁用接收FIFO清空。 11 连续传输使能。 通过将该位置1,用户可使能连续传输。在主机模式下,数据传输连续进行,直到SPITX寄存器内无有效数据为止。 SS置位,并在每一次8位串行传输期间保持置位,直到发送寄存器为空。 通过将该位清0,用户可禁用连续传输。每一次传输都是单独的8位串行传输。如果SPITX寄存器中存在有效数据, 那么经过1个串行时钟周期的停转时间后,重新开始传输数据。 10 回送使能位。 通过将该位置1,用户可将MISO连接到MOSI并测试软件。 通过将该位清0,可返回正常模式。 从机MISO输出使能位。 将该位置1时,可禁用MISO引脚上的输出驱动器。该位置1后,MISO引脚变为开漏极。 将该位清0时,MISO正常工作。 SPIRX上溢覆盖使能。 用户将该位置1后,新接收到的串行数据将覆盖SPIRX寄存器中的有效数据。 用户将该位清0后,新接收到的串行数据会被丢弃。 发送FIFO为空时SPI发送0使能位。 若将该位置1,则在发送FIFO无有效数据时,SPI发送0x00。 若将该位清0,则在发送FIFO无有效数据时,SPI发送上次发送的值。 SPI传输和中断模式。 通过将该位置1,用户可在向SPITX寄存器写入数据时开始传输。只有当SPITX为空时产生中断。 通过将该位清0,用户可在从SPITX寄存器读取数据时开始传输。只有当SPIRX已满时产生中断。 LSB优先传输使能位。 用户将该位置1后,优先发送LSB。 用户将该位清0后,优先发送MSB。 9 8 7 6 5 Rev. D | Page 76 of 92 ADuC7039 位 4 3 2 1 0 描述 SPI线或模式使能位。 通过将该位置1,可使能开漏数据输出。数据输出引脚需要外部上拉电阻。 将该位清0时,启动正常输出模式。 串行时钟极性模式位。 用户将该位置1后,串行时钟高电平空闲。 用户将该位清0后,串行时钟低电平空闲。 串行时钟相位模式位。 用户将该位置1后,串行时钟脉冲出现在每一次串行位传输的起始位置。 用户将该位清0后,串行时钟脉冲出现在每一次串行位传输的末尾。 主机模式使能位。 通过将该位置1,用户可使能主机模式。 通过将该位清0,用户可使能从机模式。 SPI使能位。 通过将该位置1,用户可使能SPI。 通过将该位清0,用户可禁用SPI。 Rev. D | Page 77 of 92 ADuC7039 高压外设控制接口 ADuC7039集成了多个高压电路功能,它们通过一个包括 两个MMR(HVCON和HVDAT)的寄存器接口来加以监控。 HVCON寄存器充当命令字节解释器,允许微控制器间接 地对两个高压状态/配置寄存器中的一个进行8位数据读写 操作(值存放在HVDAT内)。这些高压寄存器不是MMR, 但通常被称为间接寄存器,即只能通过HVCON和HVDAT MMR间接访问。 高压接口包括两个MMR和两个间接寄存器: • HVCON是一个8位寄存器,用作高压控制接口的命令字 节解释器。写入此寄存器的字节被解释为对高压电路相 关的两个间接寄存器的读或写命令。命令代码如表56所 示。回读HVCON MMR可知操作是否成功。 • HVDAT是一个12位寄存器,用于保存高压接口寄存器 的间接读写数据。 • HVCFG是一个8位寄存器,用于控制高压电路的功能, 利用HVCON和HVDAT访问。 • HVSTA是一个8位只读寄存器,反映高压电路的状态。 此寄存器不是MMR,因而不会出现在MMR存储器映射 内 。 它 通 过 HVCON寄 存 器 接 口 访 问 , 其 数 据 通 过 HVDAT回读。高压中断控制器响应高压中断事件,将 高 压 状 态 寄 存 器 (HVSTA)的 当 前 值 同 时 自 动 载 入 HVDAT寄存器内。 HVCON寄存器和间接高压寄存器之间的物理接口采用基 于2.56 MHz串行时钟的两线(数据和时钟)式串行接口。因 此,从MCU内核将命令写入HVCON到该命令或数据到达 间接高压寄存器内需要一定的延时(最长10 μs)。从MCU内核 将命令写入HVCON到间接寄存器数据被回读到HVDAT寄 存器内也需要10 μs延时。MCU可轮询繁忙位(MCU读取时 为HVCON位0)以确认读/写命令何时结束。 图29显示高压接口和相关电路的顶层架构。LIN物理接口 通过此接口控制和监控。 HIGH VOLTAGE INTERFACE MMRs HVDAT SERIAL DATA SERIAL CLOCK HVCFG SERIAL INTERFACE CONTROLLER HVSTA ARM7 MCU AND PERIPHERALS IRQ HVCFG[4] LVF HVCFG[2:0] LIN HIGH VOLTAGE INTERRUPT CONTROLLER 图29. 高压接口顶层框图 Rev. D | Page 78 of 92 LIN S/C—HVSTA[0] 08463-026 HVCON (INDIRECT) HIGH VOLTAGE REGISTERS ADuC7039 高压接口控制接口 名称: HVCON 地址: 0xFFFF0804 默认值: 由内核更新 访问类型: 读/写 读/写 该8位寄存器用作高压控制接口的命令字节解释器。写入此寄存器的字节被解释为对高压电路相关的两 个间接寄存器的读或写命令。HVDAT寄存器用来存放间接寄存器的写入或回读数据。 表56. HVCON MMR写入位分配 位 7至0 描述 命令字节。含义为 0x00 = 将高压寄存器HVCFG回读到HVDAT。 0x02 = 将高压状态寄存器HVSTA回读到HVDAT。 0x08 = 将HVDAT内的值写入高压寄存器HVCFG。 其它 = 保留。 表57. HVCON MMR读取位分配 位 7至3 2 描述 保留。 发送到高压芯片命令状态。 1 = 命令成功。 0 = 命令失败。 高压芯片读取命令状态。 1 = 命令成功。 0 = 命令失败。 繁忙(只读)位。当用户代码读取此寄存器时,位0应视为高压接口的繁忙位。可用来决定读取请求是否已完成。 除非繁忙= 0,否则此表中所述高压(读/写)命令不能写入HVCON。 繁忙 = 1,高压接口繁忙且未完成前一个HVCON写入命令。位1、2无效。 繁忙 = 0,高压接口空闲且已完成HVCON写入命令。位1、2有效。 1 0 高压数据寄存器 名称: HVDAT 地址: 0xFFFF080C 默认值: 由内核更新 访问类型: 读/写 读/写 HVDAT是一个12位寄存器,用于保存高压接口寄存器HVDAT、HVSTA、HVCFG的间接读写数据。 表58. HVDAT MMR位分配 位 11至8 7至0 描述 高压数据HVDAT[7:0]相关的命令。这些位为只读且应写入0 0x00 = 将高压寄存器HVCFG回读到HVDAT。 0x02 = 将高压状态寄存器HVSTA回读到HVDAT。 0x08 = 将HVDAT内的值写入高压寄存器HVCFG。 欲读/写的高压数据 Rev. D | Page 79 of 92 ADuC7039 高压配置寄存器 名称: HVCFG 地址: 通过HVCON高压接口间接寻址 默认值: 0x00 访问类型: 读/写 功能: 该8位寄存器控制ADuC7039上的高压电路功能。此寄存器不是MMR,因而不会出现在MMR存储器映 射内。通过HVCON寄存器接口访问。欲写入该寄存器的数据通过HVDAT MMR加载,从该寄存器回读 数据也是通过HVDAT MMR。 表59. HVCFG位分配 位 7至5 4 3 2 1 0 描述 保留。 低压标志(LVF)使能位。 该位清0时,禁用LVF功能。 该位置1时,使能LVF功能。上电后可通过HVSTA[2] 查询低压标志,以决定REG_DVDD电压先前是否下降到2.1 V 以下。 电压衰减器诊断使能位。 该位置1时,接通电流源,将一个差分电压加到电压通道测量上。 该位清0时,禁用电压衰减器诊断功能。 LIN驱动器重新使能位。 该位置1时,重新使能因为短路电流事件而禁用的LIN驱动器。 该位自动清0。 使能/禁用LIN短路保护。 该位置1时,使能LIN引脚被动短路保护。此时LIN引脚上的短路事件会产生高压中断(前提是IRQEN[10]使能), 并置位HVSTA内的相应状态位,但不会禁用短路引脚。 该位清0时,使能LIN引脚主动短路保护。此时在短路事件期间,LIN引脚产生高压中断(IRQSTA[10]), 置位HVSTA[0],并自动禁用短路引脚。禁用后,I/O引脚只能通过写入HVCFG[2]来重新使能。 只有持续时间长于20 μs的LIN短路事件才能被检测到。 LIN工作模式。 0 = LIN禁用。 1 = LIN使能。 Rev. D | Page 80 of 92 ADuC7039 高压状态寄存器 名称: HVSTA 地址: 通过HVCON高压接口间接寻址 默认值: 0x00 访问类型: 只读,只应在高压中断时读取。 功能: 此8位只读寄存器反映低压标志和LIN短路中断状态。此寄存器不是MMR,因而不会出现在MMR存储器映 射内。它通过HVCON寄存器接口访问,其数据通过HVDAT回读。高压中断控制器响应高压中断事件,将 高压状态寄存器(HVSTA)的当前值同时自动载入HVDAT寄存器内。 表60. HVSTA位分配 位 7至3 2 1 0 描述 保留。这些位不能使用,保留供未来使用。 低压标志状态位。只在通过HVCFG[4]使能时有效。 上电时,如果REG_DVDD已下降至2.1 V以下,则该位为0。此时,RAM内容视为已被破坏。 上电时,如果REG_DVDD未下降至2.1 V以下,则该位为1。此时RAM内容视为有效。只能通过重新使能HVCFG0[4] 内的低压标志来清0。 保留。该位不能使用,保留供未来使用。 LIN短路状态中断。 LIN正常工作时,该位为0;读取HVSTA寄存器后自动清0。 检测到LIN短路时,该位为1。此时LIN驱动器自动禁用。 低压标志(LVF) ADuC7039有一个低压标志(LVF),使能时,用户可以监控 REG_DVDD(参见“低压标志(LVF)”部分)。通过HVCFG[4] 使能后,可通过HVSTA[2]监控LVF的状态。如果REG_ DVDD降至2.1 V以下,则HVSTA[2]清0且RAM内容已被破坏。 使能低压标志后,只有REG_DVDD降至2.1 V以下或利用 HVCFG[4]禁用LVF功能才能使其复位。 尽管正常情况下MCU通过跳转到IRQ或FIQ矢量地址来响 应此中断事件,但高压中断控制器仍同时自动地将高压状 态寄存器(HVSTA)的当前值载入HVDAT寄存器内。此时 HVCON[0]内的繁忙位被置1,指示传输正在进行中,并在 10 μs后清0,指示可从HVDAT获取HVSTA内容。 高压中断 该接口应由中断驱动。因此,中断处理程序可一直轮询 HVCON内的繁忙位,直到其解除置位。在繁忙位清0后, 必须检查HVCON[1]以确保正确读取数据。接下来,可读 取HVDAT寄存器。此时,HVDAT保存着HVSTA寄存器 的值。 高压电路还集成了一个中断控制器。如果通过IRQEN[10] 使能,LIN短路事件将能置位高压中断信号并中断MCU 内核。 读取HVSTA寄存器将清除中断,因此,不建议随时读取 HVSTA。 处理高压接口中断和高压通信 Rev. D | Page 81 of 92 ADuC7039 ISR IRQ/FIQSTA = HV IRQ NO OTHER INTERRUPT YES HVCON[0] = 0 NO YES HVCON[1] = 1 NO HVCON = 0x1 (MANUAL READ) YES READ HVDAT HVDAT[11:8] = 0x1 NO HVDAT[7:0] = HVSTA 08463-027 YES 图30. 高压接口中断流程图 高压配置 下面是使能LIN的示例代码。 char HVstatus; do{ HVDAT = 0x01; HVCON = 0x08; do{ HVstatus = HVCON; } while(HVstatus & 0x1); } while (!(HVstatus & 0x4)); // Enable LIN // Enable LIN physical layer mode // Write to HVCFG // Wait until command is finished // Transmit command is correct 最好使用一个函数实现高压通信例程,然后在代码中调用此函数。 Rev. D | Page 82 of 92 ADuC7039 LIN(局域互连网络)接口 LIN物理接口 如图31所示,LIN协议利用IRQ/FIQ、专用LIN定时器和同 样片内集成的高压收发器来仿真。当器件处于休眠模式 下,LIN时钟从低功耗振荡器获得;正常模式下则从内核 时钟获得。 ADuC7039在ARM7 MCU内核和外部LIN总线之间具有一个 高压物理接口。该LIN接口只能用作从机接口,支持1 kB至 20 kB的工作速率并兼容LIN 2.1标准。低于1 kB的频率视为 1 kB。片内集成从节点所需的上拉电阻,从而省去了外部电 路。为获得最佳的EMC和故障保护性能,LIN引脚上建议 使用一些外部元件(见图33)。 LIN INTERRUPT LOGIC VDD MASTER ECU PROTECTION DIODE MASK LINBR CORE CLOCK LINDAT EXTERNAL LIN PIN LIN MODE HVCFG[0] LINBK LOW POWER OSCILLATOR INPUT VOLTAGE THRESHOLD REFERENCE RxD CLOAD TxD OUTPUT DISABLE OVER VOLTAGE PROTECTION BPF SCR INTERNAL SHORT-CIRCUIT SENSE RESISTOR INTERNAL SHORT-CIRCUIT TRIP REFERENCE HV IRQ IRQEN[10] SHORT-CIRCUIT CONTROL HVCFG[1] IO_VSS 图31. LIN物理接口 > = 14TBIT 13TBIT >1TBIT 2TBIT STA S0 BREAK MASTER ECU PULL-UP 08463-028 LINCS VDD 8TBIT 2TBIT S1 S2 2TBIT S3 S4 2TBIT S5 SYNC 图32. LIN帧 Rev. D | Page 83 of 92 S6 S7 STO PROTECTED ID 08463-029 LIN INTERRUPT IRQEN[5] LIN收发器通过2线式接口HVCFG[0]使能。LIN协议由LIN MMR部分所述的8个MMR控制。 ADuC7039 LIN诊断 ADuC7039的LIN引脚上具有短路保护功能。如果在LIN引 脚 上 检 测 到 短 路 状 况 , HVSTA[0]就 会 置 1。 如 果 通 过 IRQEN[10]使能了中断,上述状况将产生一个高压中断。 利用HVCFG1[2]重新使能LIN驱动器可将该位清0。可通过 HVCFG[1]来禁用此功能。 LIN通信 LIN使用帧进行数据通信。帧包括报头、断开码、同步码、 主机发送的PID、数据字节以及从机产生的校验和,如图32 所示。在LIN通信中,PID决定从机的行为:接收、发送或 忽略。 断开码 ADuC7039的LIN接口自动检测断开码,接收到有效的断开 码后,就会在LINSTA寄存器中设置一个标志。断开码的最 短长度为11个标称从机时钟周期(20 kB速率)。有效断开码 的最长长度是可编程的,可以在LINBK MMR中配置。LIN 接口在LIN通信期间的任何时候都能识别有效的断开码, 如果现有通信期间出现断开码,就会置位冲突标志位 (LINSTA的位4)。 同步码 LIN接口自动检测同步字节,并且为当前LIN帧的后续数据 设置波特率。该操作对用户是透明的。 PID LIN外设将PID视作一个数据字节。它在LINDAT MMR中提 供。软件必须解码PID。接收到PID停止位后,产生一个中 断以便读取LINDAT寄存器的内容,然后该内容将被下一 个数据字节覆盖。 数据字节 同样,后续数据字节也会设置中断位,指示已接收到数据 字节。 在发送模式下,一次最多可以发送8个数据字节,后跟一 个校验和。 校验和 若要在LIN 1.3模式下工作,用户代码LIN初始化例程必须将 LINCON[7]置1,迫使硬件采用传统校验和计算。在接收 模式下的LIN通信期间,不得更改此寄存器。 LIN MMR LIN模块接口包括8个MMR: • LINCON是一个16位控制寄存器。该寄存器如表61所 示。数据接收期间不应访问该寄存器。 • LINDAT是一个8位用户可访问数据寄存器。此MMR为 双缓冲型寄存器:一个阴影寄存器用于接收和发送数据, 用户代码则读写LINDAT。LINSTA MMR指示数据的状态。 • LINSTA是一个16位状态寄存器。该寄存器如表62所示。 • LINBR是一个19位波特率寄存器。波特率由LIN外设自 动设置,用户代码不应更改此寄存器。它表示8位传输 期间内核时钟的周期数。 • LINBK是一个19位断开码定时器寄存器,控制断开码被 LIN从机接口视为有效的最大长度。默认值为5500个内 核时钟周期,代表11位数据以20 kHz的速率发送所需的 时间。 • LINCS是一个8位校验和寄存器。它包含当前校验和计 算的倒数结果。校验和在接收或发送每个字节时计算, 具体取决于LINCON MMR的位4设置。发送模式下,最 后要发送的数据被写入外设后,用户将该位置1。校验 和自动发送。接收模式下,校验和在接收到每个字节时 计算,无论此字节是数据字节还是帧校验和。例如,接 收一个含4个数据字节的帧时,一旦接收到第四个数据 字节,LINCS MMR就会包含预期的帧校验和。接收到 正确的校验和之后,LINCS应包含0x00。 • LINLOW是一个19位计数器,以10 MHz的时钟速率工作, 用于唤醒总线上的LIN节点。只要LINLOW MMR大于0, 就会强制LIN总线变为低电平。例如,如果LINLOW = 0x234,则会以20 kB的速率产生一个11位断开码。 • LINWU是一个19位计数器,从低功耗振荡器获得时钟。 它用在休眠模式下,以指定通过LIN唤醒器件的低电平 信号的长度。例如,如果LINWU = 0x13,则会忽略任何 短于150 μs的断开码,ADuC7039保持休眠状态。 每接收或发送一个字节时都会自动计算校验和,结果的倒 数值存储在LINCS MMR中。默认情况下,校验和计算采用 LIN 2.1规范:诊断帧和保留帧使用传统校验和计算,其余 帧则使用增强校验和计算。硬件自动识别PID并相应地计 算校验和。用户代码无需写入LINCON寄存器以更改校验 和计算。 Rev. D | Page 84 of 92 ADuC7039 LINCON寄存器 LINDAT寄存器 名称: LINCON 名称: LINDAT 地址: 0xFFFF0700 地址: 0xFFFF0714 默认值: 0x0000 默认值: 0x00 访问类型: 读/写 访问类型: 读/写 功能: 该16位MMR控制LIN外设。 功能: 8位数据寄存器。 LINCS寄存器 名称: LINCS 地址: LINLOW寄存器 名称: LINLOW 0xFFFF0704 地址: 0xFFFF0718 默认值: 0xFF 默认值: 0x00000 访问类型: 读/写 访问类型: 读/写 功能: 8位校验和寄存器。 功能: 19位寄存器,产生一个LIN断开码 以唤醒总线上的其它LIN外设。 名称: LINBR LINWU寄存器 地址: 0xFFFF0708 名称: LINWU 默认值: 0x00FA0 地址: 0xFFFF071C 访问类型: 读/写 默认值: 0x00013 功能: 19位波特率寄存器。 访问类型: 读/写 功能: 19位寄存器,指定唤醒器件的断 开码长度。 LINBR寄存器 LINBK寄存器 名称: LINBK 地址: 0xFFFF070C 默认值: 0x0000157C 访问类型: 读/写 功能: 19位断开码定时器寄存器。 LINSTA寄存器 名称: LINSTA 地址: 0xFFFF0710 默认值: 0x0100 访问类型: 只读 功能: 16位状态寄存器。 共有7个中断源,其中5个可以在LINCON MMR中予以屏蔽: • • • • • • • LIN唤醒 接收到数据 发送就绪—可屏蔽 发送完成—可屏蔽 检测到冲突—可屏蔽 断开码—可屏蔽 帧错误范围内的最大负边沿数—可屏蔽 Rev. D | Page 85 of 92 ADuC7039 表61. LINCON MMR位分配 位 15至13 12 11 10 9 8 7 6 5 4 3 2 1 0 描述 保留。 LIN旁路位。 该位由用户代码置1时,仅控制LIN收发器,用于LIN一致性测试。 该位由用户代码清0时,在正常模式下工作。 LIN使能位。 该位由用户代码置1时,使能LIN接口。 该位由用户代码清0时,禁用LIN接口或复位接口。 UART使能位。 该位由用户代码置1时,允许不接收帧报头的传输,用于测试目的。 该位由用户代码清0时,在正常模式下工作。 同步码的定时,位0(单从机系统不需要)。 确保发送第二个断开码时,它能被识别为断开码,而不是作为同步码的一部分加以定时。如果起始码超过该位规 定的时钟周期数,器件将认为它现在接收的是断开码,并继续计数低周期,以确定该断开码是否满足LINBK MMR 中定义的最短时间要求。 由用户置1。同步码的第一位必须短于750个内核时钟周期(73 μs)。 通过将该位清0,用户可禁用此功能。 发送校验和。 该位由用户置1时,自动发送校验和。该位必须在发送完LINDAT中写入的最后一个数据字节以及设置好发送就绪 位之后设置。 当校验和发送完毕时,该位由硬件自动清0。 校验和计算。 该位由用户置1时,自动计算传统校验和(不包括PID)。 该位由用户清0时,计算增强校验和(包括PID)。 通信期间,如果收到PID后修改该位的值,则复位校验和。 冲突检测和发送完成中断屏蔽。 通过将该位置1,用户可禁用冲突检测和发送完成中断。 通过将该位清0时,用户可使能冲突检测和发送完成中断。 使能中断时,无论发送完成位是何状态,所有检测到的冲突事件都会引起中断,且冲突状态位置位。使能屏蔽时, 一旦发送完成,置位的冲突事件就会被屏蔽,不引起中断,且检测到冲突状态位也不会置1。即使用户已将该屏 蔽位置1,但如果器件尚未置位发送完成状态位,则冲突仍会引起中断,并且检测到冲突状态位置1。 负边沿最大误差中断屏蔽。 通过将该位置1,用户可禁用负边沿最大误差中断。 通过将该位清0,用户可使能负边沿最大误差中断。如果负边沿计数器计数到一个帧含57个以上的边沿,就会产 生中断。 冲突检测中断屏蔽。 通过将该位置1,用户可禁用冲突检测中断。 通过将该位清0,用户可使能冲突检测中断。 接收到断开码中断屏蔽。 通过将该位置1,用户可禁用断开码接收中断。 通过将该位清0,用户可使能断开码接收中断。 发送完成中断屏蔽。 通过将该位置1,用户可禁用发送完成中断。 通过将该位清0,用户可使能发送完成中断。 发送就绪中断屏蔽。 通过将该位置1,用户可禁用发送就绪中断。当LINCON[8]置1时,该位自动置1。 通过将该位清0,用户可使能发送就绪中断。 接收/发送模式。 该位由用户代码置1时,则在解码PID后发送数据字节。 接收到断开码时,该位自动清0。 Rev. D | Page 86 of 92 ADuC7039 表62. LINSTA MMR位分配 位 15至11 10 9 8 7 6 5 4 3 2 1 0 描述 保留。 LIN唤醒中断。 如果LIN唤醒ADuC7039,该位置1。唤醒功能(LINWU MMR)只能在POWCON[3] = 0时使用。 读取LINSTA MMR时,该位自动清0。 断开码时间最大值。 如果使能LIN接口后的第一个断开码在达到最大计数值之前结束,则该位为0。 如果使能LIN接口后的第一个断开码在达到最大计数值之后结束,则该位为1。 读取LINSTA MMR时,该位由硬件自动清0。 该位仅对通过LINCON[11]使能LIN外设后的第一个断开码有效。 PID奇偶校验错误。 如果LINDAT寄存器中的当前字节不能与LIN 2.1规范所述PID奇偶校验方案正确匹配,则该位由硬件自动置1。 如果LINDAT寄存器中的当前字节与PID奇偶校验方案正确匹配,则该位由硬件清0。 数据寄存器中何时真正有PID,须由用户判断。无论LINDAT MMR中是否有PID或数据字节,都会进行奇偶校验。 校验和匹配。 该位仅当LINSTA[0] = 1时有效。 如果LINCS中的值与LINDAT中的已接收数据不匹配,则该位自动置1。 读取LINSTA MMR时,或者LINDAT与LINCS匹配时(同时LINSTA[0] = 1),该位清0。 帧错误。 如果没有帧错误,该位为0。读取LINSTA时,该位自动清0。 如果在接收数据字节期间发生帧错误,即未检测到有效停止,则该位置1。 负边沿最大误差中断(可屏蔽)。 如果负边沿数没有超过帧允许的数量,则该位为0。 如果负边沿数为57或更大,则该位置1。 读取LINSTA MMR时,该位由硬件自动清0。 LIN冲突检测中断(可屏蔽)。 如果器件由于总线冲突而停止传输,该位将由硬件自动置1。如果冲突检测和发送完成中断使能(LINCON[6] = 0),并且 发送完成中断位置1 (LINSTA[2] = 1),则该位不会置1。 读取LINSTA MMR时,该位由硬件自动清0。 断开码接收中断(可屏蔽)。 如果未接收到有效断开码,该位为0。 如果在LIN总线上检测到11个标称位的低电平时间,则该位置1。读LINSTA MMR时,该位自动清0。 发送完成中断(可屏蔽)。 如果数据仍在LINDAT寄存器中,该位为0。 发送完所有数据后,该位置1。然后它将保持1值,直至LIN接收到一个断开码。接收模式下,它自动清0。 发送就绪中断(可屏蔽)。 如果先前写入LINDAT MMR中的数据仍然在LINDAT中,而尚未移送到发送寄存器,则该位为0。当发送就绪位为0时, 写入数据到LINDAT MMR会覆盖先前要发送的字节。 如果先前写入LINDAT MMR中的数据现已处于发送寄存器中,则该位为1。 接收就绪中断。 如果LINDAT MMR中没有要读取的新数据,该位为0。 如果LINDAT MMR中有要读取的新数据,该位为1。读取LINDAT MMR时,该位清0。 Rev. D | Page 87 of 92 ADuC7039 器件标识 为便于追溯,器件上电时提供标识信息。上电时,ARM内 部寄存器(R4至R6)提供制造批次ID、硅片掩模版本和内核 版本等信息,如表65和表66所示。 为获得全面的追溯信息,需要记录R4、R5、R6和产品型 号。R6中存储的组装批次ID是封装标识的一部分,如表63 所示。 例如,对于2528206.1的组装批次ID,R6包含0x002693CE。 上电时,产品型号包含在MMR FEEADR中。 表63. 标识实例 ADuC7039BCP6Z 行 行1 行2 行3 行4 LFCSP ADuC7039 BCP6Z B60 #日期代码 2528206.1 表64. 标识实例 ADuC7039WBCPZ 行 行1 行2 行3 行4 行5 LFCSP ADuC7039 WBCPZ B60 #日期代码 2528206.1 MALAYSIA 表65. 上电时的R4位分配 位 31至27 26至22 21至16 15至0 描述 晶圆号。从此位置读取的5位值提供晶圆制造批次ID(此器件出处)中的晶圆号(1至24)。配合R4[26:0]使用时,它 提供个别晶圆可追溯性。 晶圆批次制造厂。从此位置读取的5位值反映与此晶圆批次相关的制造厂。配合R4[21:0]使用时,它提供晶圆批 次可追溯性。 晶圆批次制造ID。从此位置读取的6位值是晶圆批次制造ID的一部分,配合R4[26:22]和R4[15:0]使用时,提供晶 圆批次可追溯性。 晶圆批次制造ID。这16位LSB被解读为晶圆制造批次ID号。配合R5值(即制造批次ID)使用时,此编号是器件的唯 一标识。 表66. 上电时的R5位分配 位 31至28 27至20 19至16 15至0 描述 硅片掩膜版本ID。此4位反映硅片掩膜ID号。具体来说,这半字节的16进制值应被解码成表示ASCII字符A至O的 16进制数的低位半字节。例如: 位[19:16] = 0001 = 0x1,因此该值应解释为41,对应ASCII字符A,表示硅片掩膜版本A。 位[19:16] = 1011 = 0xB,因此该值应解释为4B,对应ASCII字符K,表示硅片掩膜版本K。 这个值的范围为1至15,解释为41至4F或ASCII字符A至O。 内核版本ID。此字节的16进制数应解释为一个ASCII字符,表示片内Flash/EE存储器的嵌入内核固件版本。例 如,如果从此字节读取0x41,则解释为A,表示片上内核版本A。 保留。对于预发行样片,这些位表示器件内核的局部修订版本号。 器件ID。这16位LSB被解释为器件ID号。配合R4值(即制造批次ID)使用时,此编号是器件的唯一标识。 Rev. D | Page 88 of 92 ADuC7039 系统标识FEEADR 名称: FEEADR 地址: 0xFFFF0E10 默认值: 0xF009 访问类型: 读/写 功能: 该16位寄存器决定通过FEECON执行任何Flash/EE命令的操作地址。 注意: 该MMR还用以识别ADuC703x系列产品和预发布芯片版本。 表67. FEEADR系统标识MMR位分配 位 15至4 3至0 描述 保留 ADuC703x系列ID 0x0 = ADuC7030 0x2 = ADuC7032 0x3 = ADuC7033 0x4 = ADuC7034 0x6 = ADuC7036 0x9 = ADuC7039 其它 = 保留供将来使用 Rev. D | Page 89 of 92 ADuC7039 推荐原理图 本原理图包含为使ADuC7039正常工作而推荐使用的外部器件。 JTAG ADAPTOR 10Ω 10µF VBAT 27 VDD 3 4 5 6 7 TDO TCK TMS TDI NTRST RTCK RESET 0.1µF IIN+ 12 REG_DVDD 1 LIN 29 IIN+ 220pF ADuC7039 SHUNT 13 20Ω ECU MASTER 0.1µF 2 29 PESD1LIN VBAT IIN– REG_DVDD 19 REG_DVDD 18 REG_AVDD 0.1µF REG_AVDD 17 9 VTEMP REG_AVDD 16 0.47µF AGND AGND AGND DGND IO_VSS VSS 11 14 15 20 30 31 08463-030 10 GND_SW 2.2µF 图33. 推荐原理图 Rev. D | Page 90 of 92 ADuC7039 外形尺寸 0.30 0.25 0.18 32 25 1 24 0.50 BSC 3.90 3.80 SQ 3.70 EXPOSED PAD 17 TOP VIEW 1.00 0.95 0.85 0.70 0.60 0.50 8 16 9 BOTTOM VIEW 0.05 MAX 0.02 NOM COPLANARITY 0.08 0.15 REF SEATING PLANE PIN 1 INDICATOR 0.20 MIN FOR PROPER CONNECTION OF THE EXPOSED PAD, REFER TO THE PIN CONFIGURATION AND FUNCTION DESCRIPTIONS SECTION OF THIS DATA SHEET. COMPLIANT TO JEDEC STANDARDS MO-220-VJJD. 01-25-2013-C PIN 1 INDICATOR 6.10 6.00 SQ 5.90 图34. 32引脚引脚架构芯片级封装[LFCSP_VQ] 6 mm x 6 mm超薄四方体(CP-32-15) 图示尺寸单位:mm 订购指南 型号1,2 ADuC7039BCP6Z ADuC7039BCP6Z-RL ADuC7039WBCPZ ADuC7039WBCPZ-RL EVAL-ADUC7039QSPZ 1 2 3 NOTE 3 3 温度范围 −40°C至115°C −40°C至115°C −40°C至115°C −40°C至115°C Flash/Ram 64K/4K 64K/4K 64K/4K 64K/4K 封装描述 32引脚引脚架构芯片级封装[LFCSP_VQ] 32引脚引脚架构芯片级封装[LFCSP_VQ] 32引脚引脚架构芯片级封装[LFCSP_VQ] 32引脚引脚架构芯片级封装[LFCSP_VQ] 评估板 封装选项 CP-32-15 CP-32-15 CP-32-15 CP-32-15 Z = 符合RoHS标准的器件。 通过汽车应用认证。 推荐新设计使用。 汽车应用产品 ADuC7039W生产工艺受到严格控制,以满足汽车应用的质量和可靠性要求。请注意,车用型号的技术规格可能不同于商 用型号;因此,设计人员应仔细阅读本数据手册的技术规格部分。只有显示为汽车应用级的产品才能用于汽车应用。欲了 解特定产品的订购信息并获得这些型号的汽车可靠性报告,请联系当地ADI客户代表。 Rev. D | Page 91 of 92 ADuC7039 注释 ©2010–2013 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. D08463sc -0-3/13(D) Rev. D | Page 92 of 92
EVAL-ADUC7039QSPZ 价格&库存

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

免费人工找货