车用集成精密电池
传感器
ADuC7036
内存
96 kB Flash/EE存储器,6 kB SRAM
Flash/EE耐久性:10,000个周期,数据保持时间:20年
通过JTAG和LIN在线下载
片内外设
利用硬件同步通过UART兼容SAEJ2602/LIN 1.3/LIN 2.0
(从机)
灵活的唤醒I/O引脚,主/从SPI串行I/O
9引脚GPIO端口,3个通用定时器
唤醒和看门狗定时器
电源监控器和片内上电复位
电源
12V电池电源直接供电
功耗
正常模式:10mA(10MHz)
低功耗监控模式
封装和温度范围
7 mm × 7 mm、48引脚LFCSP
工作温度范围:−40°C至+115°C完全性能指标保证
特性
高精度ADC
双通道、同步采样、16位Σ-Δ ADC
可编程ADC吞吐量:1Hz至8kHz
片内±5 ppm/°C基准电压源
电流通道
全差分、缓冲输入
可编程增益:1至512
ADC输入范围:−200 mV至+300 mV
数字比较器,内置电流累加器功能
电压通道
缓冲、片内衰减器,适用于12V电池输入
温度通道
外部和片内温度传感器方案
微控制器
16位/32位RISC架构ARM7TDMI内核
20.48MHz PLL,内置可编程分频器
PLL输入源
片内精密振荡器
片内低功耗振荡器
外部(32.768 kHz)时钟晶体
JTAG端口支持代码下载和调试
应用
汽车系统电池检测/管理
TMS
NTRST
TDO
TDI
TCK
功能框图
ADuC7036
PRECISION ANALOG ACQUISITION
IIN+
PGA
BUF
IIN–
RESET
MEMORY
98kB FLASH
6kB RAM
2.6V LDO
PSM
POR
16-BIT
Σ-Δ ADC
VBAT
XTAL1
RESULT
ACCUMULATOR
MUX
VTEMP
DIGITAL
COMPARATOR
20MHz
16-BIT
Σ-Δ ADC
BUF
XTAL2
WU
GPIO PORT
UART PORT
SPI PORT
LIN
3× TIMERS
WDT
WU TIMER
PRECISION
REFERENCE
TEMPERATURE
SENSOR
PRECISION
OSC
LOW POWER
OSC
ON-CHIP PLL
ARM7TDMI
MCU
VREF
STI
LIN/BSD
07474-001
GPIO_8/IRQ5
GPIO_6/TxD
GPIO_7/IRQ4
GPIO_4/ECLK
GPIO_5/IRQ1/RxD
GPIO_3/MOSI
GPIO_2/MISO
GPIO_1/SCLK
GPIO_0/IRQ0/SS
VSS
IO_VSS
DGND
AGND
REG_DVDD
VDD
REG_AVDD
GND_SW
图1
Rev.
A 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
www.analog.com
Fax:781.461.3113 ©2008-2009 Analog Devices, Inc. All rights reserved.
ADI 中文版数据手册是英文版数据手册的译文,敬请谅解翻译中可能存在的语言组织或翻译错误,ADI 不对翻译中存在的差异或由此产生的错误负责。如需确认任何词语的准确性,请参考
ADI 提供的最新英文版数据手册。
ADuC7036
目录
特性 ........................................................................................ 1
中断系统 .........................................................................67
应用 ........................................................................................ 1
定时器...................................................................................70
功能框图 ................................................................................ 1
定时器 0—使用寿命定时器...........................................71
修订历史 ................................................................................ 3
定时器 1—通用定时器 ..................................................73
技术规格 ................................................................................ 4
定时器 2—唤醒定时器 ..................................................75
电气规格........................................................................... 4
定时器 3—看门狗定时器...............................................77
时序规格......................................................................... 10
定时器 4—STI定时器 ....................................................79
绝对最大额定值 .................................................................. 15
通用I/O .................................................................................81
ESD警告 ......................................................................... 15
高压外设控制接口 ...............................................................92
引脚配置和功能描述 .......................................................... 16
唤醒(WU)引脚...........................................................99
典型工作特性 ...................................................................... 18
高压外设控制接口中断处理........................................100
术语 ...................................................................................... 19
低压标志(LVF) ........................................................100
工作原理 .............................................................................. 20
高压诊断 .......................................................................100
ARM7TDMI内核概览 ................................................... 20
UART串行接口 ..................................................................101
存储器结构..................................................................... 22
波特率生成 ...................................................................101
复位 ................................................................................ 24
UART寄存器定义.........................................................102
FLASH/EE存储器................................................................ 25
串行外设接口.....................................................................107
Flash/EE存储器在线编程 .............................................. 25
MISO引脚 .....................................................................107
Flash/EE控制接口 .......................................................... 25
MOSI引脚 .....................................................................107
FLASH/EE存储器安全性 .............................................. 29
SCLK引脚 .....................................................................107
FLASH/EE存储器可靠性 .............................................. 31
SS 引脚 .........................................................................107
SRAM和Flash/EE代码执行时间 ................................... 31
SPI寄存器定义..............................................................107
片上内核......................................................................... 32
串行测试接口..................................................................... 110
存储器映射寄存器......................................................... 34
LIN(局域互连网络)接口 .............................................. 113
完整MMR列表............................................................... 35
LIN MMR描述 .............................................................. 113
16 位Σ-ΔADC ...................................................................... 41
LIN硬件接口................................................................. 117
电流通道ADC(I-ADC) ............................................. 41
位串行设备(BSD)接口 .................................................121
ADC接地开关 ................................................................ 44
BSD通信硬件接口........................................................121
ADC噪声性能表 ............................................................ 44
BSD相关MMR..............................................................122
ADC MMR接口 ............................................................. 45
BSD通信帧 ...................................................................123
ADC功耗模式 ................................................................ 54
BSD数据接收................................................................124
ADC比较器和累加器 .................................................... 55
BSD主机发送................................................................124
ADC SINC3 数字滤波器响应 ....................................... 55
BSD接口唤醒................................................................124
ADC校准 ........................................................................ 58
器件标识.............................................................................125
ADC诊断 ........................................................................ 59
原理图.................................................................................128
电源支持电路 ...................................................................... 60
外形尺寸.............................................................................129
系统时钟 .............................................................................. 61
订购指南 .......................................................................129
系统时钟寄存器............................................................. 62
低功耗时钟校准............................................................. 65
处理器相关外设 .................................................................. 67
Rev. A | Page 2 of 132
ADuC7036
修订历史
2009年8月—修订版0至修订版A
修改“特性”部分......................................................................1
修改图1 ...................................................................................1
修改表1 ...........................................................................4, 8, 9
修改表3 .................................................................................11
修改表4 .................................................................................12
修改表5 .................................................................................13
修改图8、图9和图10 ...........................................................18
修改“工作原理”部分............................................................20
修改“Flash/EE存储器可靠性”部分 .....................................31
修改表46 ...............................................................................64
修改“正常中断(IRQ)请求”部分 .....................................68
修改“定时器0—使用寿命定时器”部分 ..............................71
修改“定时器1”部分..............................................................73
修改“定时器2—唤醒定时器”部分 ......................................75
修改“定时器3接口”部分......................................................77
修改“定时器4—STI定时器”部分 ........................................79
修改“BSD通信帧”部分 ......................................................123
修改表97 .............................................................................125
修改图57 .............................................................................128
修改“订购指南”部分..........................................................129
2008年10月—版本0:初始版
Rev. A | Page 3 of 132
ADuC7036
技术规格
电气规格
VDD = 3.5 V至18 V,VREF = 1.2 V内部基准电压,fCORE = 20.48 MHz(除非另有说明),采用外部32.768 kHz时钟晶体或
片内精密振荡器驱动。除非另有说明,所有规格TA = −40°C至+115°C。
表1
参数
测试条件/注释
最小值
典型值
最大值
单位
ADC技术规格
转换速率1
斩波关闭,ADC正常工作模式
4
8000
Hz
斩波开启,ADC正常工作模式
4
2600
Hz
斩波开启,ADC低功耗模式
1
650
Hz
对所有ADC更新速率和ADC模式有效
16
±60
FSR的ppm
电流通道
无失码1
积分非线性(INL)1, 2
位
±10
失调误差2, 3, 4, 5
斩波关闭,1 LSB = (36.6/增益)μV
−10
±3
+10
LSB
失调误差1, 3, 6
斩波开启
−2
±0.5
+2
μV
失调误差1, 3
斩波开启,低功耗或超低功耗模式,MCU关断
100
−50
−300
nV
失调误差1, 3
斩波开启,正常模式
+0.5
−1.25
−3
μV
失调误差漂移6
6
0.03
斩波关闭,对于ADC增益4至64有效,正常模式
LSB/°C
失调误差漂移
斩波关闭,对于ADC增益128至512有效,正常模式
30
nV/°C
失调误差漂移6
斩波开启
10
nV/°C
总增益误差1, 3, 7, 8, 9, 10
正常模式
1, 3, 7, 9
−0.5
±0.1
+0.5
%
总增益误差
低功耗模式,使用ADCREF MMR
−4
±0.2
+4
%
总增益误差1, 3, 7, 9, 11
超低功耗模式,使用精密VREF
−1
±0.2
+1
%
3
增益漂移
PGA增益不匹配误差
输出噪声1, 12
ppm/°C
±0.1
%
4 Hz更新速率,增益 = 512,ADCFLT = 0xBF1D
60
90
nV均方根值
4 Hz更新速率,增益 = 512,ADCFLT = 0x3F1D
75
115
nV均方根值
10 Hz更新速率,增益 = 512,ADCFLT = 0x961F
100
150
nV均方根值
10 Hz更新速率,增益 = 512,ADCFLT = 0x161F
120
180
nV均方根值
1 kHz更新速率,增益 ≥ 64,ADCFLT = 0x8101
0.8
1.2
μV均方根值
1 kHz更新速率,增益 ≥ 64,ADCFLT = 0x0101
1
1.5
μV均方根值
1 kHz更新速率,增益 = 512,ADCFLT = 0x0007
0.6
0.9
μV均方根值
1 kHz更新速率,增益 = 32,ADCFLT = 0x0007
0.8
1.2
μV均方根值
1 kHz更新速率,增益 = 8,ADCFLT = 0x8101
2.1
4.1
μV均方根值
1 kHz更新速率,增益 = 8,ADCFLT = 0x0007
1.6
2.4
μV均方根值
1 kHz更新速率,增益 = 8,ADCFLT = 0x0101
2.6
3.9
μV均方根值
1 kHz更新速率,增益 = 4,ADCFLT = 0x0007
2.0
2.8
μV均方根值
8 kHz更新速率,增益 = 32,ADCFLT = 0x0000
2.5
3.5
μV均方根值
8 kHz更新速率,增益 = 4,ADCFLT = 0x0000
14
21
μV均方根值
ADC低功耗模式,fADC = 10 Hz,增益 = 128
1.25
1.9
μV均方根值
ADC低功耗模式,fADC = 1 Hz,增益 = 128
0.35
0.5
μV均方根值
ADC超低功耗模式,fADC = 1 Hz,增益 = 512
0.1
0.15
μV均方根值
ADC超低功耗模式,fADC = 250 Hz,增益 = 512
0.6
0.9
μV均方根值
Rev. A | Page 4 of 132
ADuC7036
参数
测试条件/注释
最小值
在所有ADC更新速率下有效
16
典型值
最大值
单位
±10
±60
FSR的ppm
13
电压通道
无失码1
积分非线性(INL)1
失调误差3, 5
斩波关闭,1 LSB = 439.5 μV
失调误差1, 3
斩波开启
1
−10
位
±1
+10
LSB
0.3
1
LSB
0.03
LSB/°C
失调误差漂移
斩波关闭
总增益误差1, 3, 7, 10, 14
包括电阻不匹配
−0.25
±0.06
+0.25
%
总增益误差1, 3, 7, 10, 14
温度范围 = −25°C至+65°C
−0.15
±0.03
+0.15
%
增益漂移
包括电阻不匹配漂移
3
输出噪声1, 12, 15
4 Hz更新速率,ADCFLT = 0xBF1D
60
90
ppm/°C
μV均方根值
10 Hz更新速率,ADCFLT = 0x961F
60
90
μV均方根值
1 kHz更新速率,ADCFLT = 0x0007
180
270
μV均方根值
1 kHz更新速率,ADCFLT = 0x8101
240
307
μV均方根值
1 kHz更新速率,ADCFLT = 0x0101
270
405
μV均方根值
8 kHz更新速率,ADCFLT = 0x0000
1600
2400
μV均方根值
±10
±60
FSR的ppm
LSB
温度通道
无失码1
在所有ADC更新速率下有效
16
积分非线性(INL)1
失调误差3, 4, 5, 16
位
斩波关闭,在单极性模式下1 LSB = 19.84 μV
−10
±3
+10
失调误差
斩波开启
−5
+1
+5
失调误差漂移
斩波关闭
总增益误差1, 3, 14
使用REG_AVDD作为基准电压
1, 3
0.03
−0.2
±0.06
+0.2
3
增益漂移
输出噪声1
1 kHz更新速率
ADC模拟输入规格
7.5
LSB
LSB/°C
%
ppm/°C
11.25
μV均方根值
+300
mV
内部VREF = 1.2 V
电流通道
绝对输入电压范围
同时适用于IIN+和IIN−
输入电压范围17, 18
增益 = 119
−200
增益 = 219
±1.2
±600
V
mV
增益 = 419
±300
mV
增益 = 8
±150
mV
增益 = 16
±75
mV
增益 = 32
±37.5
mV
增益 = 64
±18.75
mV
增益 = 128
±9.375
mV
增益 = 256
±4.68
mV
增益 = 512
±2.3
mV
1
−3
输入漏电流
输入失调电流1, 20
0.5
+3
nA
1.5
nA
电压通道
4
绝对输入电压范围
VBAT输入电流
温度通道
18
0至28.8
输入电压范围
VBAT = 18 V
3
5.5
V
V
8
μA
1300
mV
100
nA
VREF = (REG_AVDD及GND_SW)/2
100
绝对输入电压范围
输入电压范围
0至VREF
VTEMP输入电流1
2.5
Rev. A | Page 5 of 132
V
ADuC7036
测试条件/注释
参数
最小值
典型值
最大值
单位
基准电压源
ADC精密基准电压
内部VREF
1.2
V
上电时间1
0.5
ms
初始精度1
在TA = 25°C时测定
−0.15
1, 21
−20
温度系数
基准电压长期稳定性22
±5
+0.15
%
+20
ppm/°C
100
外部基准电压输入范围23
0.1
VREF二分频初始误差1
0.1
ppm/1000小时
1.3
V
0.3
%
+5
%
ADC低功耗基准电压
1.2
内部VREF
初始精度
在TA = 25°C时测定
−5
初始精度1
使用ADCREF,在TA = 25°C时测定
1, 21
0.1
−300
温度系数
V
±150
%
+300
ppm/°C
ADC诊断
VREF/1361
在任何增益设置时
8.5
9.4
mV
电压衰减器电流源1
当电流源开启时差分电压在衰减器上递增,
温度范围 = −40°C至+85°C
3.1
3.8
V
电阻衰减器
分频比
24
电阻不匹配漂移
3
ppm/°C
ADC接地开关
电阻
直接接地路径
电阻1
选择20 kΩ电阻
输入电流
24
温度传感器
精度
10
10
20
允许持续电流通过具有直接接地路径的开关
Ω
30
kΩ
6
mA
用户校准后
MCU处于省电或待机模式
±3
°C
MCU处于省电或待机模式,
温度范围= −25°C至+65°C
±2
°C
上电复位(POR)
POR触发电平
2.85
参见VDD引脚的电压
POR迟滞
POR复位超时
3
3.15
V
300
mV
20
ms
低压标志(LVF)
LVF电平
1.9
参见VDD引脚的电压
2.1
2.3
V
电源监控器(PSM)
PSM触发电平
6
参见VDD引脚的电压
V
看门狗定时器(WDT)
超时周期1
32.768 kHz时钟,256预分频
0.008
512
7.8
超时步幅
s
ms
FLASH/EE存储器1
耐久性25
10,000
周期
数据保持26
20
年
数字输入
除NTRST外的所有数字输入
输入漏电流
输入高电平 = REG_DVDD
输入上拉电流
输入低电平 = 0 V
−80
±1
±10
μA
−20
−10
μA
10
输入电容
输入漏电流
仅限NTRST:输入低电平 = 0 V
输入下拉电流
仅限NTRST:输入高电平= REG_DVDD
Rev. A | Page 6 of 132
30
pF
±1
±10
μA
55
100
μA
ADuC7036
参数
逻辑输入1
VINL,输入低电平
VINH,输入高电平
晶体振荡器1
逻辑输入,仅限XTAL1
VINL,输入低电平
VINH,输入高电平
XTAL1电容
XTAL2电容
片内振荡器
低功耗振荡器
精度27
精密振荡器
精度
MCU时钟速率
MCU启动时间
上电时
复位事件后
从MCU关断起
振荡器运行
中断唤醒
LIN唤醒
晶体关断
中断唤醒
内部PLL锁定时间
LIN通用输入/输出
波特率
VDD
输入电容
输入漏电流
LIN比较器响应时间1
ILIN_DOM_MAX
ILIN_PAS_REC
ILIN1
ILIN_PAS_DOM1
ILIN_NO_GND28
VLIN_DOM1
VLIN_REC1
VLIN_CNT1
VHYS1
VLIN_DOM_DRV_LOSUP1
RLOAD = 500 Ω
RLOAD = 1000 Ω
VLIN_DOM_DRV_HISUP1
RLOAD = 500 Ω
RLOAD = 1000 Ω
VLIN_RECESSIVE
VBAT偏移28
GND偏移28
测试条件/注释
所有逻辑输入
最小值
典型值
最大值
单位
0.4
V
V
0.8
V
V
pF
pF
2
1.7
12
12
131.072
包括1000小时使用寿命测试的漂移数据
−3
包括1000小时使用寿命测试的漂移数据
在此范围内有八种可编程内核时钟可选
(二进制除法1, 2, 4, 8,…64, 128)
−1
0.16
+3
131.072
包括内核上电执行时间
包括内核上电执行时间
10.24
25
5
ms
ms
2
2
ms
ms
500
1
ms
ms
1000
7
LIN接口工作电压范围
+1
20.48
20,000
18
5.5
输入(低电平) = IO_VSS
使用22 Ω电阻
LIN总线处于主动状态时驱动器电流限值,VBAT =
VBAT(最大值)
驱动器关闭,7 V < VLIN < 18 V, VDD = VLIN − 0.7 V
VBAT断开,VDD = 0 V,0 < VLIN < 18 V
输入泄漏VLIN = 0 V
控制单元接地断开,GND = VDD,0 V < VLIN < 18 V,
VBAT = 12 V
LIN接收器主动状态,VDD > 7 V
LIN接收器被动状态,VDD > 7 V
LIN接收器中心电压,VDD > 7 V
LIN接收器迟滞电压
LIN主动输出电压,VDD = 7 V
−800
38
40
−20
−400
90
200
+20
10
−1
−1
+1
0.4 VDD
0.6 VDD
0.475 VDD
kHz
%
kHz
%
MHz
0.5 VDD
0.525 VDD
0.175 VDD
位/秒
V
pF
μA
μs
mA
μA
μA
mA
mA
V
V
V
V
1.2
V
V
2
V
V
V
V
V
0.6
LIN主动输出电压,VDD = 18 V
0.8
0.8 VDD
0
0
LIN被动输出电压
Rev. A | Page 7 of 132
0.1 VDD
0.1 VDD
ADuC7036
参数
测试条件/注释
最小值
典型值
最大值
单位
RSLAVE
VSERIAL DIODE28
发送传播延迟对称性1
接收传播延迟1
接收传播延迟对称性1
从机端接电阻
串行二极管处的压降,DSER_INT
VDD(最小值)= 7 V
VDD(最小值)= 7 V
VDD(最小值)= 7 V
20
0.4
−2
30
0.7
47
1
+2
6
+2
kΩ
V
μs
μs
μs
2
3
V/μs
0.5
3
V/μs
−5
−4
+5
+4
μs
μs
LIN 1.3版规格
dV
dt
dV
dt
1
1
tSYM1
LIN 2.0版规格
D1
D2
BSD输入/输出29
波特率
输入漏电流
VOL,输出低电压
VOH,输出高电压
IO(SC) 短路输出电流
VINL,输入低电平
VINH, 输入高电平
唤醒
VDD1
输入漏电流
VOH30
VOL30
VIH
VIL
单稳态触发器超时
IO(SC) 短路输出电流
串行测试接口
波特率
输入漏电流
VDD
VOH
VOL
VIH
VIL
总线负载条件 (CBUS||RBUS):1 nF||1 kΩ;
6.8 nF||660 Ω; 10 nF||500 Ω
压摆率
主动和被动沿,VBAT = 18 V
压摆率
主动和被动沿,VBAT = 7 V
上升和下降沿对称性,VBAT = 18 V
上升和下降沿对称性,VBAT = 7 V
总线负载条件 (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 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 V…18 V;tBIT = 50 μs,
D2 = tBUS_REC (MAX)/(2 × tBIT)
−2
1
0.396
0.581
输入高电平 = VDD,或输入低电平 = IO_VSS
1164
−50
VBSD = VDD = 12 V
0.8 VDD
50
1200
1236
+50
1.2
80
120
1.8
0.7 VDD
RLOAD = 300 Ω,CBUS = 91 nF,RLIMIT = 39 Ω
WU引脚工作电压范围
输入高电平 = VDD
输入低电平 = IO_VSS
输出高电平
输出低电平
输入高电平
输入低电平
超时周期
7
0.4
−50
5
18
2.1
+50
2
4.6
0.6
100
1.3
140
1.2
2
位/秒
μA
V
V
mA
V
V
V
mA
μA
V
V
V
V
s
mA
RLOAD = 500 Ω,CBUS = 2.4 nF,RLIMIT = 39 Ω
输入高电平 = VDD,或输入低电平 = IO_VSS
STI工作电压范围
输出高电平
输出低电平
输入高电平
输入低电平
Rev. A | Page 8 of 132
−50
7
0.6 VDD
40
+70
18
0.4 VDD
0.6 VDD
0.4 VDD
kbps
μA
V
V
V
V
V
ADuC7036
参数
测试条件/注释
封装热规格
热关断1, 31
热阻(θJA)32
48引脚LFCSP,堆叠式芯片
电源要求
电源电压
VDD(电池电源)
REG_DVDD,REG_AVDD33
功耗
IDD(MCU正常模式)34
IDD(MCU关断)1
IDD(MCU关断)
最小值
典型值
最大值
单位
140
150
45
160
°C
°C/W
2.6
18
2.7
V
V
10
20
20
30
mA
mA
300
400
μA
300
500
μA
520
700
μA
120
300
μA
120
175
μA
3.5
2.5
MCU时钟速率 = 10.24 MHz,ADC关闭
MCU时钟速率 = 20.48 MHz,ADC关闭(仅对
ADuC7036CCPZ有效)
ADC低功耗模式,在TA = −10°C至+40°C时测定,
连续ADC转换
ADC低功耗模式,在TA = -40°C至+85°C时测定,
连续ADC转换
ADC超低功耗模式,在TA = −10°C至+40°C时测
定,连续ADC转换
平均电流,在唤醒和看门狗定时器从低功耗振荡
器获取时钟信号时测定,TA = −40°C至+85°C
平均电流,在TA = -10°C至+40°C,唤醒和看门狗
定时器从低功耗振荡器获取时钟信号时测定
IDD(电流ADC)
IDD(电压/温度ADC)
IDD(精密振荡器)
1.7
0.5
400
1
mA
mA
μA
这些参数未经过产品测试,但在产品发布时由设计和/或特性数据保证。
对于电流ADC增益设置PGA = 4至64有效。
3
这些参数包括温度漂移。
4
在增益范围= 4时测试;自失调校准可以消除此误差。
5
初始失调校准后利用内部短路测定。
6
利用内部短路测定
7
这些参数包括内部基准电压温度漂移。
8
增益 = 1时工厂校准。
9
在具体增益范围(及温度)内的系统校准可以消除在此范围内的误差。
10
包括初始系统校准。
11
采用ADC正常模式基准电压源。
12
在低功耗模式下的典型噪声在斩波启用时测定。
13
电压通道规格包括电阻衰减器输入级。
14
系统校准可以在指定温度下消除此误差。
15
均方根噪声折合到电压衰减器输入(例如在fADC = 1 kHz时,ADC输入端处的典型均方根噪声为7.5 μV)并由衰减器比例调整(除以24)以产生这些输入
折合噪声规格/值。
16
初始自校准后有效。
17
在ADC低功耗模式下,输入范围固定在±9.375 mV处。在ADC超低功耗模式下,输入范围固定在±2.34375 mV处。
18
通过修改增益校准寄存器的工厂设定值或利用系统校准,可将ADC输入范围扩展10%,也可缩小ADC输入范围(LSB大小)。
19
受最小/最大绝对输入电压范围限制。
20
对于低于10mV的差分输入有效。
21
利用盒子方法测定。
22
长期稳定性规格为非累积性。在后续1000小时周期内的漂移大幅低于第一个1000小时周期。
23
通过内部二分频,可使用高达REG_AVDD的基准电压。
24
芯片温度。
25
耐久性是分别在−40°C、+25°C及+125°C时依据JEDEC 22标准方法A117认定为10,000个周期。在25°C时的典型耐久性为170,000个周期。
26
根据JEDEC 22标准方法A117,保持期限相当于85°C结温时的寿命。保持期限会随着结温递减。
27
可针对精密振荡器或用户代码中的外部32.768 kHz晶体校准低功耗振荡器。
28
这些参数未经产品测试,但得到LIN兼容性测试支持。
29
除高低电平外,BSD电气规格均依照LIN 2.0,禁用上拉电阻且CL = 10 nF最大值。
30
在39 Ω RLIMIT后指定。
31
MCU内核不关断但被中断,并响应热关断事件而禁用高压I/O引脚。
32
热阻可用来计算环境到芯片温度的热梯度。
33
内部调节电源在REG_DVDD(ISOURCE = 5 mA)和REG_AVDD(ISOURCE = 1 mA)处提供。
34
所列指标均为典型值;在Flash/EE存储器编程和擦除周期期间的额外电源电流消耗分别为7mA和5mA。
2
Rev. A | Page 9 of 132
ADuC7036
时序规格
SPI时序规格
表2. SPI主机定时—相位模式 = 1
参数
tSL
描述
最小值
典型值
(SPIDIV + 1) × tHCLK
(SPIDIV + 1) × tHCLK
tSH
SCLK高脉冲宽度1
tDAV
SCLK沿之后数据输出有效2
tDSU
SCLK沿之前数据输入建立时间
tDHD
SCLK沿之后数据输入保持时间2
tDF
数据输出下降时间
3.5
ns
tDR
数据输出上升时间
3.5
ns
tSR
SCLK上升时间
3.5
ns
tSF
SCLK下降时间
3.5
ns
SCLK低脉冲宽度1
最大值
单位
ns
ns
(2 × tUCLK) + (2 × tHCLK)
ns
0
3 × tUCLK
ns
ns
1
tHCLK取决于POWCON MMR的时钟分频器(CD)位。tHCLK = tUCLK/2CD。
2
tUCLK = 48.8 ns。与时钟分频器之前从锁相环输出的20.48 MHz内部时钟相对应。
SCLK
(POLARITY = 0)
tSH
tSL
tSR
tSF
SCLK
(POLARITY = 1)
tDF
MSB
MOSI
MISO
tDR
MSB IN
tDSU
BITS[6:1]
BITS[6:1]
tDHD
图 2. SPI 主机定时—相位模式 = 1
Rev. A | Page 10 of 132
LSB
LSB IN
07474-002
tDAV
ADuC7036
表3. SPI主机模式—相位模式 = 0
参数
tSL
描述
tSH
SCLK高脉冲宽度1
tDAV
SCLK沿之后数据输出有效2
tDOSU
SCLK沿之前数据输出建立
tDSU
SCLK沿之前数据输入建立时间
tDHD
最小值
典型值
(SPIDIV + 1) × tHCLK
(SPIDIV + 1) × tHCLK
SCLK低脉冲宽度1
最大值
单位
ns
ns
(2 × tUCLK) + (2 × tHCLK)
ns
0.5 tSL
ns
0
3 × tUCLK
2
SCLK沿之后数据输入保持时间
ns
ns
tDF
数据输出下降时间
3.5
ns
tDR
数据输出上升时间
3.5
ns
tSR
SCLK上升时间
3.5
ns
tSF
SCLK下降时间
3.5
ns
1
tHCLK取决于POWCON MMR的时钟分频器(CD)位。tHCLK = tUCLK/2CD。
2
tUCLK = 48.8 ns。与时钟分频器之前从锁相环输出的20.48 MHz内部时钟相对应。
SCLK
(POLARITY = 0)
tSH
tSL
tSR
tSF
SCLK
(POLARITY = 1)
tDAV
MSB
MOSI
MISO
MSB IN
tDSU
tDR
BITS[6:1]
BITS[6:1]
LSB
LSB IN
07474-003
tDF
tDOSU
tDHD
图 3. SPI 主机定时—相位模式 = 0
Rev. A | Page 11 of 132
ADuC7036
表4. SPI从机定时—相位模式 = 1
参数
描述
最小值
t SS
SS 至SCLK沿
tSL
SCLK低脉冲宽度1
tSH
SCLK高脉冲宽度1
tDAV
SCLK沿之后数据输出有效2
典型值
0.5 tSL
最大值
单位
ns
Ns
ns
(SPIDIV + 1) × tHCLK
(SPIDIV + 1) × tHCLK
(3 × tUCLK) + (2 × tHCLK)
tDSU
SCLK沿之前数据输入建立时间
tDHD
SCLK沿之后数据输入保持时间2
ns
0
4 × tUCLK
ns
ns
tDF
数据输出下降时间
3.5
ns
tDR
数据输出上升时间
3.5
ns
tSR
SCLK上升时间
3.5
ns
tSF
SCLK下降时间
tSFS
SS 在SCLK沿后变高
3.5
0.5 tSL
ns
ns
1
tHCLK取决于POWCON MMR的时钟分频器(CD)位。tHCLK = tUCLK/2CD。
2
tUCLK = 48.8 ns。与时钟分频器之前从锁相环输出的20.48 MHz内部时钟相对应。
SS
tSFS
tSS
SCLK
(POLARITY = 0)
tSH
tSL
tSR
tSF
SCLK
(POLARITY = 1)
tDF
MISO
MOSI
tDR
MSB
MSB IN
tDSU
BITS[6:1]
BITS[6:1]
tDHD
图 4. SPI 从机定时—相位模式 = 1
Rev. A | Page 12 of 132
LSB
LSB IN
07474-004
tDAV
ADuC7036
表5. SPI从机定时(相位模式= 0)
参数
描述
最小值
t SS
SS 至SCLK沿
tSL
SCLK低脉冲宽度1
tSH
1
tDAV
tDSU
tDHD
tDF
tDR
典型值
0.5 tSL
最大值
单位
ns
ns
ns
(SPIDIV + 1) × tHCLK
(SPIDIV + 1) × tHCLK
SCLK高脉冲宽度
SCLK沿之后数据输出有效1, 2
(3 × tUCLK) + (2 × tHCLK)
ns
ns
0
SCLK沿之前数据输入建立时间
SCLK沿之后数据输入保持时间1, 2
4 × tUCLK
数据输出下降时间
3.5
ns
ns
数据输出上升时间
3.5
ns
tSR
SCLK上升时间
3.5
ns
tSF
SCLK下降时间
2
SS 沿之后数据输出有效
SS 在SCLK沿后变高
3.5
ns
ns
ns
tDOCS
tSFS
(3 × tUCLK) + (2 × tHCLK)
0.5 tSL
1
tHCLK取决于POWCON MMR的时钟分频器(CD)位。tHCLK = tUCLK/2CD。
2
tUCLK = 48.8 ns。与时钟分频器之前从锁相环输出的20.48 MHz内部时钟相对应。
SS
tSFS
SCLK
(POLARITY = 0)
tSS
tSH
tSL
tSR
tSF
SCLK
(POLARITY = 1)
tDAV
tDF
MSB
MISO
MOSI
MSB IN
tDSU
tDR
BITS[6:1]
BITS[6:1]
LSB
LSB IN
07474-005
tDOCS
tDHD
图 5. SPI 从机定时—相位模式 = 0
Rev. A | Page 13 of 132
ADuC7036
LIN定时规格
图 6. LIN 2.0 时序规格
Rev. A | Page 14 of 132
ADuC7036
绝对最大额定值
除非另有说明,TA = −40°C至+115°C。
表6
注意,超出上述绝对最大额定值可能会导致器件永久性损
参数
额定值
坏。这只是强调的额定值,不涉及器件在这些或任何其它
AGND 至 DGND 至 VSS 至
IO_VSS
-0.3 V至+0.3 V
条件下超出本技术规格指标的功能性操作。长期在绝对最
VBAT至AGND
-22 V至+40 V
VDD至VSS
-0.3 V至+33 V
大额定值条件下工作会影响器件的可靠性。
ESD警告
VDD至VSS达1秒
-0.3 V至+40 V
ESD(静电放电)敏感器件。
LIN至IO_VSS
-16 V至+40 V
STI和WU至IO_VSS
-3 V至+33 V
唤醒连续电流
50 mA
高压I/O引脚短路电流
100 mA
数字I/O电压至DGND
−0.3 V至REG_DVDD + 0.3 V
带电器件和电路板可能会在没有察觉的情况
下放电。尽管本产品具有专利或专用保护电
路,但在遇到高能量 ESD 时,器件可能会损
坏。因此,应当采取适当的 ESD 防范措施,
以避免器件性能下降或功能丧失。
VREF至AGND
−0.3 V至REG_AVDD + 0.3 V
ADC输入至AGND
−0.3 V至REG_AVDD + 0.3 V
ESD额定值
IEC 1000-4-2适用于所有
引脚
1 kV
IEC 61000-4-2适用于LIN
和VBAT引脚
±5 kV
存储温度
125°C
结温
瞬变
150°C
连续
130°C
引脚温度
回流焊(15秒)
260°C
Rev. A | Page 15 of 132
ADuC7036
48
47
46
45
44
43
42
41
40
39
38
37
LIN/BSD
IO_VSS
STI
NC
VSS
NC
VDD
WU
NC
NC
NC
XTAL2
引脚配置和功能描述
RESET
GPIO_5/IRQ1/RxD
1
2
PIN 1
INDICATOR
GPIO_6/TxD 3
GPIO_7/IRQ4 4
GPIO_8/IRQ5 5
TCK 6
TDI 7
DGND 8
NC 9
TDO 10
NTRST 11
TMS 12
ADuC7036
XTAL1
DGND
DGND
REG_DVDD
NC
GPIO_4/ECLK
GPIO_3/MOSI
GPIO_2/MISO
GPIO_1/SCLK
GPIO_0/IRQ0/SS
NC
NC
NOTES
1. NC = NO CONNECT.
2. THE EXPOSED PAD SHOULD BE CONNECTED TO DGND.
07474-007
VBAT
VREF
GND_SW
NC
NC
VTEMP
IIN+
IIN–
AGND
AGND
NC
REG_AVDD
13
14
15
16
17
18
19
20
21
22
23
24
TOP VIEW
(Not to Scale)
36
35
34
33
32
31
30
29
28
27
26
25
图 7. 引脚配置
表7. 引脚功能描述
引脚编号
引脚名称
类型1
描述
1
RESET
I
复位输入引脚。低电平有效。有连接至REG_DVDD的内部弱上拉电阻,不用时须断
开。如需更高安全性和鲁棒性,建议通过电阻将此引脚绑定至REG_DVDD。
2
GPIO_5/IRQ1/RxD
I/O
通用数字I/O 5/外部中断请求 1/接收UART串行端口数据。默认情况下以及在上电复
位后,配置为输入端。有内置弱上拉电阻,不用时断开。
3
GPIO_6/TxD
I/O
通用数字I/O 6/发送UART串行端口数据。默认情况下以及在上电复位后,配置为输
入端。有内置弱上拉电阻,不用时断开。
4
GPIO_7/IRQ4
I/O
通用数字I/O 7/外部中断请求 4。默认情况下以及在上电复位后,配置为输入端。有
内置弱上拉电阻,不用时断开。
5
GPIO_8/IRQ5
I/O
通用数字I/O 8/外部中断请求5。默认情况下以及在上电复位后,配置为输入端。有
内置弱上拉电阻,不用时断开。
6
TCK
I
JTAG测试时钟。时钟输入引脚,是器件标准5针JTAG调试端口之一。只能用作输
入引脚,有内置弱上拉电阻。不用时断开。
7
TDI
I
JTAG测试数据输入。数据输入引脚,是器件标准5针JTAG调试端口之一。只能用
作输入引脚,有内置弱上拉电阻。不用时断开。
8, 34, 35
DGND
S
片内数字电路接地基准。
9、16、17、23、 NC
25、26、32、38
至40、43、45
10
TDO
不连接。不内接并保留待用。因此不外接。必要时接地。
O
JTAG测试数据输出。数据输出引脚,是器件标准5针JTAG调试端口之一。只能用
作输出引脚。上电时禁用并通过内部弱上拉电阻拉高。不用时断开。
Rev. A | Page 16 of 132
ADuC7036
引脚编号
引脚名称
类型1
描述
11
NTRST
I
JTAG测试复位。复位输入引脚,是器件标准5针JTAG调试端口之一。只能用作输入
引脚,有内置弱下拉电阻。不用时断开。同时受到片上内核监控以使能LIN引导加载
模式。
12
TMS
I
JTAG测试模式选择。模式选择引脚,是器件标准5针JTAG调试端口之一。只能用作
输入引脚,有内置弱上拉电阻。不用时断开。
13
VBAT
I
电阻分压器的电池电压输入。
14
VREF
I
外部基准电压输入端子。不用时,直接接到AGND系统地,也可断开。
15
GND_SW
I
切换到内部模拟地基准。外部温度通道和外部基准电压的负输入端。不用时,直接接
到AGND系统地。
18
VTEMP
I
NTC/PTC温度测量的外部引脚。
19
IIN+
I
电流通道的正差分输入
20
IIN−
I
电流通道的负差分输入。
21, 22
AGND
S
片内精密模拟电路的接地基准。
24
REG_AVDD
S
片内稳压器的额定2.6 V输出。
27
GPIO_0/IRQ0/ SS
I/O
通用数字I/O 0/外部中断请求 0/SPI接口的从机选择输入。默认情况下以及在上电复位
后,配置为输入端。有内置弱上拉电阻,不用时断开。
28
GPIO_1/SCLK
I/O
通用I/O 1/SPI接口的串行时钟输入。默认情况下以及在上电复位后,配置为输入端。
有内置弱上拉电阻,不用时断开。
29
GPIO_2/MISO
I/O
通用数字I/O 2/SPI接口的主机输入、从机输出。默认情况下以及在上电复位后,配置
为输入端。有内置弱上拉电阻,不用时断开。
30
GPIO_3/MOSI
I/O
通用数字I/O 3/SPI接口的主机输出、从机输入。默认情况下以及在上电复位后,配置
为输入端。有内置弱上拉电阻,不用时断开。
31
GPIO_4/ECLK
I/O
通用数字I/O 4/2.56 MHz时钟输出。默认情况下以及在上电复位后,配置为输入端。
有内置弱上拉电阻,不用时断开。
33
REG_DVDD
S
片内稳压器的额定2.6 V输出
36
XTAL1
O
晶体振荡器输出。如果不使用外部晶体,此引脚断开。
37
XTAL2
I
晶体振荡器输入。如果不使用外部晶体,将此引脚接到DGND系统地。
41
WU
I/O
高压唤醒引脚。高压I/O引脚,有内置10kΩ下拉电阻和高端驱动器至VDD。不用时不
必外接。
42
VDD
S
片内稳压器的电池电源。
44
VSS
S
接地基准。内部稳压器的接地基准。
46
STI
I/O
高压串行测试接口输出引脚。不用时将其外接到IO_VSS接地基准。
47
IO_VSS
S
高压I/O引脚的接地基准。
48
LIN/BSD
I/O
局域互联网络I/O/位串行设备I/O。高压引脚。
EPAD
裸露焊盘
1
裸露焊盘应接到DGND。
I = 输入,O = 输出,I/O = 输入/输出,S = 电源。
Rev. A | Page 17 of 132
ADuC7036
典型工作特性
0
0
CORE OFF
–0.2
CD = 1
–0.5
VDD = 4V
OFFSET (µV)
OFFSET (µV)
–0.4
–0.6
–1.0
CD = 0
–1.5
–0.8
VDD = 18V
–10
20
50
80
115
140
TEMPERATURE (°C)
07474-008
–1.2
–40
–2.5
图 8. ADC 电流通道失调和温度的关系,10 MHz MCU
–40°C
+115°C
–1.5
–2.0
–2.5
6
8
10
12
14
16
18
20
VDD (V)
07474-009
OFFSET (µV)
+25°C
–1.0
4
6
8
10
12
14
16
18
VDD (V)
图 10. ADC 电流通道失调和 VDD 的关系,25°C
0
–0.5
4
图 9. ADC 电流通道失调和 VDD 的关系,10 MHz MCU
Rev. A | Page 18 of 132
20
07474-010
–2.0
–1.0
ADuC7036
术语
转换速率
失调误差漂移
转换速率是指在ADC稳定后从ADC获得输出结果的速度。
失调误差漂移是指绝对失调误差的温度变化值。表示为
此器件使用的是Σ-Δ转换技术,意味着当以相对较高的采样
LSB/˚C。
率对ADC前端信号进行过采样时,后接数字滤波器抽取输
增益误差
出,提供有效16位数据转换结果以获得1Hz至8kHz的输出
增益误差是衡量ADC量程误差的指标。它考察的是传递函
速率。
数上任两点的测量量程和理想值的偏差。
注意,当软件在相同ADC上切换不同输入时,必须先清空
输出噪声
数字滤波器,然后可以对新结果求平均。取决于ADC配置
和滤波器类型,这个操作可能需要多个转换周期。
输出噪声是指在ADC直流输入信号时输出代码分布的标准
偏差(即1 × Σ)。表示为毫伏均方根(μV rms)。如下列
积分非线性 (INL)
等式所定义,输出噪声或均方根噪声可用来求出ADC的有
转换结果编码偏离通过其传递函数端点的直线的最大偏
效分辨率:
差。ADC传递函数端点是指,在零点位置比第一个编码的
跃变点低1/2 LSB的点,以及在满刻度位置比最后一个编码
有效分辨率 = log2(满量程/均方根噪声)
的跃变点高1/2 LSB的点(111...110到111...111)。该误差表
其中有效分辨率表示为位。
示为满量程的百分比。
峰峰值噪声是指ADC直流输入信号时在输出代码分布6.6
无失码
× Σ范围内的代码偏差。因此峰峰值噪声是均方根噪声的
无失码是衡量ADC微分非线性的指标。表示为位(2N位,
6.6倍。
其中N为无失码),指在整个ADC输入范围内保证发生的
如下列等式所定义,峰峰值噪声可用来求出在6.6 × Σ限值
代码数目(ADC结果)。
内无码闪烁的ADC(无噪声代码)分辨率:
无噪声代码分辨率 = log2(满量程/峰峰值噪声)
失调误差
ADC第一个码转换输入电压和理想码跃迁的偏差即是失调
其中无噪声代码分辨率以位表示。
误差。
Rev. A | Page 19 of 132
ADuC7036
工作原理
ADuC7036是一款适用于在12V汽车电子应用中进行电池
如 表8所列,ARM7TDMI是具有四个功能加强的ARM7
监控的完整系统解决方案,集成了所有在各种工作条件下
内核。
对12V电池参数(如电池电流、电压和温度)进行精确智
表8. ARM7TDMI
能监控、处理和诊断等必需的功能。
功能
描述
可直接从12V电池供电,从而最大程度减少了外部系统组
T
支持Thumb®指令集(16位)
件。片内有低压降稳压器向两个集成16位Σ-Δ ADC供电。
D
支持调试
M
增强乘法器。
I
包含EmbeddedICE™模块以支持嵌入式系统调试
这些ADC精确测量电池电流、电压及温度以采集汽车电池
的运行和充电状态参数。
片内还集成了一个基于Flash/EE存储器的ARM7™微控制
Thumb模式(T)
器(MCU),用来预处理获得的电池变量并管理ADuC7036
ARM指令长32位。ARM7TDMI处理器支持16位压缩的第二
通过片内集成的局域互连网络(LIN)接口和主电子控制
个指令集,即Thumb指令集。Thumb指令集具有16位存储
单元(ECU)的通信。
器的更快代码执行速度和更大的代码密度,使ARM7TDMI
MCU和ADC子系统都可以单独配置采用正常工作模式或
内核特别适用于嵌入式应用。
更灵活的省电工作模式。
不过,Thumb模式有三个缺点:
在正常工作模式下,MCU通过锁相环(PLL)从片内振荡
•
相对于ARM而言,同一个任务Thumb代码通常需要更
器间接接收时钟信号,最大时钟速率为20.48 MHz。在省电
多的指令。因此,ARM代码特别适合于在大多数应用
工作模式下,MCU完全断电,只被ADC转换结果就绪、数
中最大程度提升时间关键代码的性能。
字比较器、唤醒定时器、POR或外部串行通信等事件唤醒。
•
ADC可配置采用正常(全功率)工作模式,在各种采样转
换事件后中断MCU。电流通道支持两种低功耗模式:低功
耗和超低功耗,根据较低的性能指标来产生转换结果。
片内出厂固件支持通过LIN或JTAG串行接口端口进行在线
Flash/EE编程,也支持通过JTAG接口进行非介入仿真。这
Thumb指令集不含一些异常处理指令,所以可能需要
ARM代码进行异常处理。
•
发生中断时,内核矢量指向存储器内的中断地址并执
行存储的代码。第一条命令要求在ARM代码内。
乘法器(M)
些功能都集成在支持ADuC7036的低成本QuickStart™开发
ARM7TDMI指令集包括一个增强乘法器,具有四条额外指
系统中。
令以进行32位与32位相乘或32位与32位乘加(MAC)来得到
ADuC7036直接从12V电池供电,工作温度范围:−40°C至
+115°C。在115°C至125°C温度范围内仍能工作,但性能会
降低。
64位结果。
EmbeddedICE (I)
EmbeddedICE模块为ARM7TDMI提供集成片内调试功能,
包括断点和观察点寄存器,实现非介入用户代码调试。这
ARM7TDMI内核概览
些寄存器可以通过JTAG测试端口加以控制。当碰到一个断
ARM7内核是一种ARM公司开发的32位精简指令集计算机
(RISC)。ARM7TDMI®属于冯·诺依曼架构,指令和数据
只能利用32位总线。取决于内核工作模式,数据可采用8、
16或32位,指令字长16位或32位。
点或观察点时,处理器会暂停执行,进入调试状态。一旦
进入调试状态,就可以查询处理器寄存器,也可以查询
Flash/EE,SRAM和存储器映射寄存器。
Rev. A | Page 20 of 132
ADuC7036
ARM7 异常
当异常发生时,一些标准寄存器会被替换成特定寄存器,
ARM7支持5种异常类型,每种类型都对应一种优先处理模
而进入异常模式。所有的异常模式都有各自的替换寄存器
式。这5种异常类型为:
组,用于堆栈指针(R13)和链接寄存器(R14),如图11
•
正常中断或IRQ。用于内部和外部事件的通用中断处理。
所示。FIQ模式具有更多寄存器(R8至R12)以获得更快的
快速中断或FIQ。用于数据传输或低延迟通信通道处
中断处理。随着非关键寄存器数目的增加,在中断处理时
理。FIQ的优先级高于IRQ。
可以不必保存或恢复这些寄存器,从而缩短了中断处理过
程的响应时间。
•
存储器中止(预取和数据)
•
执行未定义指令。
•
软件中断(SWI)指令,用于调用操作系统。
有关程序员模型和ARM7TDMI内核架构的详情,请参见
ARM公司的ARM7TDMI技术和ARM架构手册。
R0
一般情况下,程序员将中断定义为IRQ,但要获得优先级
更高的中断,可将中断定义为FIQ。
R2
异常优先级和矢量地址见表9。
R4
1
异常
硬件复位
存储器中止(数据)
FIQ
IRQ
存储器中止(预取)
软件中断1
未定义指令1
SYSTEM MODES ONLY
R3
R5
R6
表9. 异常优先级和矢量地址
优先级
1
2
3
4
5
6
6
USABLE IN USER MODE
R1
R7
地址
0x00
0x10
0x1C
0x18
0x0C
0x08
0x04
R8
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
在表9中异常表地址范围为0x00到0x1C,0x14为保留位置。
SPSR_FIQ
FIQ
MODE
SPSR_SVC
SVC
MODE
SPSR_ABT
ABORT
MODE
SPSR_IRQ
IRQ
MODE
SPSR_UND
UNDEFINED
MODE
07474-011
•
图 11. 寄存器结构图
此保留位置需要写入0x27011970或页0的校验和,0x14除
外,否则用户代码可能无法执行而转入LIN下载模式。
中断延迟时间
ARM寄存器
快速中断请求(FIQ)的最大延迟时间包括请求通过同步器、
ARM7TDMI共有16个标准寄存器。R0至R12用于数据操
作,R13是堆栈指针,R14是链接寄存器,而R15是程序计
数器,指示当前正在执行的指令。链接寄存器存放用户转
移地址(使用转移和链接命令情况)或发生异常时的命令。
堆栈指针包含堆栈的当前位置。作为ARM7TDMI的一般规
则,堆栈始于可用RAM空间顶部并根据需要递减。每个异
常都定义了一个独立的堆栈。用户可根据目标应用来配置
每个堆栈的大小。在ADuC7036上,堆栈从0x00040FFC开
始递减。利用C等高级语音进行编程时,必须确保堆栈不
会溢出。这取决于所用编译器的性能。
最长指令(LDM)完成载入所有寄存器(包括PC)以及完
成数据中止和FIQ跳转的最长可能时间总和。等待这段时间
结束后,ARM7TDMI便开始执行在地址0x1C(FIQ中断矢
量地址)处的指令。如果系统采用连续20.48MHz处理器时
钟,则最长FIQ延迟时间为50个处理器周期,或稍稍超过
2.44 μs。
IRQ最大延迟时间计算方法也类似,但必须考虑到FIQ优先
级更高,可能任意延长进入IRQ处理例行程序的时间。如
果不使用LDM命令,这个时间可以缩短到42个周期;一些
编译器可以选择不使用此命令进行编译。另一个选择是在
Thumb模式下运行器件,可以将时间缩短至22个周期。
Rev. A | Page 21 of 132
ADuC7036
FIQ或IRQ中断的最短延迟时间为5个周期,包括请求通过
RESERVED
同步器的最短时间加上进入异常模式的时间。
0xFFFF0FFF
0xFFFF0000
注意,发生异常时,ARM7TDMI最初(第一个指令)在ARM
(32位)模式下运行。必要时,如执行中断服务例行程序
时,用户可从ARM模式立即切换到Thumb模式。
MMRs
RESERVED
0x00097FFF
FLASH/EE
0x00080000
存储器结构
RESERVED
由于采用冯•诺依曼架构,ARM7 MCU内核将存储器看作
0x00417FF
232个字节位置的线性阵列。如图13中所示,ADuC7036将
0x00040000
SRAM
RESERVED
此线性阵列映射成四个不同用户区域:可重映射的存储区
域、SRAM区域、Flash/EE区域及存储器映射寄存器(MMR)
REMAPPABLE MEMORY SPACE
(FLASH/EE OR SRAM)
区域。
0x00000000
•
第一块94kB用作可重新映射片内Flash/EE或SRAM的
07474-013
0x0017FFF
图 13. 存储器映射图
区域。
•
ADuC7036在存储器映射图顶部具有第二块4 kB区域
SRAM
ADuC7036的SRAM大小为6kB,从0x00040000起被组织成
以定址MMR,用来配置并监控所有片内外设。
1536 × 32位,即1536个字。
•
ADuC7036的SRAM大小为6 kB。
•
ADuC7036的片内Flash/EE存储器大小为96 kB,其中94
RAM空间既可用作数据存储器,也可用作易失性程序空间。
由于SRAM被配置成32位宽的存储器阵列,ARM代码可以
kB供用户使用,2KB保留供片上内核使用。
直接从SRAM以完全时钟速度执行。SRAM可采用8、16及
任何对存储器映射图中未定义区域的访问(读写)都会造
32位段读写。
成数据中止异常。
重映射
存储格式
ADuC7036存储被配置成从小到大顺序格式:LSB位于最低
ARM 异 常 矢 量 位 于 存 储 器 阵 列 底 部 地 址 0x00000000 到
0x00000020。
字节地址,MSB位于最高字节地址。
默认情况下,在复位后Flash/EE存储器会被逻辑映射到地
BIT 0
址0x00000000。
BYTE 3
.
.
.
BYTE 2
.
.
.
BYTE 1
.
.
.
BYTE 0
.
.
.
B
A
9
8
7
6
5
4
0x00000004
3
2
1
0
0x00000000
32 BITS
图 12. 从小到大顺序格式
0xFFFFFFFF
如果要将SRAM逻辑重映射到地址0x00000000,需要在
0xFFFF0220处设置SYSMAP0 MMR的0位。要使Flash/EE
07474-012
BIT 31
返回到0x00000000,SYSMAP0的0位需清0。
如果要优化ADuC7036的中断延迟时间,将RAM重映射到
0x00000000可能比较有利,因为这样代码可以在完全32位
ARM模式下以最高内核速度执行。注意,发生异常时,内
核默认为ARM模式。
Rev. A | Page 22 of 132
ADuC7036
SYSMAP0 寄存器
重映射操作
ADuC7036发生复位时,会自动执行工厂内置的程序代码。
名称:SYSMAP0
这就是所谓的隐藏内核,用户代码不能访问。如果
地址:0xFFFF0220
ADuC7036处于正常模式,它就执行内核的上电配置例行程
默认值:由内核更新
序,然后跳转到复位矢量地址0x00000000执行用户的复位
异常例行程序。由于复位时Flash/EE镜像到存储器阵列底
部,复位例行程序必须始终写入Flash/EE内。
访问类型:读写
功能:此8位寄存器允许用户代码将RAM或Flash/EE空间重
重映射命令必须从绝对Flash/EE地址处执行,不得从可能
映射到起始地址为0x00000000的ARM存储器空间底部。
被SRAM替代的存储器镜像、重映射段执行。如果在从镜
表10. SYSMAP0 MMR位分配
像位置执行代码时执行重映射操作,可能会发生预取/数据
位
描述
中止或用户可能观察到异常程序操作。
7至1
0
保留。这些位保留,应由用户代码写入0。
任何一种复位都将Flash/EE存储器重映射到存储器阵列
底部。
Rev. A | Page 23 of 132
重映射位。
由用户设置以将SRAM重映射到0x00000000。
复位后自动清0将Flash/EE存储器重映射到
0x00000000。
ADuC7036
RSTCLR寄存器
复位
名称:RSTSTA
有四种复位形式:外部复位、上电复位、看门狗复位及软
件复位。RSTSTA寄存器指示上一次复位来源并可由用户
地址:0xFFFF0234
代码写入以启动软件复位事件。此寄存器的清0可通过在
访问类型:只写
0xFFFF0234处写入RSTCLR MMR来完成。RSTCLR的位分
功能:此8位只写寄存器将对应RSTSTA位清0。
配镜像RSTSTA的位。这两种寄存器用以在复位异常服务
例行程序期间识别复位来源。所有四种复位事件的含义如
表11. RSTSTA/RSTCLR MMR位分配
表12所示。
位
描述
7至4
未使用。全部不用,始终读取0。
3
外部复位。
发生外部复位时自动置1。
通过设置对应RSTCLR位清0。
2
软件复位。
由用户代码置1以产生软件复位。
通过设置对应RSTCLR位清0。1
1
看门狗超时。
发生看门狗复位时自动置1。
通过设置对应RSTCLR位清0。
0
上电复位。
发生上电复位时自动设置。
通过设置对应RSTCLR位清0。
RSTSTA寄存器
名称:RSTSTA
地址:0xFFFF0230
默认值:视复位类型而定(见表11)
访问类型:读写
功能:此8位寄存器指示上一次复位事件来源并可由用户代
码写入以启动软件复位。
1
如果RSTSTA的软件复位位已设,任何不将此位清0的RSTCLR写入操作
都会产生软件复位。
表12.器件复位含义
影响
1
2
复位
将外部引
脚复位到
默认状态
执行内核
复位所有外部
MMR(不包括
RSTSTA)
复位所有高压
间接寄存器
复位
外设
复位看门
狗定时器
有效
RAM1
RSTSTA状态
(复位事件后)
POR
是
是
是
是
是
是
是/否2
RSTSTA[0] = 1
看门狗
是
是
是
是
是
否
是
RSTSTA[1] = 1
软件
是
是
是
是
是
否
是
RSTSTA[2] = 1
外部引脚
是
是
是
是
是
否
是
RSTSTA[3] = 1
在LIN下载后复位的情况下RAM无效。
LVF使能后,对RAM的影响取决于HVMON[3]内容。当利用HVCFG0[2]使能LVF时,如果LVF状态位HVMON[3]为1,则POR机制不会破坏RAM。详情
见低压标识(LVF)节。
Rev. A | Page 24 of 132
ADuC7036
FLASH/EE存储器
ADuC7036片内集成了Flash/EE存储器技术,向用户提供非
易失、在线可编程存储器空间。
类似于EEPROM,Flash存储器可在字节水平上进行系统内
编程,但在编程前必须先擦除,擦除单位为页模块。因此,
通常更确切地被称为Flash/EE存储器。
串行下载(在线编程)
AduC7036方便通过LIN/BSD引脚下载代码。
JTAG访问
ADuC7036具有一个片内JTAG端口进行代码下载和调试。
总之,由于具有非易失性、在线编程、高密度及低成本等
特 点 , Flash/EE 更 接 近 于 理 想 存 储 设 备 。 通 过 集 成 于
ADuC7036内的Flash/EE存储器技术,用户可以在线更新程
序代码空间而不必在远程操作节点处替换一次性可编程
(OTP)设备。
ADuC7036 Flash/EE存储器
Flash/EE存储器位于地址0x80000。硬件复位时,Flash/EE
存储器被映射到地址0x00000000。所有Flash/EE存储器位
置的工厂设置默认内容为0xFF。可采用8、16及32位段读取
并采用16位段写入。额定耐久性为10,000个周期。此额定
值基于反复操作(即擦除和编程)每个字节循环的次数。
还实 现 软件 冗余 配 置, 确保 所 有闪 存位 置 都不 会达 到
10,000耐用周期。
Flash/EE控制接口
用户还可在代码执行时将数据变量写入Flash/EE存储器,
例如用以存储电池诊断参数数据。
整个Flash/EE都可以用作用户的代码和非易失性数据存储
器。在执行ARM代码时,不区分数据和程序空间。Flash/EE
存储器的实际宽度为16位,这意味着在ARM模式(32位指
令)下每次取指令必须两次访问Flash/EE存储器。当工作
速度低于20.48MHz时,Flash/EE存储器控制器可在一个内
核时钟周期内透明读取第二个16位半字(32位ARM操作代
码的一部分)。因此,速度低于20.48MHz(即CD > 0)时,
建议使用ARM模式。对于20.48MHz操作(即CD = 0),建
议使用Thumb模式。
Flash/EE的页大小为512个字节。一般情况下,不论CD值多
少,Flash/EE控制器擦除一页都需要20 ms。CD = 0、1、2
或3时写入一个16位字需要50 μs;CD = 4或5时70 μs;CD =
6时80 μs;而CD = 7时105 μs。
一个16位位置在前后两次擦除中间只能写入两次;即字节
操作 而 非位 操作 。 如果 一个 位 置连 续写 入 两次 以上 ,
Flash/EE页内容就有可能被破坏。
Flash/EE存储器总容量为96kB,结构为47,000 × 16位。其
中,94 kB指定为用户空间,2kB保留用于引导加载程序/
内核空间。
ADuC7036通过片内存储器控制器来管理Flash/EE存储器
的访问和控制。控制器作为两个独立模块(模块0和模块1)
来管理Flash/EE存储器。
模块0为32kB,从地址0x00090000映射到地址0x00097FFF,
其中模块顶部保留2kB内核空间。
模块1为64kB,从地址0x00080000映射到地址0x0008FFFF。
注意,MCU内核可在某一模块上进行擦除或运行程序的同
时在另一个存储模块上继续执行代码。如果在目前执行代
码相同的模块上执行一条命令,内核必须暂停操作直到命
令结束。这点也同样适用于代码执行。
用户代码、LIN和JTAG编程都利用了Flash/EE控制接口,
它包括下列MMR:
•
•
•
•
•
•
•
•
Flash/EE存储器在线编程
Flash/EE存储器可通过LIN接口或集成JTAG端口在串行下
载模式下进行在线编程。
FEExSTA(x = 0或1):只读寄存器。反映Flash/EE控
制接口的状态。
FEExMOD(x = 0或1):设置Flash/EE控制接口的工
作模式。
FEExCON(x = 0或1):8位命令寄存器。命令含义如
表13所述。
FEExDAT(x = 0或1):16位数据寄存器。
FEExADR(x = 0或1):16位地址寄存器。
FEExSIG(x = 0或1):由于签名命令启动,保持24位
代码签名。
FEExHID(x = 0或1):MMR保护。Flash/EE存储器代
码空间的读写保护控制。如果先前是通过FEExPRO寄
存器配置的,FEExHID可能要求软件密钥来启用访问。
FEExPRO(x = 0或1):FEExHID寄存器的缓存。存
储FEExHID值并在以后复位和上电事件时自动下载到
FEExHID寄存器。
注意,用户软件必须确保Flash/EE控制器在PLL关断前完成
任何擦除或写入周期。如果PLL在擦除或写入周期结束前
关断,可能会破坏Flash/EE页或字节。
Rev. A | Page 25 of 132
ADuC7036
“FEE0CON和FEE1CON寄存器”部分到“FEE0MOD和FEE1MOD”部分详细介绍每个Flash/EE控制MMR的位分配。
FEE0CON和FEE1CON寄存器
名称:FEE0CON和FEE1CON
地址:0xFFFF0E08和0xFFFF0E88
默认值:0x07
访问类型:读写
功能:这些8位寄存器由用户代码写入来控制Flash/EE存储器控制器的模块0(32kB)和模块1(64kB)工作模式。
表13. FEE0CON和FEE1CON中的命令代码
代码
0x002
命令
描述1
保留
保留。此命令不能由用户代码写入。
0x012
单次读取
将FEExADR索引的16位数据载入FEExDAT。
0x022
单次写入
在FEExADR指向的地址处写入FEExDAT。操作耗时50 μs。
0x032
擦除写入
擦除FEExADR索引的页并在FEExADR指向的位置处写入FEExDAT。操作耗时20 ms。
0x04
2
单次验证
将FEExADR指向的位置内容和FEExDAT内的数据进行比较。比较结果返回到FEExSTA位1或位0。
0x052
单次擦除
擦除FEExADR索引的页。
2
批量擦除
擦除用户空间的模块0(32kB)或模块1(64kB)。2kB内核被保护。操作耗时1.2 s。为防止意外执行,
执行此指令要求一个命令序列(见“批量擦除命令执行序列”部分)。
0x06
0x07
默认命令。
0x08
保留
保留。此命令不能由用户代码写入。
0x09
保留
保留。此命令不能由用户代码写入。
0x0A
保留
保留。此命令不能由用户代码写入。
0x0B
签名
FEE0CON:此命令产生一个基于24位线性反馈移位寄存器(LFSR)的签名,然后载入到FEE0SIG内。
如果FEE0ADR低于0x97800,此命令从FEE0ADR内的指定页起向上产生用户代码空间的一个基于24
位LFSR的签名,包括内核、安全位和Flash/EE密钥。如果FEE0ADR大于0x97800,表示内核和制造数
据已经签名。操作耗时120 μs。FEE1CON:此命令从FEE1ADR起到63,500模块末尾产生一个基于24位
LFSR的签名,然后载入到FEE1SIG内。此模块的最后一页不包括在生成签名中。
0x0C
保护
保留
此命令只能运行一次。保存FEExPRO值并只能利用批量擦除(0x06)或软件保护密钥加以清除。
0x0D
0x0E
保留
保留。此命令不能由用户代码写入。
0x0F
Ping
无操作,产生中断。
保留。此命令不能由用户代码写入。
1
x代表0或1,指定Flash/EE模块0或模块1。
2
FEE0CON寄存器在此命令执行完毕后立即读取0x07。
Rev. A | Page 26 of 132
ADuC7036
表14. FEE0STA和FEE1STA MMR位分配
批量擦除命令执行序列
位
描述1
在批量擦除命令签名后,必须执行下列特定代码序列以开
7至4
未使用。全部不用,始终读取0。
始此操作:
3
Flash/EE中断状态位。
发生中断时,即命令结束且FEExMOD寄存器的
Flash/EE中断使能位置1时,自动置1。
当用户代码读取FEExSTA寄存器时自动清0。
2
Flash/EE控制器忙指示。
当Flash/EE控制器忙时自动置1。
当控制器不忙时自动清0。
1
命令失败。
当命令写入FEExCON不成功时自动置1。
当用户代码读取FEExSTA寄存器时自动清0。
0
命令成功。
当命令成功完成时由MCU自动置1。
当用户代码读取FEE0STA寄存器时自动清0。
FEExMOD的位3置1。
将0xFFC3写入FEExADR。
将0x3CFF写入FEExDAT。
运行在FEExCON内的批量擦除命令(代码0x06)。
此序列实例如下:
Int a = FEExSTA;
// Ensure FEExSTA is cleared
FEExMOD = 0x08
FEExADR = 0xFFC3
FEExDAT = 0x3CFF
FEExCON = 0x06;
// Mass erase command
while (FEExSTA & 0x04){} //Wait for command to finish
注意,通过FEE0CON执行批量擦除命令时,必须禁用低
64kB的写保护。即,FEE1HID/FEE1PRO设为0xFFFFFFFF。
此设置可通过先取消保护或擦除低64kB来实现。
1
x代表0或1,指定Flash/EE模块0或模块1。
FEE0ADR和FEE1ADR寄存器
名称:FEE0ADR和FEE1ADR
地址:0xFFFF0E10和0xFFFF0E90
FEE0STA和FEE1STA寄存器
默认值:0x0000(FEE1ADR)。对于FEE0ADR,参见“系
名称:FEE0STA和FEE1STA
统标识FEE0ADR”部分。
地址:0xFFFF0E00和0xFFFF0E80
访问类型:读写
默认值:0x20
功能:这些16位寄存器决定通过FEExCON执行Flash/EE命
访问类型:只读
令时的操作地址。
功能:这些8位只读寄存器可由用户代码读取并反映
Flash/EE存储器控制器的当前状态。
Rev. A | Page 27 of 132
ADuC7036
FEE0MOD和FEE1MOD寄存器
FEE0DAT和FEE1DAT寄存器
名称:FEE0MOD和FEE1MOD
名称:FEE0DAT和FEE1DAT
地址:0xFFFF0E04和0xFFFF0E84
地址:0xFFFF0E0C和0xFFFF0E8C
默认值:0x00
默认值:0x0000
访问类型:读写
访问类型:读写
功能:此16位寄存器存放Flash/EE存储器的读写数据。
功能:这些寄存器由用户代码写入以配置Flash/EE存储器
控制器的工作模式。
表15.FEE0MOD和FEE1MOD MMR位分配
位
描述1
15至7
未使用。全部保留日后使用并应由用户代码写入0。
6, 5
Flash/EE安全锁定位。这些位必须以[6:5] = 10写入以完成Flash/EE安全保护序列。
4
Flash/EE控制器命令完成中断使能。
由用户代码置1以使能Flash/EE控制器在Flash/EE命令完成时产生中断。
清0以在Flash/EE命令完成时禁止产生Flash/EE中断。
3
Flash/EE擦除/写入使能。
由用户代码置1以通过FEExCON使能Flash/EE擦除和写入访问。
由用户代码清0以通过FEExCON禁用Flash/EE擦除和写入访问。
2
保留。应写入0。
1
Flash/EE控制器中止使能。
由用户代码置1时,使能Flash/EE控制器中止功能。
0
保留。应写入0。
1
x代表0或1,指定Flash/EE模块0或模块1。
Rev. A | Page 28 of 132
ADuC7036
加密永久性保护
FLASH/EE存储器安全性
Flash/EE存储器有94kB供用户使用,可利用FFE0HID和
FEE1HID寄存器实现读写保护。
加密永久性保护可通过FEExPRO设置以锁定保护配置。一
旦保存了所需FEExPRO写入序列开头使用的软件密钥,就
必须在以后任何FEExHID或FEExPRO MMR访问中提供。
在模块0中,FEE0HID MMR保护30kB。此寄存器的位[0:28]
批量擦除可将密钥设回到0xFFFF,但同时也擦除了整个用
写入保护页0至57。每位保护2页,即1 kB。位[29:30]分别
户代码空间。
保护页58和页59,即每位写入保护一页512字节。此寄存器
的MSB(位31)保护模块0不被JTAG读取。
FEE0PRO 寄 存 器 镜 像 复 制 FEE0HID MMR 的 位 分 配 。
FEE0PRO MMR允许用户代码锁定Flash/EE存储器的保护
或安全配置,这样在以后上电或复位时可自动载入保护配
置。这种灵活性允许用户利用FEE0HID MMR临时设置并
永久性保护
永久性保护可通过FEExPRO设置,设置方式类似于加密永
久性保护,不同之处在于,所用软件密钥是0xDEADDEAD。
FEExPRO写入序列保存后,只有批量擦除可将密钥设回到
0xFFFFFFFF。同时也擦除整个用户代码空间。
测试保护设置,随后在将保护系统运送到现场时锁定所需
写入密钥和设置永久性保护的序列
保护配置(利用FEE0PRO)。
1.
写入和欲保护页相对应的FEExPRO。
在模块1(64kB)中,FEE1HID MMR保护64kB。此寄存器
2.
将新的(用户定义)32位密钥写入FEExADR位[31:16]
的位[00:29]写入保护页0至119。每位保护4页,即2 kB。位
30保护页120至127,即位30写入保护512字节的八页。此寄
存器的MSB(位31)保护模块1不被JTAG读取。
如同模块0,FEE1PRO寄存器镜像复制FEE1HID MMR的位
和FEExDAT位[15:0]。
3.
将位[6:5] = 0x10写入FEExMOD。
4.
执行FEExCON内的写入密钥命令(代码0x0C)。
分配。FEE1PRO MMR允许用户代码锁定Flash/EE存储器的
要取消或修改保护,可使用相同的序列,同时修改
保护或安全配置,这样在以后上电或复位事件时可自动载
FEExPRO值。
入保护配置。
前面写入密钥并设置永久性保护的序列实例如下,此实例
有三种保护级别:临时保护、加密永久性保护和永久性
保护。
Int a = FEExSTA;
FEExPRO =0 xFFFFFFFB;
临时保护
临时保护可通过直接写入FEExHID MMR来设置和取消。
此寄存器为易失性,因此保护只在器件上电时才能维持。
保护在通电周期后便不再重新载入。
写入保护Flash/EE的页4和页5。
//Ensure FEExSTA is cleared
//Protect Page 4 and Page 5
FEExADR = 0x66BB;
//32-bit key value (Bits[31:16])
FEExDAT = 0xAA55;
//32-bit key value (Bits[15:0])
FEExMOD = 0x0048
// Lock security sequence
FEExCON = 0x0C;
// Write key command
while (FEExSTA & 0x04){}
finish
Rev. A | Page 29 of 132
//Wait for command to
ADuC7036
模块 0、Flash/EE存储器保护寄存器
名称:FEE0HID和FEE0PRO
地址:0xFFFF0E20(用于FEE0HID)和0xFFFF0E1C(用于FEE0PRO)
默认值:0xFFFFFFFF(用于FEE0HID)和 0x00000000(用于FEE0PRO)
访问类型:读写
功能:这些寄存器由用户代码写入以配置Flash/EE存储器保护。
表16. FEE0HID和FEE0PRO MMR位分配
位
描述1
31
读取保护位。
由用户代码置1以允许通过JTAG读取访问来读取32kB Flash/EE模块代码。
由用户代码清0以通过JTAG读取访问来保护32kB Flash/EE模块代码。
30
写入保护位。
由用户代码置1以允许写入页59。
由用户代码清0以写入保护页59。
29
写入保护位。
由用户代码置1以允许写入页58。
由用户代码清0以写入保护页58。
28至0
写入保护位。
由用户代码置1以允许写入30 kB Flash/EE代码存储器的页0至57。每位写入保护2页,每页512字节。
由用户代码清0以写入保护30 kB Flash/EE代码存储器的页0至57。每位写入保护2页,每页512字节。
1
x代表0或1,指定Flash/EE模块0或模块1。
模块 1、Flash/EE存储器保护寄存器
名称:FEE1HID和FEE1PRO
地址:0xFFFF0EA0(用于FEE1HID)和0xFFFF0E9C(用于FEE1PRO)
默认值:0xFFFFFFFF(用于FEE1HID)和 0x00000000(用于FEE1PRO)
访问类型:读写
功能:这些寄存器由用户代码写入以配置Flash/EE存储器保护。
表17. FEE1HID和FEE1PRO MMR位分配
位
描述
31
读取保护位。
由用户代码置1以允许通过JTAG读取访问来读取64kB Flash/EE模块代码。
由用户代码清0以通过JTAG读取访问来读取保护64 kB Flash/EE模块代码。
30
写入保护位。写入保护8页。每页512字节。
由用户代码置1以允许写入64 kB Flash/EE代码存储器的页120至127。
由用户代码清0以写入保护64 kB Flash/EE代码存储器的页120至127。
29至0
写入保护位。
由用户代码置1以允许写入64 kB Flash/EE代码存储器的页0至119。每位写入保护4页,每页512字节。
由用户代码清0以写入保护64 kB Flash/EE代码存储器的页0至119。每位写入保护2页,每页512字节。
Rev. A | Page 30 of 132
ADuC7036
SRAM和Flash/EE代码执行时间
FLASH/EE存储器可靠性
本节介绍在执行时间关键的应用中SRAM和Flash/EE的执
此器件的Flash/EE存储器阵列完全满足两大Flash/EE存储
行访问时间。
器关键特性要求:周期耐久性和数据保持力。
耐久性衡量Flash/EE存储器循环重复多个编程、读取及擦
除周期的能力。一个耐久性周期包括四个独立连续事件,
分别定义为初始页擦除序列、读取/校验序列、字节编程序
列和第二个读取/校验序列。
在可靠性指标测试中,在Flash/EE存储器内三页(顶部、
中间及底部)的每半个字(16位宽)位置从0x0000到0xFFFF
循环操作10,000次。如表1所示,此器件的Flash/EE存储器
耐久性指标是根据JEDEC保存期限规格A117测试的。结果
表明,随电源和温度变化,最小耐久性参数规格达10,000
周期。
保持期衡量Flash/EE存储器长时间保持编程数据的能力。
同样,在具体结温(TJ = 85°C)下根据标准JEDEC保持期
限规格A117对器件进行测试。作为此测试程序的一部分,
如前述,循环操作Flash/EE存储器到达指定的耐久性限值,
然后确定数据保持特性。这表明每次对Flash/EE存储器进
行重新编程时,都保证Flash/EE存储器在完全指定的保持
期限内保持数据。此外,注意根据0.6 eV的活化能,保持
期限随JI而递减,如图14所示。
从Flash/EE执行
Thumb模式指令长16位,需要一个周期来取指令。
当CD = 0时,ARM模式需要两个周期来取32位指令。当CD
> 0时,由于Flash/EE存储器仍以全速时钟速率工作,不需
要任何其他取周期。此外,对于任何CD位值,访问数据前
需要一些死区。
当执行指令涉及使用Flash/EE作为数据存储器时,在两种
模式下的时序完全相同。如果欲执行的指令为控制流指令,
那么需要一个额外的周期来对程序计数器的新地址进行解
码,然后在CD = 0时需要四个周期填充流水线。
表18. ARM/Thumb模式的典型执行周期
450
300
150
25
40
55
70
85
100
115
JUNCTION TEMPERATURE (°C)
图 14. Flash/EE 存储器数据保持期
130
145
07474-014
RETENTION (Years)
由于SRAM访问时间为2 ns,时钟周期最低为49 ns,SRAM
取指令耗费一个时钟周期。但是,当指令涉及到存储器读
写时,如果数据位于SRAM内,必须增加一个周期。如果
数据位于Flash/EE内,必须增加两个周期:一个用来执行
指令,另外两个从Flash/EE中获取32位数据。控制流指令
(如转移指令)取指令需要一个周期,用新指令填充流水
线需要两个周期。
数据处理指令如果只涉及内核寄存器则不需要任何额外时
钟周期。数据传送指令更加复杂,见表18概述。
600
0
从SRAM执行
指令
取周期
死区
数据访问
LD
2/1
1
2
LDH
2/1
1
1
LDM/PUSH
2/1
N
2×N
STR
2/1
1
2 × 50 μs
STRH
2/1
1
50 μs
STRM/POP
2/1
N
2 × N × 50 μs
1 < N ≤ 16,N是在多个载入/存储指令中欲载入或存储的数
据数目。
默认情况下,在任何Flash/EE擦除或写入周期期间,会暂
停Flash/EE代码执行。页(512字节)擦除周期需要20ms
而(16位)字写入命令需要50μs。但是,在当前Flash/EE
擦除/写入周期期间,如果ARM内核接收到有效中断,
Flash/EE控制器允许中止擦除/写入周期。因此,ARM7能
够立即进入中断服务,然后重新返回Flash/EE命令。典型
中止操作需要10个时钟周期。如果无法执行中止操作,用
户可以执行SRAM的Flash/EE程序代码和相关中断例行程
序,允许内核立即进入中断服务。
Rev. A | Page 31 of 132
ADuC7036
ADuC7036还附带一个片内LIN下载器。
片上内核
ADuC7036在顶部2 kB Flash/EE代码空间内常驻有一个片
上内核。发生任何复位事件后,此内核会将工厂校准数据
内核执行流程图如图15所示。如表99所述,当前内核版本
可从SYSSER1获得。
从制造数据空间复制到不同片内外设内。内核校准的外设
上电复位后,一旦内核代码激活,便会禁用看门狗定时器。
如下:
在内核执行期间,看门狗定时器有效,超时周期达500ms。
这确保内核发生错误时,ADuC7036会自动复位。在发生任
•
电源监控器(PSM)
•
精密振荡器
置并紧接在内核退出前刷新。正常运行LIN下载器需要最
•
低功耗振荡器
低30 ms的看门狗周期。进入LIN下载模式后,会定期刷新
•
REG_AVDD/REG_DVDD
•
低功耗基准电压源
•
正常模式基准电压源
•
电流ADC(失调和增益)
行期间会修改。
•
电压/温度ADC(失调和增益)
注意,即使NTRST = 0,除非地址0x14包含0x27011970或
何其他复位后,看门狗定时器维持内核周期的用户代码配
看门狗。
正常内核执行时间(不包括LIN下载)约为5 ms。LIN下载
模式的进出只能通过复位完成。
在正常内核执行期间不会修改SRAM;而在LIN下载内核执
可以被内核修改并不同于POR默认值的用户MMR如下:
页0的校验和(不包括地址0x14),否则就不会执行用户代
码。如果地址0x14不包含这些信息,就会无法执行用户代
•
R0至R15
码而转入LIN下载模式。内核执行期间会禁止JTAG访问。
•
GP0CON/GP2CON
当NTRST = 1时,始终执行用户代码。
•
SYSCHK
•
ADCMDE/ADC0CON
•
FEE0ADR/FEE0CON/FEE0SIG
•
HVDAT/HVCON
•
HVCFG0/HVCFG1
•
T3LD
Rev. A | Page 32 of 132
ADuC7036
INITIALIZE ON-CHIP
PERIPHERALS TO FACTORYCALIBRATED STATE
NO
NO
PAGE ERASED?
0x14 = 0xFFFFFFFF
JTAG MODE?
NTRST = 1
KEY PRESENT?
0x14 = 0x27011970
YES
YES
NO
YES
CHECKSUM PRESENT?
0x14 = CHECKSUM
YES
EXECUTE
USER CODE
NO
FLAG PAGE 0 ERROR
NO
NO
YES
RESET
COMMAND
07474-015
LIN COMMAND
图 15. 内核流程图
Rev. A | Page 33 of 132
ADuC7036
0xFFFFFFFF
存储器映射寄存器
0xFFFF1000
存储器映射寄存器(MMR)空间映射到存储器阵列的顶
部4 kB,并且可以通过ARM7寄存器组的间接寻址、载入
和存储命令来加以访问。ADuC7036寄存器映射图如图16
0xFFFF0E00
0xFFFF0D50
FLASH CONTROL
INTERFACE
GPIO
0xFFFF0D00
0xFFFF0A14
SPI
所示。
0xFFFF0A00
MMR空间为CPU和所有片内外设提供接口。除ARM7内核
0xFFFF0894
寄存器(参见“ARM寄存器”部分)外,所有寄存器都常驻
0xFFFF0880
SERIAL TEST
INTERFACE
0xFFFF0810
于MMR区域内。
HV INTERFACE
0xFFFF0800
如“完整MMR列表”部分中表19至30所示,MMR数据宽度
0xFFFF079C
为1个字节(8位)到4个字节(32位)。ARM7内核可32位
0xFFFF0780
读写访问任何MMR(单字节或多字节宽度寄存器)。
0xFFFF0730
例如,如“ARM寄存器”部分所述,读取结果采用从小到大
LIN/BSD
HARDWARE
UART
0xFFFF0700
0xFFFF0580
ADC
顺序格式排列。但如果ARM7 16位访问4字节(32位)MMR,
0xFFFF0500
就会导致错误。在16位写入32位MMR的情况下,16个最高
0xFFFF044C
有效位(高16位)全部被写入0。在16位读取32位MMR的
0xFFFF0400
情况下,只能读取MMR位中的16位。
0xFFFF0394
0xFFFF0380
0xFFFF0370
0xFFFF0360
0xFFFF0350
0xFFFF0340
0xFFFF0334
0xFFFF0320
PLL AND
OSCILLATOR CONTROL
GENERAL-PURPOSE
TIMER4
WATCHDOG
TIMER3
WAKE-UP
TIMER2
GENERAL-PURPOSE
TIMER1
0xFFFF0318
TIMER0
0xFFFF0300
0xFFFF0244
REMAP AND
SYSTEM CONTROL
0xFFFF0110
0xFFFF0000
INTERRUPT
CONTROLLER
图 16. 顶层 MMR 映射图
Rev. A | Page 34 of 132
07474-016
0xFFFF0220
ADuC7036
完整MMR列表
表19至30以十六进制代码形式列出地址。访问类型:R表示读取,W表示写入,RW表示读写。
表19. IRQ基地址 = 0xFFFF0000
地址
名称
字节
访问类型
默认值
描述
0x0000
IRQSTA
4
R
0x00000000
有效IRQ源。参见“中断系统”部分和表50。
0x0004
1
IRQSIG
4
R
N/A
所有IRQ源的当前状态(使能和禁用)。参见“中断系统”部
分和表50。
0x0008
IRQEN
4
RW
0x00000000
使能IRQ源。参见“中断系统”部分和表50。
0x000C
IRQCLR
4
W
N/A
MMR禁用IRQ源。参见“中断系统”部分和表50。
0x0010
SWICFG
4
W
N/A
软件中断配置MMR。参见“可编程中断”部分和表51。
0x0100
FIQSTA
4
R
0x00000000
有效IRQ源。参见“中断系统”部分和表50。
0x0104
FIQSIG1
4
R
N/A
所有IRQ源的当前状态(使能和禁用)。参见“中断系统”部
分和表50。
0x0108
FIQEN
4
RW
0x00000000
使能IRQ源。参见“中断系统”部分和表50。
0x010C
FIQCLR
4
W
N/A
MMR禁用IRQ源。参见“中断系统”部分和表50。
1
取决于外部中断引脚(GPIO_0、GPIO_5、GPIO_7和GPIO_8)上的电平。
表20. 系统控制基地址 = 0xFFFF0200
地址
名称
字节
访问类型
默认值
描述
0x0220
0x0230
SYSMAP0
RSTSTA
1
1
RW
RW
N/A
因复位类型而异
重映射控制寄存器。参见“重映射操作”部分和表10。
复位状态MMR。参见“复位”部分和表11及12。
0x0234
0x0238
0x023C
0x0560
0x0240
RSTCLR
SYSSER01
SYSSER11
SYSALI1
SYSCHK1
1
4
4
4
4
W
RW
RW
R
RW
N/A
N/A
N/A
N/A
N/A
RSTSTA清0MMR。参见“复位”部分和表11及12。
系统序列号0。详情参见“器件标识”部分和表98。
系统序列号1。详情参见“器件标识”部分和表99。
系统组装批次ID。详情参见“器件标识”部分。
内核校验和。参见“系统内核校验和”部分。
1
由内核更新。
表21. 定时器基地址 = 0xFFFF0300
地址
0x0300
名称
T0LD
字节
2
访问类型
RW
0x0304
T0VAL0
2
R
0x0308
T0VAL1
4
R
0x030C
T0CON
4
RW
0x0310
T0CLRI
1
W
0x0314
T0CAP
2
R
0x0320
0x0324
0x0328
0x032C
0x0330
T1LD
T1VAL
T1CON
T1CLRI
T1CAP
4
4
4
1
4
RW
R
RW
W
R
默认值
0x0000
描述
定时器0载入寄存器。参见“定时器0—使用寿命定时器”和“定时器0载入寄
存器”部分。
0x0000
定时器0值寄存器0。参见“定时器0—使用寿命定时器”和“定时器0值寄存
器”部分。
0x00000000 定时器0值寄存器1。参见“定时器0—使用寿命定时器”和“定时器0值寄存
器”部分。
0x00000000 定时器0控制MMR参见“定时器0—使用寿命定时器”和“定时器0控制寄存
器”部分。
N/A
定时器0中断清0寄存器。参见“定时器0—使用寿命定时器”和“定时器0载
入寄存器”部分。
0x0000
定时器0捕捉寄存器。参见“定时器0—使用寿命定时器”和“定时器0捕捉寄
存器”部分。
0x00000000 定时器1载入寄存器。参见“定时器±1”和“定时器1载入寄存器”部分。
0xFFFFFFFF 定时器1值寄存器。参见“定时器±1”和“定时器1值寄存器”部分。
0x01000000 定时器1控制MMR。参见“定时器±1”和“定时器1控制寄存器”部分。
N/A
定时器1中断清0寄存器。参见“定时器±1”和“定时器1清0寄存器”部分。
0x00000000 定时器1捕捉寄存器。参见“定时器±1”和“定时器1捕捉寄存器”部分。
Rev. A | Page 35 of 132
ADuC7036
地址
名称
字节
访问类型
默认值
描述
0x0340
T2LD
4
RW
0x00000000
定时器2载入寄存器。参见“定时器2—唤醒定时器”和“定时器2载入
寄存器”部分。
0x0344
T2VAL
4
R
0xFFFFFFFF
定时器2值寄存器。参见“定时器2—唤醒定时器”和“定时器2值寄存
器”部分。
0x0348
T2CON
2
RW
0x0000
定时器2控制MMR。参见“定时器2—唤醒定时器”和“定时器2控制寄
存器”部分和表55。
0x034C
T2CLRI
1
W
N/A
定时器2中断清0寄存器。参见“定时器2—唤醒定时器”和“定时器2清
0寄存器”部分。
0x0360
T3LD
2
RW
0x0040
定时器3载入寄存器。参见“定时器3—看门狗定时器”和“定时器3载
入寄存器”部分。
0x0364
T3VAL
2
R
0x0040
定时器3值寄存器。参见“定时器3—看门狗定时器”和“定时器3值寄
存器”部分。
0x0368
T3CON
2
RW
0x0000
定时器3控制MMR。参见“定时器3—看门狗定时器、3值寄存器”和“定
时器3控制寄存器”部分及表56。
0x036C
T3CLRI1
1
W
N/A
定时器3中断清0寄存器。参见“定时器3—看门狗定时器”和“定时器3
清0寄存器”部分。
0x0380
T4LD
2
RW
0x0000
定时器4载入寄存器。参见“定时器4—STI定时器”和“定时器4载入寄
存器”部分。
0x0384
T4VAL
2
R
0xFFFF
定时器4值寄存器。参见“定时器4—STI定时器”和“定时器4值寄存器”
部分。
0x0388
T4CON
4
RW
0x00000000
定时器4控制MMR。参见“定时器4—STI定时器”和“定时器4控制寄存
器”部分及表57。
0x038C
T4CLRI
1
W
N/A
定时器4中断清0寄存器。参见“定时器4—STI定时器”和“定时器4清0
寄存器”部分。
0x0390
T4CAP
2
R
0x0000
定时器4捕捉寄存器。参见“定时器4—STI定时器”部分。
1
由内核更新。
表22. PLL基地址 = 0xFFFF0400
地址
名称
字节
访问类型
默认值
描述
0x0400
PLLSTA
1
R
N/A
PLL状态MMR。参见“PLLSTA寄存器”部分和表44。
0x0404
POWKEY0
4
W
N/A
POWCON预写密钥。参见“POWCON预写密钥”部分。
0x0408
POWCON
1
RW
0x79
功率控制和内核速度控制寄存器。参见“POWCON寄存器”部分。
0x040C
POWKEY1
4
W
N/A
POWCON写后密钥。参见“POWCON写后密钥”部分。
0x0410
PLLKEY0
4
W
N/A
PLLCON预写密钥。参见“PLLCON预写密钥”部分。
0x0414
PLLCON
1
RW
0x00
PLL时钟源选择MMR。参见“PLLCON寄存器”部分。
0x0418
PLLKEY1
4
W
N/A
PLLCON写后密钥。参见“PLLCON写后密钥”部分。
0x042C
OSC0TRM
1
RW
0xX8
低功耗振荡器调整位MMR。参见“OSC0TRM寄存器”部分。
0x0440
OSC0CON
1
RW
0x00
低功耗振荡器校准控制MMR。参见“OSC0CON寄存器”部分。
0x0444
OSC0STA
1
R
0x00
低功耗振荡器校准状态MMR。参见“OSC0STA寄存器”部分。
0x0448
0SC0VAL0
2
R
0x0000
低功耗振荡器校准计数器0 MMR。参见“OSC0VAL0寄存器”部分。
0x044C
OSC0VAL1
2
R
0x0000
低功耗振荡器校准计数器1 MMR。参见“OSC0VAL1寄存器”部分。
Rev. A | Page 36 of 132
ADuC7036
表23. ADC基地址 = 0xFFFF0500
地址
名称
字节
访问类型 默认值
描述
0x0500
ADCSTA
2
R
0x0000
ADC状态MMR。参见“ADC状态寄存器”部分和表35。
0x0504
ADCMSKI
1
RW
0x00
ADC中断源使能MMR。参见“ADC中断屏蔽寄存器”部分。
0x0508
ADCMDE
1
RW
0x00
ADC模式寄存器。参见“ADC模式寄存器”部分和表36。
0x050C
ADC0CON
2
RW
0x0000
电流ADC控制MMR。参见“电流通道ADC控制寄存器”部分和表
37。
0x0510
ADC1CON
2
RW
0x0000
V-/T-ADC控制MMR。参见“电压/温度通道ADC控制寄存器”部分
和表38。
0x0518
ADCFLT
2
RW
0x0007
ADC滤波器控制MMR。参见“ADC滤波器寄存器”部分和表39。
0x051C
ADCCFG
1
RW
0x00
ADC配置MMR。参见“ADC配置寄存器”部分和表42。
0x0520
ADC0DAT
2
R
0x0000
电流ADC结果MMR。参见“电流通道ADC数据寄存器”部分。
0x0524
ADC1DAT
2
R
0x0000
V-ADC结果MMR。参见“电压通道ADC数据寄存器”部分。
0x0528
ADC2DAT
2
R
0x0000
T-ADC结果MMR。参见“温度通道ADC数据寄存器”部分。
0x0530
ADC0OF11
2
RW
N/A
电流ADC失调MMR。参见“电流通道ADC失调校准寄存器”部分。
0x0534
1
ADC1OF
2
RW
N/A
电压ADC失调MMR。参见“电压通道ADC失调校准寄存器”部分。
0x0538
ADC2OF1
2
RW
N/A
温度ADC失调MMR。参见“温度通道ADC失调校准寄存器”部分。
0x053C
ADC0GN1
2
RW
N/A
电流ADC增益MMR。参见“电流通道ADC增益校准寄存器”部分。
0x0540
1
ADC1GN
2
RW
N/A
电压ADC增益MMR。参见“电压通道ADC增益校准寄存器”部分。
0x0544
ADC2GN1
2
RW
N/A
温度ADC增益MMR。参见“温度通道ADC增益校准寄存器”部分。
0x0548
ADC0RCL
2
RW
0x0001
电流ADC结果计数限值。参见“电流通道ADC结果计数器限值寄存
器”部分。
0x054C
ADC0RCV
2
R
0x0000
电流ADC结果计数值。参见“电流通道ADC结果计数寄存器”部分。
0x0550
ADC0TH
2
RW
0x0000
电流ADC结果阈值。参见“电流通道ADC阈值寄存器”部分。
0x0554
ADC0TCL
1
RW
0x01
电流ADC结果阈值计数限值。参见“电流通道ADC阈值计数限值寄
存器”部分。
0x0558
ADC0THV
1
R
0x00
电流ADC结果阈值计数限值。参见“电流通道ADC阈值计数寄存
器”部分。
0x055C
ADC0ACC
4
R
0x00000000
电流ADC结果累加器。参见“电流通道ADC累加器寄存器”部分。
0x057C
ADCREF1
2
RW
N/A
低功耗模式基准电压源比例因子。参见“低功耗基准电压源比例因
子”部分。
1
由内核更新。
Rev. A | Page 37 of 132
ADuC7036
表24. UART基地址 = 0xFFFF0700
地址
名称
字节
访问类型
默认值
描述
0x0700
COMTX
1
W
N/A
UART发送寄存器。参见“UART Tx寄存器”部分。
COMRX
1
R
0x00
UART接收寄存器。参见“UART Rx寄存器”部分。
COMDIV0
1
RW
0x00
UART标准波特率发生器除数0。参见“UART除数锁存寄存器0”部分。
COMIEN0
1
RW
0x00
UART中断使能MMR 0。参见“UART中断使能寄存器0”部分和表84。
COMDIV1
1
RW
0x00
UART标准波特率发生器除数1。参见“UART除数锁存寄存器1”部分。
0x0708
COMIID0
1
R
0x01
UART中断标识0。参见“UART中断标识寄存器0”部分和表85。
0x070C
COMCON0
1
RW
0x00
UART控制寄存器0。参见“UART控制寄存器0”部分和表81。
0x0710
COMCON1
1
RW
0x00
UART控制寄存器1。参见“UART控制寄存器1”部分和表82。
0x0714
COMSTA0
1
R
0x60
UART状态寄存器0。参见“UART状态寄存器0”部分和表83。
0X072C
COMDIV2
2
RW
0x0000
UART小数分频器MMR。参见“UART小数分频器寄存器”部分和表86。
0x0704
表25. LIN硬件同步基地址 = 0XFFFF0780
地址
名称
字节
访问类型
默认值
描述
0x0780
LHSSTA
4
R
0x00000000
LHS状态MMR。参见“LIN硬件同步状态寄存器”部分和表92。
0x0784
LHSCON0
2
RW
0x0000
LHS控制MMR 0。参见“LIN硬件同步控制寄存器0”部分和表93。
0x0788
LHSVAL0
2
R
0x0000
LHS定时器0 MMR。参见“LIN硬件同步定时器0寄存器”部分。
0x078C
LHSCON1
1
RW
0x32
LHS控制MMR 1。参见“LIN硬件同步控制寄存器1”部分和表94。
0x0790
LHSVAL1
2
RW
0x0000
LHS定时器1 MMR。参见“LIN硬件同步中断定时器1寄存器”部分。
0x0794
LHSCAP
2
R
0x0000
LHS捕捉MMR。参见“LIN硬件同步捕捉寄存器”部分。
0x0798
LHSCMP
2
RW
0x0000
LHS比较MMR。参见“LIN硬件同步比较寄存器”部分。
表26. 高压接口基地址 = 0xFFFF0800
地址
名称
字节
访问类型
默认值
描述
0x0804
HVCON
1
RW
N/A
高压接口控制MMR。参见“高压接口控制寄存器”部分和表71及72。
0x080C
HVDAT
2
RW
N/A
高压接口数据MMR。参见“高压数据寄存器”部分和表73。
Rev. A | Page 38 of 132
ADuC7036
表27. STI基地址 = 0xFFFF0880
地址
名称
字节
访问类型
默认值
描述
0x0880
STIKEY0
4
W
N/A
STICON预写密钥。参见“串行测试接口密钥0寄存器”部分。
0x0884
STICON
2
RW
0x0000
串行测试接口控制MMR。参见“串行测试接口控制寄存器”部分
和表91。
0x0888
STIKEY1
4
W
N/A
STICON写后密钥。参见“串行测试接口密钥1寄存器”部分。
0x088C
STIDAT0
2
RW
0x0000
STI数据MMR 0。参见“串行测试接口数据0寄存器”部分。
0x0890
STIDAT1
2
RW
0x0000
STI数据MMR 1。参见“串行测试接口数据1寄存器”部分。
0x0894
STIDAT2
2
RW
0x0000
STI数据MMR 2。参见“串行测试接口数据2寄存器”部分。
表28. SPI基地址 = 0xFFFF0A00
地址
名称
字节
访问类型
默认值
描述
0x0A00
SPISTA
1
R
0x00
SPI状态MMR。参见“SPI状态寄存器”部分和表90。
0x0A04
SPIRX
1
R
0x00
SPI接收MMR。参见“SPI接收寄存器”部分。
0x0A08
SPITX
1
W
N/A
SPI发送MMR。参见“SPI发送寄存器”部分。
0x0A0C
SPIDIV
1
RW
0x1B
SPI波特率选择MMR。参见“SPI分频器寄存器”部分。
0x0A10
SPICON
2
RW
0x0000
SPI控制MMR。参见“SPI控制寄存器”部分和表89。
表29. GPIO基地址 = 0xFFFF0D00
地址
名称
字节
访问类型
默认值
描述
0x0D00
GP0CON
4
RW
0x11100000
GPIO端口0控制MMR。参见“GPIO端口0控制寄存器”部分和表59。
0x0D04
GP1CON
4
RW
0x10000000
GPIO端口1控制MMR。参见“GPIO端口1控制寄存器”部分和表60。
0x0D08
GP2CON
4
RW
0x01000000
GPIO端口2控制MMR。参见“GPIO端口2控制寄存器”部分和表61。
0x0D20
GP0DAT1
4
RW
0x000000XX
GPIO端口0数据控制MMR。参见“GPIO端口0数据寄存器”部分和表62。
0x0D24
GP0SET
4
W
N/A
GPIO端口0数据设置MMR。参见“GPIO端口0设置寄存器”部分和表65。
0x0D28
GP0CLR
4
W
N/A
GPIO端口0数据清0MMR。参见“GPIO端口0清0寄存器”部分和表68。
0x0D30
GP1DAT1
4
RW
0x000000XX
GPIO端口1数据控制MMR。参见“GPIO端口1数据寄存器”部分和表63。
0x0D34
GP1SET
4
W
N/A
GPIO端口1数据设置MMR。参见“GPIO端口1设置寄存器”部分和表66。
0x0D38
GP1CLR
4
W
N/A
GPIO端口1数据清0MMR。参见“GPIO端口1清0寄存器”部分和表69。
0x0D40
GP2DAT1
4
RW
0x000000XX
GPIO端口2数据控制MMR。参见“GPIO端口2数据寄存器”部分和表64。
0x0D44
GP2SET
4
W
N/A
GPIO端口2数据设置MMR。参见“GPIO端口2设置寄存器”部分和表67。
0x0D48
GP2CLR
4
W
N/A
GPIO端口2数据清0MMR。参见“GPIO端口2清0寄存器”部分和表70。
1
取决于外部GPIO引脚上的电平。
Rev. A | Page 39 of 132
ADuC7036
表30. Flash/EE基地址 = 0xFFFF0E00
地址
名称
字节
访问类型
默认值
描述
0x0E00
FEE0STA
1
R
0x20
Flash/EE状态MMR。
0x0E04
FEE0MOD
1
RW
0x00
Flash/EE控制MMR。
0x0E08
FEE0CON
1
RW
0x07
Flash/EE控制MMR。参见表13。
0x0E0C
FEE0DAT
2
RW
0x0000
Flash/EE数据MMR。
0x0E10
FEE0ADR
2
RW
非零
Flash/EE地址MMR。
0x0E18
FEE0SIG
3
R
0xFFFFFF
Flash/EE LFSR MMR。
0x0E1C
FEE0PRO
4
RW
0x00000000
Flash/EE保护MMR。参见“Flash/EE存储器安全性”部分和表16。
0x0E20
FEE0HID
4
RW
0xFFFFFFFF
Flash/EE保护MMR。参见“Flash/EE存储器安全性”部分和表16。
0x0E80
FEE1STA
1
R
0x20
Flash/EE状态MMR。
0x0E84
FEE1MOD
1
RW
0x00
Flash/EE控制MMR。
0x0E88
FEE1CON
1
RW
0x07
Flash/EE控制MMR。参见表13。
0x0E8C
FEE1DAT
2
RW
0x0000
Flash/EE数据MMR。
0x0E90
FEE1ADR
2
RW
0x0000
Flash/EE地址MMR。
0x0E98
FEE1SIG
3
R
0xFFFFFF
Flash/EE LFSR MMR。
0x0E9C
FEE1PRO
4
RW
0x00000000
Flash/EE保护MMR。参见“Flash/EE存储器安全性”部分和表17。
0x0EA0
FEE1HID
4
RW
0xFFFFFFFF
Flash/EE保护MMR。参见“Flash/EE存储器安全性”部分和表17。
Rev. A | Page 40 of 132
ADuC7036
16位Σ-ΔADC
ADuC7036内置了两个独立的Σ-Δ ADC:电流通道ADC
Σ-Δ调制器将采样输入信号转换成占空比包含数字信息的
(I-ADC)和电压/温度通道ADC(V-/T-ADC)。这些精确
数字脉冲序列。然后使用一个修正Sinc3可编程、低通滤波
测量通道集成了片内缓冲、可编程增益放大器、16位Σ-Δ
器来抽取调制器输出数据流以提供16位数据转换结果,在
调制器和数字滤波以在12V汽车电池系统中精确测量电
正常模式下可编程输出速率在4 Hz至8 kHz范围内而在低
流、电压和温度变量。
功耗模式下在1 Hz至2 kHz范围内。
电流通道ADC(I-ADC)
I-ADC还内置了计数器、比较器和累加器逻辑,从而允许
I-ADC结果在预定转换数目或I-ADC结果超过可编程阈值
I-ADC转换外部100 μΩ分流电阻感应的电池电流。片内可
后产生中断。同时支持快速ADC超量程功能。使能此功能
编程增益意味着,I-ADC可配置处理±1 A至±1500 A的电池
后,32位累加器会自动对16位I-ADC结果求和。
电流量。
在电流通道上获得第一个有效(完全稳定)结果的时间为
如图17所示,I-ADC采用Σ-Δ转换技术来获得16位无失码
斩波 模式 禁 用的 三个ADC转 换周 期和 斩波 使能 的 两个
性能。
ADC转换周期。
Rev. A | Page 41 of 132
图 17. 电流 ADC 顶层概览
Rev. A | Page 42 of 132
07474-017
VREF/136 VOLTAGE INPUT.
ANALOG INPUT
DIAGNOSTIC
VOLTAGE SOURCE
GND
VREF/136
IIN–
IIN+
REG_AVDD REG_AVDD
TWO 50µA IIN+ AND IIN–
CURRENT SOURCES.
ANALOG INPUT DIAGNOSTIC
CURRENT SOURCES
CHOP
BUF
THE INTERNAL 5ppm/°C
REFERENCE IS ROUTED TO
THE ADC BY DEFAULT. AN
EXTERNAL REFERENCE ON
THE VREF PIN CAN ALSO
BE SELECTED.
VREF
INTERNAL
REFERENCE
Σ-Δ
MODULATOR
GAIN
COEFFICIENT
OFFSET
COEFFICIENT
THE ADC RESULT IS
COMPARED TO A
PRESET THRESHOLD.
DIGITAL COMPARATOR
THE SINC3 FILTER REMOVES
QUANTIZATION NOISE INTRODUCED
BY THE MODULATOR. THE UPDATE
RATE AND BANDWIDTH OF THIS
FILTER ARE PROGRAMMABLE VIA
THE ADCFLT MMR.
PROGRAMMABLE
DIGITAL FILTER
THE OUTPUT WORD FROM
THE DIGITAL FILTER IS
SCALED BY THE CALIBRATION
COEFFICIENTS BEFORE BEING
PROVIDED AS THE
CONVERSION RESULT.
OUTPUT SCALING
PROGRAMMABLE
DIGITAL FILTER
CHOP
THE Σ-Δ
ARCHITECTURE
ENSURES 16 BITS
NO MISSING CODES.
ADC
THRESHOLD
ADC
RESULT
OUTPUT
FORMAT
OUTPUT
AVERAGE
Σ-Δ ADC
Σ-Δ MODULATOR
THE MODULATOR PROVIDES A
HIGH FREQUENCY, 1-BIT DATA
STREAM (THE OUTPUT OF
WHICH IS ALSO CHOPPED) TO
THE DIGITAL FILTER, THE DUTY
CYCLE OF WHICH REPRESENTS
THE SAMPLED ANALOG INPUT
VOLTAGE.
Σ-Δ ADC
THE PROGRAMMABLE
GAIN AMPLIFIER ALLOWS
EIGHT BIPOLAR INPUT
RANGES FROM ±2.3mV TO
±1.2V (INT VREF = +1.2V).
PROGRAMMABLE GAIN
AMPLIFIER
PRECISION REFERENCE
THE BUFFER
AMPLIFIER PRESENTS
A HIGH IMPEDANCE
INPUT STAGE FOR
THE PGA DRIVING THE
Σ-Δ MODULATOR.
BUFFER AMPLIFIER
PGA
THE INPUTS ARE
ALTERNATELY REVERSED
THROUGH THE
CONVERSION CYCLE.
ANALOG INPUT
PROGRAMMABLE
CHOPPING
OUTPUT AVERAGE
COUNTS UP IF ADC
RESULTS > THRESHOLD;
COUNTS DOWN/RESETS IF
ADC RESULT < THRESHOLD.
GENERATES AN INTERRUPT
ON COUNTER OVERFLOW.
THRESHOLD COUNTER
THRESHOLD
COUNTER
ADC RESULT
COUNTER
ADC
RESULT
ADC RESULT COUNTER
GENERATES AN ADC
RESULT FROM ANY
ONE OF FOUR
SOURCES.
ADC INTERRUPT
GENERATOR
ACCUMULATES THE
ADC RESULT.
ADC ACCUMULATOR
COUNTS ADC RESULTS,
GENERATES AN INTERRUPT
ON COUNTER OVERFLOW.
ADC RESULT
ACCUMULATOR
GENERATES AN ADC
INTERRUPT IF THE CURRENT
INPUT IS GROSSLY
OVERRANGED.
ADC FAST OVERRANGE
AS PART OF THE CHOPPING
IMPLEMENTATION, EACH
DATA-WORD OUTPUT FROM
THE FILTER IS SUMMED AND
AVERAGED WITH ITS
PREDECESSOR.
ADC
INTERRUPT
ADuC7036
ADuC7036
电压/温度通道ADC(V-/T-ADC)
外部电池电压(VBAT)通过一个片内、高压(24分频)
电压/温度通道ADC(V-/T-ADC)转换电压和温度等其他
电阻衰减器送到ADC输入端。选择电压衰减器输入端会自
电池参数。此通道输入可多路复用三个输入源中的一个:
动使能电压衰减器缓冲。
外部电压、外部温度传感器电路或片内温度传感器。
电池温度可通过片内温度传感器或外部温度传感器输入来
和电流通道ADC (I-ADC)一样,V-/T-ADC运用了相同的
导出。在电压/温度通道上切换输入通道后获得第一个有效
Σ-Δ转换技术,包括一个修正Sinc3低通滤波器以在4Hz至
(完全稳定)结果的时间为斩波模式禁用的三个ADC转换
8kHz的可编程输出速率下提供16位数据转换结果。由于已
周期。
在电压通道内实现,不需要外部RC滤波器网络。
此ADC同样经过缓冲,但不同于电流通道,在VTEMP上具
有0 V至VREF和在VBAT上0 V至28.8 V的固定输入范围(假
定内部基准电压为1.2 V)。信号链顶层概览如图18所示。
DIFFERENTIAL
ATTENUATOR
BUFFER AMPLIFIERS
DIVIDE-BY-24 INPUT
ATTENUATOR
THE BUFFER AMPLIFIERS
PRESENT A HIGH
IMPEDANCE INPUT STAGE
FOR THE ANALOG INPUT.
ANALOG INPUT
PROGRAMMABLE CHOPPING
THE INPUTS ARE
ALTERNATELY REVERSED
THROUGH THE CONVERSION
CYCLE.
Σ-Δ MODULATOR
Σ-Δ ADC
OUTPUT AVERAGE
THE MODULATOR PROVIDES A
HIGH FREQUENCY, 1-BIT DATA
STREAM (THE OUTPUT OF
WHICH IS ALSO CHOPPED) TO
THE DIGITAL FILTER, THE DUTY
CYCLE OF WHICH REPRESENTS
THE SAMPLED ANALOG INPUT
VOLTAGE.
THE Σ-Δ
ARCHITECTURE
ENSURES 16 BITS OF
NO MISSING CODES.
AS PART OF THE CHOPPING
IMPLEMENTATION, EACH
DATA-WORD OUTPUT FROM
THE FILTER IS SUMMED AND
AVERAGED WITH ITS
PREDECESSOR.
VBAT
45Ω
BUF
Σ-Δ ADC
Σ-Δ
MODULATOR
1Ω
BUF
CHOP
MUX
VTEMP
INTERNAL
TEMPERATURE
OUTPUT
AVERAGE
PROGRAMMABLE
DIGITAL FILTER
CHOP
OFFSET
COEFFICIENT
INTERNAL
REFERENCE
GAIN
COEFFICIENT
VREF
PRECISION REFERENCE
THE INTERNAL 5ppm/°C
REFERENCE IS ROUTED TO
THE ADC BY DEFAULT. AN
EXTERNAL REFERENCE ON
THE VREF PIN CAN ALSO
BE SELECTED.
OUTPUT SCALING
THE OUTPUT WORD FROM
THE DIGITAL FILTER IS
SCALED BY THE CALIBRATION
COEFFICIENTS BEFORE BEING
PROVIDED AS THE
CONVERSION RESULT.
PROGRAMMABLE
DIGITAL FILTER
THE SINC3 FILTER REMOVES
QUANTIZATION NOISE INTRODUCED
BY THE MODULATOR. THE UPDATE
RATE AND BANDWIDTH OF THIS
FILTER ARE PROGRAMMABLE VIA
THE ADCFLT MMR.
图 18. 电压/温度 ADC 顶层概览
Rev. A | Page 43 of 132
OUTPUT
FORMAT
ADC
RESULT
TO VOLTAGE OR
TEMPERATURE
DATA MMR
ADC
INTERRUPT
ADC INTERRUPT GENERATOR
GENERATES AN ADC
INTERRUPT AFTER A VOLTAGE
OR TEMPERATURE
CONVERSION IS COMPLETED.
07474-018
2Ω
ADuC7036
GND_SW
ADC接地开关
ADCCFG[7]
ADuC7036具有一个集成的接地开关引脚GND_SW(引脚
15)。通过这个开关,用户可以将外部设备与接地动态断
20kΩ
ADCMDE[6]
07474-020
开,代之使用直接接地或20 kΩ电阻接地。这个附加电阻可
以减少NTC电路的外部元件数目。接地开关功能有利于降
图 20. 内部接地开关配置
低特定应用电路板的功耗。
ADCCFG[7]和ADCMDE[6]的所有可能组合如表31所示。
应用实例如图19所示。
REG_AVDD
表31. GND_SW配置
REG_AVDD
ADCCFG[7]
0
0
1
1
RREF
VTEMP
VTEMP
NTC
NTC
GND_SW
07474-019
GND_SW
20kΩ
ADCMDE[6]
0
1
0
1
GND_SW
悬空
悬空
直接接地
通过20 kΩ电阻接地
ADC噪声性能表
图 19. 外部温度传感器电路实例
图19显示在两种模式下连接的外部NTC:使用内部20 kΩ电
表32、33及34列出了I-ADC和V-/T-ADC在某些典型输出更
阻和通过GND_SW直接接地。
新速率下的输出均方根噪声(单位毫伏)。这些数据都为
如 图 20 所 示 , ADCCFG[7] 控 制 接 地 开 关 的 接 地 , 而
典型值并在差分输入电压0V时产生。输出均方根噪声是指
ADCMDE[6]控制GND_SW电阻。
在ADC直流输入信号时输出代码分布的标准差(或1 Σ)。
以毫伏均方根表示(μV rms)。
表32. 电流通道ADC在正常功耗模式下的典型输出均方根噪声
ADCFLT 数据更
新速率 ±2.3 mV
(512)
OxBFI D 4 Hz
0.040 μV
0x961F
10 Hz 0.060 μV
0x007F
50 Hz 0.142 μV
0x0007
1 kHz 0.620 μV
0x0000
8 kHz 2.000 μV
1
ADC输入范围
±4.6 mV
(256)
0.040 μV
0.060 μV
0.142 μV
0.620 μV
2.000 μV
±4.68 mV
(128)
0.043 μV
0.060 μV
0.144 μV
0.625 μV
2.000 μV
±18.75
mV (64)
0.045 μV
0.065 μV
0.145 μV
0.625 μV
2.000 μV
±37.5 mV
(32)
0.087 μV
0.087 μV
0.170 μV
0.770 μV
2.650 μV
±75 mV
(16)
0.175 μV
0.175 μV
0.305 μV
1.310 μV
4.960 μV
±150 mV
(8)
0.35 μV
0.35 μV
0.380 μV
1.650 μV
8.020 μV
±300 mV
(41)
0.7 μV
0.7 μV
0.7 μV
2.520 μV
15.0 μV
最大绝对输入电压允许范围:对地−200 mV至+300 mV。
表33. 电压通道ADC的典型输出均方根噪声(折合到ADC电压衰减器输入)
ADCFLT
0xBF1D
0x961F
0x0007
0x0000
ADC输入范围28.8 V
65 μV
65 μV
180 μV
1600 μV
数据更新速率
4 Hz
10 Hz
1 kHz
8 kHz
表34. 温度通道ADC的典型输出均方根噪声
ADCFLT
0xBF1D
0x961F
0x0007
0x0000
ADC输入范围0 V至1.2 V
2.8 μV
2.8 μV
7.5 μV
55 μV
数据更新速率
4 Hz
10 Hz
1 kHz
8 kHz
Rev. A | Page 44 of 132
±600 mV
(21)
1.4 μV
1.4 μV
2.3 μV
7.600 μV
55.0 μV
±1.2 V
(11)
2.8 μV
2.8 μV
2.8 μV
7.600 μV
55.0 μV
ADuC7036
ADC MMR接口
ADC利用多个MMR实现控制和配置,详见“ADC状态寄存
器”部分至“低功耗基准电压源比例因子”部分。
ADCSTA MMR所有高八位(位[8:15])只定义为标志位,
不产生中断。MMR低八位(位[0:7])的所有位为逻辑或向
MCU内核产生一个ADC中断。为了响应ADC中断,用户代
码将会查询ADCSTA MMR以确定中断源。如“ADC中断屏
蔽 寄 存 器 ” 部 分 所 述 , 每 个 ADC 中 断 源 都 可 以 通 过
ADCMSKI MMR单独屏蔽。
所有ADC结果就绪位在ADC0DAT MMR读取后即被清0。
如果电流通道ADC没有使能,那么所有ADC结果就绪位在
读取ADC1DAT或ADC2DAT MMR后被清0。
为了确保I-ADC和V-/T-ADC转换数据能够同步,用户代码
应先读取ADC1DAT MMR,然后再读取ADC0DAT MMR。
只有先清0对应ADC结果就绪位,才能将新ADC转换结果
写入到ADCxDAT MMR。这条规则的唯一例外情况是,数
据转换结果正好在ARM内核断电时更新。在此模式下,即
使没有清0就绪位,ADCxDAT寄存器仍始终保存最近一次
的ADC转换结果。
ADC状态寄存器
名称:ADCSTA
地址:0xFFFF0500
默认值:0x0000
访问类型:只读
功能:该只读寄存器保持ADC工作模式或电流状态相关的
一般状态信息。
表35. ADCSTA MMR位分配
位
描述
15
ADC校准状态。
硬件自动置1,指示ADC校准周期已完成。ADCMDE写入后清0。
14
ADC温度转换错误。
硬件自动置1,指示发生温度转换超量程或欠量程。此时将转换结果箝位至负满量程(欠量程错误)或正满量程(超量
程错误)。有效(量程内)温度转换结果写入ADC2DAT寄存器后清0。
13
ADC电压转换错误。
硬件自动置1,指示发生电压转换超量程或欠量程。此时将转换结果箝位至负满量程(欠量程错误)或正满量程(超量
程错误)。将有效(量程内)电压转换结果写入ADC1DAT寄存器后清0。
12
ADC电流转换错误。
硬件自动置1,指示发生电压转换超量程或欠量程。此时将转换结果箝位至负满量程(欠量程错误)或正满量程(超量
程错误)。将有效(量程内)电流转换结果写入ADC0DAT寄存器后清0。
11至5
未使用。这些位保留供未来其他功能使用,不必由用户代码监控。
4
电流通道ADC比较器阈值。仅在电流通道ADC比较器由ADCCFG MMR使能时有效。在I-ADC转换结果绝对值大于
ADC0TH MMR写入值时由硬件置1。但如果使用ADC阈值计数器(ADC0TCL),仅在指定I-ADC转换次数等于ADC0THV
MMR值时置1。
重新配置ADC或禁用比较器后硬件自动清0。
3
电流通道ADC超量程位。
当通过ADCCFG MMR使能超量程检测功能且I-ADC输入明显(约>30%)超量程时硬件置1。每隔125 μs更新一次。
仅当ADCCFG[2]清0以禁用此功能或通过ADC0CON MMR修改ADC增益时由软件清0。
2
温度转换结果就绪位。
当温度通道ADC使能后,一将有效温度转换结果写入温度数据寄存器(ADC2DAT MMR)便由硬件置1。每次校准结
束后也会置1。读取ADC2DAT或ADC0DAT后即清0。
1
电压转换结果就绪位。
当电压通道ADC使能后,一将有效电压转换结果写入电压数据寄存器(ADC1DAT MMR)便由硬件置1。每次校准结
束后也会置1。读取ADC1DAT或ADC0DAT后即清0。
0
电流转换结果就绪位。
当电流通道ADC使能后,一将有效电流转换结果写入电流数据寄存器(ADC0DAT MMR)便由硬件置1。每次校准结
束后也会置1。读取ADC0DAT后即清0。
Rev. A | Page 45 of 132
ADuC7036
ADC中断屏蔽寄存器
名称:ADCMSKI
地址:0xFFFF0504
默认值:0x00
访问类型:读写
功能:该寄存器允许ADC中断源单独使能。此寄存器的位位置和ADCSTA MMR的低八位一样。若一位由用户代码置1,
相应中断使能。默认情况下,所有位为0,表示禁用所有ADC中断源。
ADC模式寄存器
名称:ADCMDE
地址:0xFFFF0508
默认值:0x00
访问类型:读写
功能:该8位寄存器配置ADC子系统的工作模式。
表36. ADCMDE MMR位分配
位
描述
7
未使用。该位保留供未来使用,应由用户代码写入0。
6
20 kΩ电阻选择。
置1选择20 kΩ电阻,如图20所示。
置0选择直接接地路径,如图20所示(默认)。
5
低功耗模式基准电压选择。
置1在低功耗模式或超低功耗模式下使能精密基准电压源,导致功耗增加。
置0以在低功耗模式或超低功耗模式下使能低功耗基准电压源(默认)。
4至3
ADC功耗模式配置。
00 = ADC正常模式。使能后ADC以正常功耗工作,获得最佳电气性能。
01 = ADC低功耗模式。使能后I-ADC以低功耗工作。主要是通过将增益固定为128并利用片内低功耗(131 kHz)振荡器
直接驱动ADC电路来实现(牺牲ADC噪声性能)来实现。
10 = ADC超低功耗模式。使能后ADC以低功耗工作。在此模式下增益固定为512且功耗约200 μA,高于ADC低功耗模式。
功耗更高同时确保了ADC噪声性能优于ADC低功耗模式。
11 = 未定义。
2至0
ADC工作模式配置。
000 = ADC断电模式。所有ADC电路(包括内部基准电压)断电。
001 = ADC连续转换模式。在此模式下任何使能后ADC连续转换。
010 = ADC单转换模式。在此模式下任何使能ADC执行一次转换。ADC在完成单次转换后进入空闲模式。取决于斩波模
式,单次转换耗费两到三个ADC时钟周期。
011 = ADC空闲模式。在此模式下ADC完全上电,但保持复位状态。
100 = ADC自失调校准。在此模式下利用内部生成的0V对任何使能ADC进行失调校准。校准是在用户编程的ADC设置下
进行的;因此,和正常单次ADC转换一样,需要两到三个ADC转换周期,校准结果才能完全建立。然后自动写入对应
ADC的ADCxOF MMR。失调校准周期结束后,ADC返回空闲模式并设置校准和转换就绪状态位。
101 = ADC自增益校准。在此模式下,参照内部基准电压校准所有使能后ADC的增益。增益校准分两阶段,耗时是失调
校准的两倍。校准结果自动写入对应ADC的ADCxGN MMR。增益校准周期结束后,ADC返回空闲模式并设置校准和转
换就绪状态位。只有电流通道ADC才能进行自增益校准。电压温度测量应使用编程、工厂校准的系数(内部Flash/EE自
动下载)。在使用外部NTC的情况下,应对温度通道进行自校准。
110 = ADC系统零电平校准。在此模式下参照ADC输入引脚处驱动的外部零电平电压对使能ADC通道进行零电平校准。
校准是在用户编程的ADC设置下进行的;因此,和正常单次ADC转换一样,需要三个ADC转换周期,校准结果才能完
全建立。
111 = ADC系统满量程校准。在此模式下参照ADC输入引脚处驱动的外部满量程电压对使能ADC通道进行满量程校准。
Rev. A | Page 46 of 132
ADuC7036
电流通道ADC控制寄存器
名称:ADC0CON
地址:0xFFFF050C
默认值:0x0000
访问类型:读写
功能:该16位寄存器用于配置I-ADC。
注意,在ADC0CON内重新配置电流ADC后,电压和温度ADC也会复位。
表37. ADC0CON MMR位分配
位
描述
15
电流通道ADC使能。
由用户代码置1使能I-ADC。
清零0,I-ADC断电并将ADCSTA MMR中的对应ADC就绪位复位为0。
14, 13
IIN电流源使能。
00 = 电流源关闭。
01 = 在IIN+上使能50 μA电流源。
10 = 在IIN-上使能50 μA电流源。
11 = 同时在IIN-和IIN+上使能50 μA电流源。
12至10
未使用。这些位保留供未来其他功能使用,应写入0。
9
电流通道ADC输出编码。
用户代码置1将I-ADC输出编码配置为单极性。
用户代码清0将I-ADC输出编码配置为二进制补数。
8
未使用。这些位保留供未来其他功能使用,应写入0。
7, 6
电流通道ADC输入选择。
00 = 选择IIN+、IIN-。
01 = 选择IIN-、IIN-。诊断性、内部短路配置。
10 = Vref/136,0 V,诊断性、测试电压,适用于增益设置 ≤ 128。注意,如果选择(REG_AVDD, AGND)二分频基准电
压,则在此模式下使用REG_AVDD作为VREF。从而导致将ADC0DAT比例缩放2。
11 = 未定义。
5, 4
电流通道ADC基准电压选择。
00 = 选择内部1.2 V精密基准电压。在ADC低功耗模式下,基准电压选择由ADCMDE[5]控制。
01 = 选择外部基准电压输入(VREF, GND_SW)。
10 = 选择外部基准电压输入二分频(VREF, GND_SW)/2,从而允许高达REG_AVDD的外部基准电压。
11 =选择(REG_AVDD, AGND)二分频。
3至0
电流通道ADC增益选择。标称I-ADC满量程输入电压 =(VREF/增益)
0000 = I-ADC增益1。
0001 = I-ADC增益2。
0010 = I-ADC增益4。
0011 = I-ADC增益8。
0100 = I-ADC增益16。
0101 = I-ADC增益32。
0110 = I-ADC增益64。
0111 = I-ADC增益128。
1000 = I-ADC增益256。
1001 = I-ADC增益512。
1xxx = I-ADC增益未定义。
Rev. A | Page 47 of 132
ADuC7036
电压/温度通道ADC控制寄存器
名称:ADC1CON
地址:0xFFFF0510
默认值:0x0000
访问类型:读写
功能:该16位寄存器用来配置V-/T-ADC。
注意,选择VBAT衰减器输入后,电压衰减器或缓冲会自动使能。
表38. ADC1CON MMR位分配
位
描述
15
电压/温度通道ADC使能。
用户代码置1使能V-/T-ADC。
清0V-/T-ADC断电。
14, 13
VTEMP电流源使能。
00 = 电流源关闭。
01 = 在VTEMP上使能50 μA电流源。
10 = 在GND_SW上使能50 μA电流源。
11 = 在VTEMP和GND_SW上使能50 μA电流源。
12至10
未使用。这些位保留供未来其他功能使用,不能由用户代码修改。
9
电压/温度通道ADC输出编码。
用户代码置1将V-/T-ADC输出编码配置为单极性。
用户代码清0将V-/T-ADC输出编码配置为二进制补码。
8
未使用。该位保留供未来使用,应由用户代码写入0。
7, 6
电压/温度通道ADC输入选择。
00 = VBAT/24,AGND。选择VBAT衰减器。该配置中高压缓冲自动使能。
01 = VTEMP,GND_SW。选择外部温度输入,转换结果写入ADC2DAT。
10 = 内部传感器。选择内部温度传感器输入,转换结果写入ADC2DAT。温度梯度为0.33 mV/°C;仅适用于内部温度
传感器。
11 = 内部短路。短路输入。
5, 4
电压/温度通道ADC基准电压选择。
00 = 选择内部1.2 V精密基准电压。
01 = 选择外部基准电压输入(VREF,GND_SW)。
10 = 选择外部基准电压输入二分频(VREF,GND_SW)/2。允许高达REG_AVDD的外部基准电压。
11 =选择(REG_AVDD,AGND)/2用于电压通道。选择(REG_AVDD,GND_SW)/2用于温度通道。
3至0
未使用。这些位保留供未来其他功能使用,不能由用户代码写入0。
Rev. A | Page 48 of 132
ADuC7036
ADC滤波器寄存器
名称:ADCFLT
地址:0xFFFF0518
默认值:0x0007
访问类型:读写
功能:该16位寄存器控制片内ADC的速度和分辨率。
注意,若ADCFLT被修改,电流和电压/温度ADC会复位。
表39. ADCFLT MMR位分配
位
描述
15
斩波使能。
由用户置1使能所有激活的ADC的系统斩波。该位置1后,ADC失调误差和漂移很低,但在AF = 0时输出速率降为原来
的三分之一(见此表中的Sinc3抽取系数位[6:0])。AF > 0时,输出更新速率在斩波开启或关闭时均相同。斩波使能时,
建立时间为两个输出周期。
14
移动平均。
使能除二移动平均功能,以便降低ADC噪声。在斩波激活时,自动使能。斩波不激活时可选,且使能后(斩波不激活
时)不会降低ADC输出速率,而将建立时间增加一个转换周期。清0禁用移动平均功能。
13至8
平均系数(AF)。这些位写入值用来实现可编程一阶Sinc3后滤波器。如此表中Sinc3抽取系数位[6:0]中所述,平均系数
可以进一步降低ADC噪声,但会牺牲输出噪声。
7
Sinc3修正。
修正标准Sinc3频率响应以将滤波器阻带抑制增加约5dB。通过插入第二个陷波(NOTCH2) fNOTCH2 = 1.333 x fNOTCH,即可实
现,其中fNOTCH是响应中第一个陷波所在位置。
6至0
Sinc3抽取系数(SF)。1 写入这些位的值(SF)控制Sinc3滤波器的过采样(抽取系数)。当斩波位(位15,斩波使能)
= 0且平均系数(AF) = 0时,Sinc3滤波器的输出速率fADC = (512,000/([SF + 1] x 64)) Hz2,以上公式适用于所有SF值≤ 125。
SF = 126时,强制fADC为60 Hz。
SF = 127时,强制fADC为50 Hz。
有关SF(不包括126和127)和AF值的fADC 计算信息,见表40。
1
2
由于数字滤波器内部数据路径有限,可以用来产生所需ADC输出速率的Sinc3抽取系数(SF)和平均系数(AF)的组合也有限。此约束在正常功耗模式
下将最低ADC更新速率限制为4Hz或在更低功耗模式下限制为1Hz。
在低功耗模式和超低功耗模式下,ADC由低功耗振荡器(131kHz)直接驱动而非512kHz。计算fADC时都应(约)除以4。
Rev. A | Page 49 of 132
ADuC7036
表40. ADC转换速率和建立时间
tSETTLING1
斩波使能
平均系数
移动平均
fADC
否
否
否
否
否
是
否
是
否
否
是
是
是
N/A
N/A
512,000
[ SF + 1] × 64
512,000
[ SF + 1] × 64
512,000
[ SF + 1] × 64 × [3 + AF ]
512,000
[ SF + 1] × 64 × [3 + AF ]
512,000
[ SF + 1] × 64 × [3 + AF ] + 3
1
3
f ADC
4
f ADC
1
f ADC
2
f ADC
2
f ADC
在第一个ADC可以使用前每个ADC需要约60 μs的额外时间。
表41. SF和AF的允许组合
AF范围
SF
0
1至7
8至63
0至31
是
是
是
32至63
是
是
否
64至127
是
否
否
Rev. A | Page 50 of 132
ADuC7036
ADC配置寄存器
名称:ADCCFG
地址:0xFFFF051C
默认值:0x00
访问类型:读写
功能:该8位ADC配置MMR控制片内ADC相关的扩展功能。
表42. ADCCFG MMR位分配
位
描述
7
模拟接地开关使能。
用户软件置1将外部GND_SW引脚(引脚15)接到内部模拟地基准点。在程序控制下可用于将外部电路和部件接地和断
开,从而在将外部电路或元件不用时将直流功耗降到最低。该位与ADCMDE[6]配合可选择20kΩ电阻接地。
用户代码清0断开外部GND_SW引脚。
6, 5
电流通道(32位)累加器使能。
00 = 累加器禁用并复位为0。一次完整ADC转换(ADCSTA[0]设置两次)结束后必须禁用累加器,然后再使能以确保累
加器复位。
01 = 累加器激活。
正电流值相加到累加器总数;如果允许转换次数超过65,535次,累加器可能溢出。
负电流值从累加器总数中减去;累加器箝位到最小值0。
10 = 累加器激活。
正电流值相加到累加器总数;如果允许转换次数超过65,535次,累加器可能溢出。负电流的绝对值从累加器总数中减去;
在此模式下累加器继续在0以下负累加。
11 = 未定义。
4, 3
电流通道ADC比较器使能。
00 = 比较器禁用。
01 = 比较器激活,如果I-ADC转换结果绝对值|I| ≥ ADC0TH,则中断断言。
10 = 比较器计数模式激活,如果对于ADC0TCL转换次数,I-ADC转换结果绝对值|I| ≥ ADC0TH,则中断断言。转换值|I|
< ADC0TH,计数器阈值(ADC0THV)复位为0。
11 = 比较器计数模式激活,如果对于ADC0TCL转换次数,I-ADC转换结果绝对值|I| ≥ ADC0TH,则中断断言。转换值|I|
< ADC0TH,向0递减计数器阈值(ADC0THV)。
2
电流通道ADC超量程使能。
用户置1以在电流通道ADC上使能粗调比较器。如果电流读数对于有效增益设置明显(约>30%)超量程,则设置ADCSTA
MMR的超量程位。
电流必须超出此范围持续125 μs以上标志位才能置1。在ADC低功耗模式下不应使用此项功能。
用户代码清0禁用超量程功能。
1
未使用。该位保留供未来使用,应由用户代码写入0。
0
电流通道ADC结果计数器使能。
置1使能结果计数模式。在此模式下,仅当ADC0RCV = ADC0RCL时产生I-ADC中断。这样不仅允许I-ADC持续监控电流,
而且在达到预定转换次数后中断MCU内核。使能后,电压/温度ADC也会继续转换,但同样,发生ADC计数器中断时只
保存最后一次转换结果(不存储中间V-/T-ADC转换结果)。
Rev. A | Page 51 of 132
ADuC7036
电压通道ADC失调校准寄存器
电流通道ADC数据寄存器
名称:ADC1OF
名称:ADC0DAT
地址:0xFFFF0534
地址:0xFFFF0520
默认值:视器件而定,工厂设置
默认值:0x0000
访问类型:读写
访问类型:只读
功能:该ADC数据MMR保持I-ADC的16位转换结果。ADC0
转换结果就绪位(ADCSTA[0])置1后ADC不能更新此
MMR 。 MCU 读 取 该 MMR 后 即 清 0 所 有 断 言 就 绪 标 志
(ADCSTA[2:0])。
电压通道ADC数据寄存器
功能:该ADC失调MMR保持电压通道的16位失调校准系
数。上电时该寄存器配置为出厂默认值。但是,如果用户
通过ADCMDE MMR位对电压通道进行失调校准,寄存器
自动覆写。用户代码只有在ADC处于空闲模式时才能写入
该校准寄存器。在写入任何失调或增益寄存器前ADC必须
使能并且处于空闲模式。空闲模式必须持续至少23 μs。
名称:ADC0DAT
温度通道ADC失调校准寄存器
地址:0xFFFF0524
名称:ADC2OF
默认值:0x0000
地址:0xFFFF0538
访问类型:只读
默认值:视器件而定,工厂设置
功能:该ADC数据MMR保持V-/T-ADC的16位电压转换结
果。电压转换结果就绪位(ADCSTA[1])置1后ADC不能
更新此MMR。如果I-ADC未激活,MCU读取此MMR即清0
所有断言就绪标志(ADCSTA[2:1])。
访问类型:读写
温度通道ADC数据寄存器
名称:ADC2DAT
地址:0xFFFF0528
功能:该ADC失调MMR保持温度通道的16位失调校准系
数。上电时该寄存器配置为出厂默认值。但是,如果用户
通过ADCMDE MMR位对温度通道进行失调校准,寄存器
自动覆写。用户代码只有在ADC处于空闲模式时才能写入
该校准寄存器。在写入任何失调或增益寄存器前ADC必须
使能并且处于空闲模式。空闲模式必须持续至少23 μs。
电流通道ADC增益校准寄存器
默认值:0x0000
访问类型:只读
名称:ADC0GN
功能:该ADC数据MMR保持V-/T-ADC的16位温度转换结
果。温度转换结果就绪位(ADCSTA[2])置1后禁止ADC
更新此MMR。如果I-ADC和V-ADC未激活,MCU读取此
MMR即清0所有断言就绪标志(ADCSTA[2])。此MMR
读取后即清0ADCSTA[2]。
地址:0xFFFF053C
电流通道ADC失调校准寄存器
名称:ADC0OF
地址:0xFFFF0530
默认值:视器件而定,工厂设置
默认值:视器件而定,工厂设置
访问类型:读写
功能:该增益MMR保持比例调整I-ADC转换结果的16位增
益校准系数。上电时该寄存器配置为出厂默认值。但是,
如果用户通过ADCMDE MMR位对I-ADC进行增益校准,
寄存器自动覆写。用户代码只有在ADC处于空闲模式时才
能写入该校准寄存器。在写入任何失调或增益寄存器前
ADC必须使能并且处于空闲模式。空闲模式必须持续至少
23 μs。
访问类型:读写
功能:该ADC失调MMR保持I-ADC的16位失调校准系数。
上电时该寄存器配置为出厂默认值。但是,如果用户通过
ADCMDE MMR位对I-ADC进行失调校准,寄存器自动覆
写。用户代码只有在ADC处于空闲模式时才能写入该校准
寄存器。在写入任何失调或增益寄存器前ADC必须使能并
且处于空闲模式。空闲模式必须持续至少23 μs。
Rev. A | Page 52 of 132
ADuC7036
电流通道ADC结果计数寄存器
电压通道ADC增益校准寄存器
名称:ADC0RCV
名称:ADC1GN
地址:0xFFFF054C
地址:0xFFFF0540
默认值:0x0000
默认值:视器件而定,工厂设置
访问类型:只读
访问类型:读写
功能:该增益MMR可保持比例调整电压通道转换结果的16
位增益校准系数。上电时该寄存器配置为出厂默认值。但
是,如果用户通过ADCMDE MMR位对电压通道进行增益
校准,寄存器自动覆盖。用户代码只有在ADC处于空闲模
式时才能写入该校准寄存器。在写入任何失调或增益寄存
器前ADC必须使能并且处于空闲模式。空闲模式必须持续
至少23 μs。
功能:该16位只读MMR可保持I-ADC转换结果的当前数
值。和ADC0RCL配合产生I-ADC中断屏蔽,从而产生较低
的中断速率。ADC0RCV = ADC0RCL时,ADC0RCV值复
位至0并重新开始计数。还可配合累加器(ADC0ACC)一
起计算电流均值。通过ADCCFG[0]使能。当重新配置I-ADC
时,即当写入ADC0CON或ADCMDE时,复位至0。
电流通道ADC阈值寄存器
温度通道ADC增益校准寄存器
名称:ADC0TH
名称:ADC2GN
地址:0xFFFF0550
地址:0xFFFF0544
默认值:0x0000
默认值:视器件而定,工厂设置
访问类型:读写
访问类型:读写
功能:该16位MMR可设置阈值以和转换结果绝对值进行比
较。在单极性模式下,和ADC0TH[15:0]比较,而在二进制
补码模式下,和ADC0TH[14:0]比较。
功能:该增益MMR可保持比例调整温度通道转换结果的16
位增益校准系数。上电时该寄存器配置为出厂默认值。但
是,如果用户通过ADCMDE MMR位对温度通道进行增益
校准,寄存器自动覆盖。用户代码只有在ADC处于空闲模
式时才能写入该校准寄存器。在写入任何失调或增益寄存
器前ADC必须使能并且处于空闲模式。空闲模式必须持续
至少23 μs。
电流通道ADC阈值计数限值寄存器
名称:ADC0TCL
地址:0xFFFF0554
默认值:0x01
访问类型:读写
电流通道ADC结果计数器限值寄存器
功能:该8位MMR可决定在设置ADCSTA MMR的I-ADC比
较器阈值位,产生中断前转换结果读数超过ADC0TH必须
达到的累积次数(即低于递减阈值或将计数复位至0的值)。
ADC0THV = ADC0TCL,I-ADC比较器阈值位即置位。
名称:ADC0RCL
地址:0xFFFF0548
默认值:0x0001
访问类型:读写
功能:该16位MMR可设置发生ADC中断所必需的转换次
数。默认情况下,置0x0001。必须先在ADCCFG MMR设
置ADC结果计数器使能位来使能ADC计数器功能。
电流通道ADC阈值计数寄存器
名称:ADC0THV
地址:0xFFFF0558
默认值:0x00
访问类型:只读
功能:该8位MMR在每次转换结果绝对值|I| ≥ ADC0TH时
递增。每次|I| < ADC0TH时递减或复位至0。通过设置
ADCCFG MMR的电流通道ADC比较器位进行配置。
Rev. A | Page 53 of 132
ADuC7036
默认值:0x00000000
注意,I-ADC和V-/T-ADC通道可配置在返回全功耗模式前
在正常功耗模式下高精度地启动单转换周期。此配置由
MCU通过ADCMDE MMR完全控制,更加灵活,从而实现
电池电流、电压和温度设置的持续周期性监控,同时将平
均直流功耗降到最低。
访问类型:只读
正常模式下,PLL不得关断。
功能:该32位MMR可保持电流累加器值。应使用ADCSTA
MMR 的 I-ADC 就 绪 位 来 确 保 此 MMR 的 安 全 读 取 。 在
ADCCFG MMR内禁用累加器或重新配置电流通道ADC时
复位至0。
ADC低功耗模式
低功耗基准电压源比例因子寄存器
ADC正常功耗模式节所述的所有ADC外设功能(结果计数
器、数字比较器和累加器)均可在低功耗模式使能。
电流通道ADC累加器寄存器
名称:ADC0ACC
地址:0xFFFF055C
名称:ADCREF
此时I-ADC功耗和精度都会降低。调制器时钟直接采用片
内131 kHz低功耗振荡器,将ADC更新速率降低至1 Hz
(ADCFLT)。增益固定为128。
一般只有I-ADC配置低更新速率,持续监控电池电流。MCU
处于省电模式并在产生中断时唤醒。I-ADC检测到当前转
换结果超过预设阈值、设定点或设定次数,就会产生这类
中断。
地址:0xFFFF057C
默认值:视器件而定,工厂设置
访问类型:读写。严禁写入此寄存器。
功能:该MMR允许用户校正低功耗模式(LPM)基准电压
的初始误差。值0x8000,表示和正常模式基准电压相比没
有 误 差 。 通 过 将 ADC 结 果 大 小 乘 以 ADCREF 值 并 除 以
0x8000,补偿低功耗基准电压实际值。如果LPM基准电压
源比1.2 V低1%,则ADCREF值约为0x7EB9。如果比1.2 V
高1%,则值约为0x8147。
此寄存器校正在25°C下的LPM基准电压有效值,该温度是
在 ADI 公 司 生 产 流 程 上 测 量 基 准 电 压 时 的 温 度 。 使 用
ADCREF MMR时LPM基准电压的温度系数不发生变化。
在低功耗模式下使用精密基准电压(即设置ADCMDE[5])
时不应使用此寄存器。
ADC功耗模式
通过修正ADCMDE[4:3],可配置各种低功耗或全功耗模式,
ARM7 MCU也可配置成低功耗模式(POWCON[5:3])。内
核功耗模式是独立控制的,和下文所述ADC功耗模式无关。
设置ADCMDE[5],还可选择精密基准电压源或低功耗模式
基准电压源。
ADC超低功耗模式
此 时 I-ADC 通 道 工 作 模 式 几 乎 和 低 功 耗 模 式 相 同
(ADCMDE[4:3])。不过,增益固定在512,功耗提升(约)
200 μA,噪声性能比低功耗模式设置更出色。
ADC正常功耗模式节所述的所有ADC外设功能(结果计数
器、数字比较器和累积器)均可在超低功耗模式使能。
跟低功耗模式一样,I-ADC只配置为低更新速率,持续监
控电池电流。MCU处于省电模式并在产生中断时唤醒。
I-ADC检测到电流转换结果超过预设阈值或设定点,就会
产生中断。
设置ADCMDE[5],还可选择精密基准电压源或低功耗模式
基准电压源。
ADC正常功耗模式
正常模式下,电流和电压/温度通道全部使能。此时采用512
kHz调制器时钟,使能ADC在4Hz和8 kHz之间速率提供正
常转换结果(见ADC滤波器寄存器节)。两个通道都由MCU
完全控制,可随时重新配置。所有通道的默认ADC更新速
率为1 kHz。
Rev. A | Page 54 of 132
ADuC7036
0
ADC比较器和累加器
–10
ADC SINC3数字滤波器响应
所有ADuC7036 ADC的总频率响应主要取决于片内Sinc3
数字滤波器的低通滤波器响应。Sinc3滤波器的作用是抽取
ADC Σ-Δ调制器输出数据位流以产生有效的16位数据结
果。所有ADC的数字滤波器响应都完全相同并通过16位
ADC滤波器寄存器(ADCFLT)配置。这个寄存器决定ADC
的总吞吐速率。这个预设吞吐速率决定ADC噪声分辨率。
对于电流通道ADC,吞吐速率和所选增益决定噪声分辨率。
总频率响应和吞吐速率主要取决于Sinc3滤波器抽取系数
(SF)位(ADCFLT[6:0])和平均系数(AF)位(ADCFLT[13:8])
的配置。由于数字滤波器内部数据路径有限,可以用来产
生所需输出速率的SF和AF组合也有限,从而在正常功耗模
式下将最低更新速率限制为4Hz或在低功耗模式下限制为
1Hz。吞吐速率的计算方法详见ADCFLT位分配表(见表
39),而AF和SF值的允许组合限制见表41。
默认情况下ADCFLT = 0x0007,将吞吐速率配置为1 kHz,
同时禁用所有其他滤波器选项(斩波、移动平均、平均系
数及Sinc3修正)。此时典型滤波器响应如图21所示。
–30
–40
–50
–60
–70
–80
–100
0
500
1000 1500 2000 2500 3000 3500 4000 4500 5000
FREQUENCY (kHz)
07474-021
–90
图 21. fADC = 1 kHz(ADCFLT = 0x0007)时的典型数字滤波器响应
此 外 , ADCFLT 寄 存 器 还 提 供 了 一 个 Sinc3 修 正 位
(ADCFLT[7])。用户置1可以修正标准Sinc3频率响应,
将滤波器阻带抑制提升约5 dB。在以下等式决定的位置处
插入第二个陷波即可
fNOTCH2 = 1.333 × fNOTCH
其中fNOTCH是响应中第一个陷波所在位置。
此位有效,ADC噪声会略微增加。图22显示Sinc3修正位有
效时修正过的1 kHz滤波器响应。和标准1 kHz响应相比,
和阻带抑制提升一样,新陷波清楚地出现在1.33 kHz处。
0
–10
–20
–30
–40
–50
–60
–70
–80
–90
–100
0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
FREQUENCY (kHz)
图22. fADC = 1 kHz(ADCFLT = 0x0087)时的
修正后Sinc3数字滤波器响应
Rev. A | Page 55 of 132
5.0
07474-022
还 可 通 过 集 成 32 位 累 加 器 ( ADC0ACC ) 功 能 并 设 置
ADCCFG[6:5],相加或减去多个采样结果。用户代码可
直接读取累加值(ADC0ACC),不需要任何进一步软
件处理。
ATTENUATION (dB)
每个转换结果都可以和ADCCFG[4:3]的预设阈值(ADC0TH)
进行比较。如果结果绝对(符号无关)值大于预设比较器
阈值,就会产生MCU中断。或者,作为比较器的扩展功能,
用户代码可以配置一个阈值计数器(ADC0THV)监控转
换结 果 高于 或低 于 预设 阈值 的 次数 。阈 值 计数 器达 到
ADC0TCL预设值,就会产生中断。
–20
ATTENUATION (dB)
通过内置比较器逻辑,I-ADC可以在达到预定转换次数或
超过预设阈值后产生中断。
ADuC7036
例如,斩波使能位(ADCFLT[15])置1,SF值(ADCFLT[6:0])
递增至0x1F(十进制31)并选择AF值(ADCFLT[13:8])
0x16(十进制22),从而产生10 Hz的ADC吞吐速率。频率响
应曲线如图25所示。
0
–10
–20
–20
–30
–30
–40
–50
–60
–70
–40
–50
–60
–70
–80
–80
–90
–90
–100
0
2
4
6
8
10
12
14
16
18
20
22
24
FREQUENCY (kHz)
–100
0
20
40
60
80
100
120
140
160
180
200
FREQUENCY (kHz)
07474-025
ATTENUATION (dB)
0
–10
07474-023
ATTENUATION (dB)
在正常功耗模式下,最大吞吐速率为8 kHz。此配置需将
ADCFLT MMR内的SF和AF位置零,所有其他滤波选项禁
用。因此ADCFLT写入0x0000。图23显示此时的典型8 kHz
滤波器响应。
图 23. fADC = 8 kHz(ADCFLT = 0x0000)时的典型数字滤波器响应
图 25. fADC = 10 kHz(ADCFLT = 0x961F)时的典型数字滤波器响应
8 kHz 滤 波 器 响 应 的 改 进 形 式 可 通 过 设 置 移 动 平 均 位
(ADCFLT[14])加以配置。因此,在所有ADC输出采样
点上引入了另外一个二分之一移动平均值滤波器,从而进
一步降低了ADC输出噪声。此外,通过维持8 kHz吞吐速率,
将建立时间增加一个完整转换周期。修正后的模拟频率响
应如图24所示。
SF变为0x1D且AF置0x3F,同时斩波使能位激活,可在正
常模式下将最小吞吐速率配置为4 Hz。数字滤波器频率响
应如图26所示。
–20
–20
–30
–40
–30
–40
–50
–60
–70
–50
–80
–60
–90
–70
–100
–80
20
40
FREQUENCY (kHz)
–90
60
图 26. fADC = 4 kHz(ADCFLT = 0xBF1D)时的典型数字滤波器响应
0
2
4
6
8
10
12
14
16
FREQUENCY (kHz)
18
20
22
24
07474-024
–100
0
07474-026
–10
ATTENUATION (dB)
–10
ATTENUATION (dB)
0
0
图 24. fADC = 8 kHz(ADCFLT = 0x4000)时的典型数字滤波器响应
吞吐速率极低时,可激活ADCFLT寄存器内的斩波使能位,
最大程度降低失调误差,更重要的是最大程度降低了失调
误差的温度漂移。斩波使能时,用户可使用两个主变量
(Sinc3抽取系数和平均系数)来选择最佳滤波器响应,但
需要权衡滤波器带宽和ADC噪声。
在低功耗模式下,Σ-Δ调制器时钟不再由512 kHz驱动而直
接采用片内低功耗131 kHz振荡器。随后如果在正常模式下
采用相同的ADCFLT配置,所有滤波器值将比例缩小约4
倍。因此,可在低功耗模式下将吞吐速率设为1 Hz。滤波
器频率响应如图27所示。
Rev. A | Page 56 of 132
ADuC7036
0
一般情况下,相同的ADC更新速率可通过在ADCFLT寄存
器 内 设 置 不 同 的 SF 和 AF 值 来 获 得 。 但 实 际 上 , 不 管
ADCFLT值如何,用户都要权衡频率响应和ADC噪声。要
利用SF和AF组合获得最佳滤波器响应和ADC噪声,经验表
明SF应选在16到40(十进制)或0x10到0x28之间,然后递
增AF值直到获得所需ADC吞吐速率。表43列举了一些常见
的ADCFLT配置。
–10
ATTENUATION (dB)
–20
–30
–40
–50
–60
–70
–80
–100
0
2
4
6
8
10
12
14
16
FREQUENCY (kHz)
18
20
07474-027
–90
图 27. fADC = 1 kHz(ADCFLT = 0xBD1F)时的典型数字滤波器响应
表43. 常见ADCFLT配置
ADC模式
SF
AF
其他配置
ADCFLT
fADC
tSETTLE
正常
0x1D
0x3F
斩波开启
0xBF1D
4 Hz
0.5 s
正常
0x1F
0x16
斩波开启
0x961F
10 Hz
0.2 s
正常
0x07
0x00
无
0x0007
1 kHz
3 ms
正常
0x07
0x00
Sinc3修正
0x0087
1 kHz
3 ms
正常
0x03
0x00
移动平均
0x4003
2 kHz
2 ms
正常
0x00
0x00
移动平均
0x4000
8 kHz
0.5 ms
低功耗
0x10
0x03
斩波开启
0x8310
20 Hz
100 ms
低功耗
0x10
0x09
斩波开启
0x8910
10 Hz
200 ms
低功耗
0x1F
0x3D
斩波开启
0xBD1F
1 Hz
2s
Rev. A | Page 57 of 132
ADuC7036
因此是失调校准周期的两倍长。校准周期启动后,任何进
ADC校准
行中的转换都会立即停止,校准自动以ADCFLT设置的更
如顶层框图(图17及18)详细所示,通过所有ADC通道的
新速率进行,结束后ADC返回空闲模式。强烈建议,以尽
信号流如下:
可能低的更新速率来启动校准(因此要求ADCFLT中的SF
1.
输入电压通过输入缓冲(在I-ADC时还通过PGA)施
值较高),这样在校准期间可以尽可能降低噪声的影响。
加到Σ-Δ调制器。
利用失调和增益校准
2.
调制器输出施加到可编程数字抽取滤波器。
在斩波使能位ADCFLT[15]使能后,内部失调误差已降到了
3.
然后在使用斩波时对滤波器输出结果进行平均。
最低,可能不再要求任何失调校准。但如果斩波禁用,就
4.
将偏移值(ADCxOF)从上述结果中减去。
生较大温度变化之后。
5.
根据增益值(ADCxGN)比例调节结果。
视系统精度要求,可能需要在所有相关系统增益范围内进
6.
然后转换成二进制补码/偏移二进制形式并舍入到16
行增益校准,尤其是在I-ADC(带内部PGA)环境内。如
位或箝位到±满量程。
果无法在所有增益范围内施加外部满量程电流,就施加一
需要进行初始失调校准,甚至可能反复校准,尤其是在发
每个ADC都具有一个特定的失调和增益校正或校准系数与
之相对应,它存储在MMR的失调和增益寄存器(ADCxOF
和ADCxGN)内。这些寄存器的工作是消除器件内部失调
和增益误差,以及器件外部系统级失调和增益误差。
上电时加载工厂预设校准值。这些工厂预设校准值因器件
而异,反映了内部电路的工艺差异。但是,它们可以在空
闲模式时被用户代码覆盖,也可以在用户利用
ADCMDE[2:0] MMR的工作模式配置位激活失调或增益周
期时自动覆盖。有两种自动校准形式可供用户选择:自校
准和系统校准。
个较低电流,然后比例调节校准结果。例如,施加一个50%
电流,然后将所产生的ADC0GN值除以2并写回到ADC0GN
内。注意,由于ADC0GN只有16位,系统校准期间可以施
加的输入信号是有下限的。输入范围(即系统零电平值和
满量程值之间的差值)应大于额定满量程输入范围的40%
(即>40%的VREF/增益)。
片内Flash/EE存储器可以存储多个校准系数。这些校准系
数可根据系统配置由用户代码直接复制到相关校准寄存器
内。一般情况下,使用校准寄存器的最简单方法是作为自
动校准模式的一部分,让ADC自己计算所需值。
工厂设置或下线校准分两步:
自校准
1.
施加0 A电流。在所需PGA设置下配置ADC,并写入
失调误差自校准时,ADC基于内部生成的0V来产生校准系
ADCMDE[2:0]以进行系统零电平校准,从而将新失调
数,而在增益误差自校准时,则基于满量程电压。虽然自
校准值写入ADC0OF内。
校准可以校准内部失调和增益误差,但无法补偿外部误差,
如分流电阻公差/漂移和外部失调电压。
2.
针对所需PGA设置施加满量程电流。写入ADCMDE,
进行系统满量程校准,从而将新失调校准值写入
注意,在自校准模式下,ADC0GN必须包含对应PGA = 1
ADC0GN内。
的值,才能开始校准配置。
了解失调和增益校准寄存器
系统校准
ADC信号流(见ADC Sinc3数字滤波器响应节到利用失调
在失调误差系统校准过程中,ADC基于外部生成的零电平
和增益校准节)中的典型模块输出可视为±满量程输入范围
来产生校准系数,而在增益误差系统校准过程中,则基于
约±0.75的小数部分。范围小于±1,是因为调制器有衰减,
满量程电压。在整个校准周期,校准系数始终施加到ADC
使输入信号多少具有超量程能力。由于工艺容差,确切的
外部输入端。
衰减值因器件而略显不同。
失调校准持续一个转换周期(3/fADC斩波关闭,2/fADC斩
波开启),然后ADC返回空闲模式。增益校准分两个过程,
Rev. A | Page 58 of 132
ADuC7036
失调系数读取自ADC0OF校准寄存器,为16位二进制补码。
根据信号链,有效范围为±1。因此,ADC0OF寄存器的1 LSB
和ADC0DAT寄存器的1 LSB不一样。
对于电流通道ADC,
ADCOUT = ⎡VIN × PGA − K × ADCxOF ⎤ × ADCxGN
⎢
⎥
⎣ VREF
⎦ ADCxGN NOM
ADC0OF正值表示从滤波器输出中减去失调,负值则相加。
其中K取决于PGA增益设置和ADC模式。
寄存器额定值为0x0000,表明要消除零失调。实际失调可
正常模式
能 因 器 件 、 PGA 增 益 不 同 而 异 。 斩 波 模 式 使 能 ( 即
ADCFLT[15] = 1)可以将ADC内部失调降到最低。
在正常模式下,对于PGA增益1、4、8、16、32及64,K = 1;
对于PGA增益2和128,K = 2;对于PGA增益256,K = 4;
增益系数读取自ADC0GN寄存器,为无单位的比例因子。
16,384除以这个寄存器的16位值后再乘以失调校正值。寄
存器标称值为0x5555,对应于倍乘因数1.3333,并比例调
节标称±0.75信号产生±1满量程输出信号。在进行输出信号
上溢/下溢检查后转换成二进制补码或单极性模式,然后输
而对于PGA增益512,K = 8。
低功耗模式
在低功耗模式下,对于PGA增益128,K = 32。此外,如果
使用REG_AVDD/2基准电压,则K系数翻倍。
超低功耗模式
出到数据寄存器。
实际增益和零增益误差的所需比例因子在正常和低功耗模
在超低功耗模式下,对于PGA增益512,K = 8。此外,如
果使用REG_AVDD/2基准电压,则K系数翻倍。
式下因器件、PGA设置而略有差异。上电复位时下载到
ADC0GN的值对应PGA增益为1的比例因子。但如果使用不
ADC诊断
同的PGA设置,就可能会出现某种增益误差。通过用户代
ADuC7036在 两 个 ADC上 都 具 有 一 个 诊 断 和 开 路 检 测
功能。
码或进行ADC校准覆盖校准系数即可校正这个误差。
简化后的ADC传递函数可描述为
电流ADC诊断
⎡
⎤
ADCOUT = V IN × PGA − ADCxOF ×
⎢
⎥
⎣
V REF
⎦
ADCxGN
ADCxGN NOM
其中等式对于电压/温度通道ADC有效。
ADuC7036具有检测电流通道输入端开路状态的功能。通过
ADC0CON[14:13]控制IIN+和IIN−上的两个电流源可以实
现这个功能。
注意,IIN+和IIN−电流源公差为±30%。因此,电流源使能
时PGA增益必须≥ 2(ADC0CON[3:0] ≥ 0001)。
温度ADC诊断
ADuC7036具有检测温度通道输入端开路状态的功能。通过
ADC1CON[14:13]控制VTEMP和GND_SW上的两个电流
源可以实现这个功能。
电压ADC诊断
ADuC7036具有检测电压通道输入端开路状态的功能。通过
高压寄存器HVCFG1[7]控制电压衰减器上的电流源可实现
这项功能。
Rev. A | Page 59 of 132
ADuC7036
电源支持电路
ADuC7036具有两个片内低压差(LDO)稳压器,它们通
如图28所示,当VDD上的电源电压达到典型工作电压3 V
过电池电压直接驱动来产生一个2.6 V内部电源,该2.6 V电
时,POR信号将ARM内核保持在复位状态下持续20 ms。
源然后用作ARM7 MCU和外设的电源,包括那些片内精密
这样可以确保施加到ARM内核及相关外设上的调节电源
模拟电路。
电压(REG_DVDD)大于最小工作电压,由此保证功能
数字LDO在REG_DVDD上并接两个输出电容(2.2 μF和0.1
μF)而模拟LDO则在REG_AVDD上并 接 一个输出电 容
(0.47 μF)。
完整。在RSTSTA MMR内设置POR标志,指示POR事件
已发生。
ADuC7036 还 具 有 一 个 PSM 功 能 。 通 过 HVCFG0[3] 使 能
输出电容的ESR会影响LDO控制回路的稳定性。建议在频
率大于32 kHz时使用5 Ω或以下的ESR以确保调节器的稳
定性。
此外,还集成了上电复位(POR)、电压监控器(PSM)
及低压标志(LVF)功能以确保MCU安全运行以及连续监
控电池电源。
PSM持续监控VDD引脚上的电压。如果电压低于6 V典型
值,则PSM标志自动置1并在IRQEN[16]或FIQEN[16]内使
能高压IRQ时产生系统中断。如图28所示实例。
电 压 低 于 POR 电 平 时 , 可 使 能 另 一 个 低 压 标 志
(HVCFG0[2])。这个标志可用来指示SRAM内容在复位
事件后仍然有效。低压标志的实例如图28所示。HVCFG0[2]
使能后,可通过HVMON[3]监控它的状态。HVCFG0[2]置1
POR电路的设计VDD(0 V至12 V)上电时间大于100 μs。
后,SRAM内容保持有效。若改位清0,可能会破坏SRAM
因此,建议选择外部电源去耦元件时务必小心以确保不论
内容。
VBAT上电状态如何,VDD电源上电时间始终大于100 μs。
VDD上的串联电阻和去耦电容组合要求RC时间常数至少
为100 μs(例如10 Ω和10 μF,如图57所示)。
12V
PSM TRIP 6V TYP
VDD
3V TYP
POR TRIP 3V TYP
LVF TRIP 2.1V TYP
2.6V
REG_DVDD
20ms TYP
POR_TRIP
RESET_CORE
(INTERNAL SIGNAL)
07474-028
ENABLE_PSM
ENABLE_LVF
图 28. 典型上电周期
Rev. A | Page 60 of 132
ADuC7036
系统时钟
ADuC7036集成一个非常灵活的时钟系统,可从下面三个时
而驱动ARM7TDMI内核。默认情况下,CD位将PLL输出分
钟发生源之一产生:集成片内精密振荡器、集成片内低功
半,产生10.24 MHz的内核时钟。用户可以设置这个除数因
耗振荡器和外部时钟晶体。三种方案如图29所示。
子,在1到128范围动态产生二进制加权除法器系数。
每个内部振荡器除以4即可产生32.768 kHz的时钟频率。内
ADC由PLL输出驱动,后者经分频后提供512 kHz的时钟
部振动器或外部晶体提供32.768 kHz,然后PLL锁定在它的
源。低功耗模式时,ADC时钟源会从标准512 kHz切换到低
倍数(625)上,为系统提供稳定的20.48 MHz时钟。内核
功耗131 kHz振荡器。
可以工作在该频率下或其二的倍数分频上,从而在不需要
注意,低功耗振荡器通过一个4分频电路来同时驱动看门狗
峰值性能时节省功耗。
和内核唤醒定时器。ADuC7036时钟系统的详细框图如图29
默认情况下,低功耗振荡器产生20.48 MHz时钟源,然后驱
所示。
动PLL。时钟分频器(由POWCON寄存器的CD位设置)进
PRECISION
131kHz
EXTERNAL CRYSTAL
(OPTIONAL)
EXTERNAL
32.768kHz
CRYSTAL
CIRCUITRY
PRECISION
131kHz
EXTERNAL
32.768kHz
PRECISION
OSCILLATOR
LOW POWER
131kHz
LOW POWER
OSCILLATOR
PRECISION
32.768kHz
PRECISION
32.768kHz
DIV 4
PLLCON
PLL
LOW POWER
CALIBRATION
COUNTER
EXTERNAL
32.768kHz
LOW POWER
32.768kHz
DIV 4
LOW POWER
OSCILLATOR
HIGH ACCURCY
CALIBRATION
COUNTER
LOW POWER
32.768kHz
TIMER0
LIFETIME
CORE CLOCK
GPIO_5
ECLK 2.5MHz
GPIO_8
CORE CLOCK
TIMER1
GENERAL-PURPOSE
LOW POWER
32.768kHz
CLOCK
DIVIDER
PLL OUTPUT
20.48MHz
CORE CLOCK
EXTERNAL
32.768kHz
PLL LOCK
ADCMDE
FLASH
CONTROLLER
LOW POWER
32.768kHz
CORE
CLOCK
ADC
CLOCK
MCU
LOW POWER
32.768kHz
ADC
CORE CLOCK
UART
图 29. 系统时钟发生
Rev. A | Page 61 of 132
WATCHDOG
TIMER3
TIMER4
STI
CORE CLOCK
LOW POWER
32.768kHz
CORE CLOCK
SPI
TIMER2
WAKE-UP
LOW POWER
32.768kHz
1
2CD
PLL OUTPUT
(20.48MHz)
PRECISION
32.768kHz
PLL OUTPUT
(5MHz)
LIN H/W
SYNCHRONIZATION
07474-029
1
8
ADuC7036
工作模式、时钟模式和可编程时钟分频器都由两个MMR
两个MMR写入范例如下:
PLLCON和POWCON控制,并且PLL状态由PLLSTA指示。
POWKEY0
=
0x01
//POWCON key
POWCON
=
0x00
//Full power-down
POWKEY1
=
0xF4
//POWCON KEY
iA1*iA2
//Dummy cycle to clear the
pipeline, where iA1 and iA2 are defined as longs and are not 0
PLLKEY0
=
0xAA
//PLLCON key
PLLCON
=
0x0
//Switch to Low Power Osc.
PLLKEY1
=
0x55
//PLLCON key
iA1*iA2
//Dummy cycle to prevent
Flash/EE access during clock change
PLLCON控制时钟系统的工作模式,而POWCON同时控制
内核时钟频率和省电模式。PLLSTA指示XTAL1引脚上是
否存在振荡器并提供PLL锁定状态和PLL中断的相关信息。
在ADuC7036进入省电模式前,建议将PLL时钟源切换到
低功耗131 kHz振荡器以缩短唤醒时间。低功耗振荡器始
终有效。
当ADuC7036从省电模式中唤醒时,PLL一开始振荡,MCU
内核当即执行代码。代码执行在PLL锁定到20.48 MHz频率
前进行。当PLL正在锁定时,为了确保Flash/EE存储器控制
器获得有效的时钟,它通过PLL输出8分频时钟源来驱动。
锁定后,PLL输出才从这个8分频切换到锁定的输出。
如果用户代码需要精确的PLL输出,用户代码必须在唤醒
系统时钟寄存器
PLLSTA寄存器
名称:PLLSTA
后恢复正常代码执行前轮询PLL锁定状态位(PLLSTA[1])。
地址:0xFFFF0400
唤醒后,如果PLL从一个有效时钟源(如低功耗131 kHz振
默认值:N/A
荡器)获得时钟信号,锁定时间在2 ms内。
访问类型:只读
PLLCON为采用两个32位密钥保护的MMR。PLLKEY0(预
写密钥)和PLLKEY1(写后密钥)。密钥值如下:
功能:该8位寄存器允许用户代码监控PLL锁定状态和外部
晶体状态。
PLLKEY0 = 0x000000AA
表44. PLLSTA MMR位分配
PLLKEY1 = 0x00000055
PLLCON为采用两个32位密钥保护的MMR:POWKEY0(预
写密钥)和POWKEY1(写后密钥)。
位
描述
7至3
保留。
2
XTAL时钟。只读,实时指示XTAL1上的当前逻辑
电平。在32.768 kHz时钟频率下通过高低交替来指
POWKEY0 = 0x00000001
POWKEY1 = 0x000000F4
示是否存在外部时钟源。
1
PLL锁定状态位。只读。
PLL锁定并输出20.48 MHz时置1。
PLL不锁定并输出fCORE 8分频时钟源时清0。
0
PLL中断。
PLL锁定状态位信号为低电平时置1。
该位写入1时清0。
Rev. A | Page 62 of 132
ADuC7036
表45.PLLCON MMR位分配
PLLCON预写密钥
名称:PLLKEY0
地址:0xFFFF0410
位
描述
7至2
保留。应由用户代码置0。
1至0
PLL时钟源。1
00 = 更低功耗131 kHz振荡器。
访问类型:只写
01 = 精密131 kHz振荡器。
密钥:0x000000AA
10 = 外部32.768 kHz晶体。
功能:该加密寄存器在写入PLLCON前后要求32位密钥值。
PLLKEY0为预写密钥。
11 = 保留。
1
如果用户代码切换MCU时钟源,在将时钟切换写入PLLCON后应插入一
个MCU空周期。
PLLCON写后密钥
POWCON预写密钥
名称:PLLKEY1
名称:POWKEY0
地址:0xFFFF0418
地址:0xFFFF0404
访问类型:只写
访问类型:只写
密钥:0x00000055
功能:该加密寄存器在写入PLLCON前后要求32位密钥值。
密钥:0x00000001
功能:该加密寄存器在写入POWCON前后要求32位密钥
PLLKEY1为写后密钥。
值。POWKEY0为预写密钥。
PLLCON寄存器
POWCON写后密钥
名称:PLLCON
名称:POWKEY1
地址:0xFFFF0414
地址:0xFFFF040C
默认值:0x00
访问类型:只写
访问类型:读写
功能:该8位寄存器允许用户代码从三种不同振荡器源中动
态选择PLL时钟源。
密钥:0x000000F4
功能:该加密寄存器在写入POWCON前后要求32位密钥
值。POWKEY1为写后密钥。
Rev. A | Page 63 of 132
ADuC7036
POWCON寄存器
名称:POWCON
地址:0xFFFF0408
默认值:0x79
访问类型:读写
功能:该8位寄存器允许用户代码动态进入不同低功耗模式并修改CD分频器以控制ARM7TDMI内核速度。
表46. POWCON MMR位分配
位
描述
7
精密131 kHz输入使能。
用户置1使能精密131 kHz输入。精密131 kHz振荡器还必须通过HVCFG0[6]使能。置1后功耗增加约50 μA。不用时禁用。
用户清0关断精密131 kHz输入使能。
6
XTAL关断。
用户置1使能外部晶体电路。
用户清0关断外部晶体电路。
5
PLL关断。如果定时器外设由PLL输出时钟驱动,则关断。如果由有效时钟源驱动,则保持正常功耗模式。
默认置1并在唤醒事件时由硬件置1。
清0关断PLL。内核或外设使能时无法PLL关断。位3、4及5必须同时清0。
4
外设关断。可以关断的外设有:SRAM、Flash/EE存储器及GPIO接口以及SPI和UART串行端口。
默认置1和/或唤醒事件时由硬件置1。即使置1,由低功耗振荡器驱动,唤醒定时器(定时器2)仍可继续工作。
清0关断外设。内核使能时,外设无法关断。位3、4必须同时清0。即使清0,LIN仍能对唤醒事件作出响应。
3
内核关断。用户代码关断MCU时,在将关断命令写入POWCON后插入一个MCU空周期。
默认置1并在唤醒事件时由硬件置1。清0关断ARM内核。
2至0
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. A | Page 64 of 132
ADuC7036
由于OSC0TRM值已发生了变化,应再次执行校准程序,同
低功耗时钟校准
时检查新频率。
低功耗131 kHz振荡器既可使用精密131 kHz振荡器校准,
利用内部精密131 kHz振荡器执行校准程序耗时约4 ms。使
也可使用外部32.768 kHz时钟晶体校准。校准需要用到两
用外部32.768 kHz晶体的话,增至16 ms。
个专用校准计数器和一个振荡器调节寄存器。
开始时钟校准程序前,用户必须将PLL时钟源切换到精密
第一个计数器(计数器0)为9位,通过精确时钟振荡器(精
131 kHz振荡器或外部32.768 kHz时钟晶体。否则,每次修
密振荡器或外部时钟晶体)驱动。第二个计数器(计数器
改OSC0TRM,PLL可能会无法锁定,从而延长了低功耗振
1)为10位,通过低功耗振荡器(直接131 kHz或4分频模
荡器校准时间。
块产生的32.768 kHz)驱动。每个校准计数器的时钟源频
BEGIN
CALIBRATION
ROUTINE
率都应相同。调节寄存器(OSC0TRM)为8位,低四位是
用户可访问的调节位。OSC0TRM内的值越高,低功耗振
荡器的频率越低。反之,OSC0TRM内的值越低,频率越
WHILE
OSC0STA[0] = 1
高。根据标称频率131 kHz,典型调节范围在127 kHz和135
kHz之间。
OSC0VAL0 < OSC0VAL1
OSC0VAL0 > OSC0VAL1
时钟校准模式由下列MMR控制:
•
OSC0CON:校准控制位。
•
OSC0STA:校准状态寄存器。
•
OSC0VAL0:9位计数器0。
•
OSC0VAL1:10位计数器1。
•
OSC0TRM:振荡器调节寄存器。
OSC0VAL0 = OSC0VAL1
INCREASE
OSC0TRM
NO
校准程序流程如图30所示。用户代码利用OSC0CON配置并
DECREASE
OSC0TRM
IS ERROR WITHIN
DESIRED LEVEL?
YES
到0x1FF后两个计数器禁用。然后用户代码回读低功耗振荡
器校准计数器值。有三种可能情形:
•
•
图 30. OSC0TRM 校准程序
OSC0VAL0 = OSC0VAL1。无需进一步操作。
OSC0VAL0 > OSC0VAL1。低功耗振荡器缓慢运行中。
必须减少OSC0TRM值。
•
END
CALIBRATION
ROUTINE
OSC0VAL0 < OSC0VAL1。低功耗振荡器快速运行中。
必须增加OSC0TRM值。
Rev. A | Page 65 of 132
07474-030
使能校准序列。OSC0VAL0精密功耗振荡器校准计数器达
ADuC7036
OSC0STA寄存器
OSC0TRM寄存器
名称:OSC0STA
名称:OSC0TRM
地址:0xFFFF0444
地址:0xFFFF042C
默认值:0x00
默认值:0xX8
访问类型:只读
访问类型:读写
功能:该8位寄存器指示低功耗振荡器校准程序状态。
功能:该8位寄存器控制低功耗振荡器调节。
表49. OSC0STA MMR位分配
表47. OSC0TRM MMR位分配
位
描述
7至4
保留。应写入0。
3至0
用户调节位。
位
描述
7至2
保留。
1
校准结束。
校准周期完全结束后硬件置1。
OSC0CON寄存器
读取OSC0VAL1后清0。
0
名称:OSC0CON
校准中置1。校准结束清0。
地址:0xFFFF0440
OSC0VAL0 寄存器
默认值:0x00
名称:OSC0VAL0
访问类型:读写
地址:0xFFFF0448
功能:该8位寄存器控制低功耗振荡器校准程序。
默认值:0x0000
表48. OSC0CON MMR位分配
访问类型:只读
位
描述
功能:该9位计数器可从131 kHz精密振荡器或32.768 kHz
7至5
保留。应写入0。
外部晶体接收时钟信号。
4
校准源。
OSC0VAL1 寄存器
置1选择外部32.768 kHz晶体。
清0选择内部精密131 kHz振荡器。
名称:OSC0VAL1
3
校准复位。置1复位校准计数器并禁用校准逻辑。
地址:0xFFFF044C
2
置1清除OSC0VAL1。
默认值:0x0000
1
置1清除OSC0VAL0。
0
校准使能。
置1开始校准。
清0中止校准。
访问类型:只读
功能:该10位计数器可从低功耗131 kHz振荡器接收时钟
信号。
Rev. A | Page 66 of 132
ADuC7036
处理器相关外设
中断系统
ARM7TDMI内核中断产生程序如图31所示。
ADuC7036拥有由中断控制器控制的16个中断源。大多数中
例如,设置定时器0每隔1 ms产生一次超时。第一次1 ms
断 都 是 由 片 内 外 设 产 生 的 , 例 如 ADC 和 UART 。
超时后,FIQSIG[2]或IRQSIG[2]置1,并且只能通过写入
ARM7TDMI CPU内核只能识别两类中断:正常中断请求
T0CLRI清0。如果在IRQEN或FIQEN内没有使能定时器0,
(IRQ)和快速中断请求(FIQ)。所有中断都可以被单独
则FIQSTA/IRQSTA[2]不会置1,也不会产生中断。如果在
屏蔽。
IRQEN或FIQEN内使能定时器0,则FIQSTA[2]或IRQSTA[2]
9个与中断有关的寄存器专门管理中断系统的控制和配置,
置1或产生中断(FIQ或IRQ)。
其中4个用于控制IRQ,4个用于控制FIQ。一个额外的存储
注意,CPSR的IRQ和FIQ位定义仅通过ARM内核而非外设
器映射寄存器用于选择可编程中断源。每一个IRQ和FIQ寄
来控制中断识别。例如,如果配置定时器2通过IRQEN产生
存器中的控制位都代表相同的中断源,如表50所示。
一个IRQ,则CPSR内的IRQ中断位置1(禁用)并关断
进入中断服务程序(ISR)后应立即保存IRQSTA/FIQSTA
以确保能够响应所有有效中断源。
ADuC7036。中断发生后,外设唤醒,但ARM内核仍处于
关断状态。这相当于POWCON = 0x71。然后ARM内核只
能通过复位事件来上电。
表50. IRQ/FIQ MMR位分配
位
描述
注释
0
所有中断逻辑或(限FIQ)
1
SWI:不用于IRQEN/IRQCLR和FIQEN/FIQCLR。
2
定时器0
参见“定时器0—使用寿命定时器”部分。
3
定时器1
参见“定时器1”部分。
4
定时器2或唤醒定时器
参见“定时器2—唤醒定时器”部分。
5
定时器3或看门狗定时器
参见“定时器3—看门狗定时器”部分。
6
定时器4或STI定时器
参见“定时器4—STI定时器”部分。
7
LIN硬件
参见“LIN(局域互连网络)接口”部分。
8
Flash/EE中断
参见“Flash/EE控制接口”部分。
9
PLL锁定
参见“系统时钟”部分。
10
ADC
参见“16位Σ-ΔADC”部分。
11
UART
参见“UART串行接口”部分。
12
SPI主机
参见“串行外设接口”部分。
13
XIRQ0(GPIO IRQ0)
参见“通用I/O”部分。
14
XIRQ1(GPIO IRQ1)
参见“通用I/O”部分。
15
保留
16
IRQ3高压IRQ
高压中断;参见“高压外设控制接口”部分。
17
SPI从机
参见“串行外设接口”部分。
18
XIRQ4(GPIO IRQ4)
参见“通用I/O”部分。
19
XIRQ5(GPIO IRQ5)
参见“通用I/O”部分。
20至32
保留
保留。
Rev. A | Page 67 of 132
ADuC7036
IRQCLR 寄存器
正常中断(IRQ)请求
名称:IRQCLR
IRQ请求是允许在IRQ模式下进入处理器内的异常信号。它
地址:0xFFFF000C
用于内部和外部事件的通用中断服务。
访问类型:只写
IRQSTA MMR的所有32位经逻辑或运算后向ARM7TDMI
内核发送一个IRQ信号。IRQ专用的四个32位寄存器参见
“IRQSTA寄存器到IRQCLR寄存器”部分。
IRQSTA 寄存器
名称:IRQSTA
功能:该寄存器允许清除IRQEN寄存器以屏蔽中断源。某
一位置1清除IRQEN寄存器的相应位而不影响其他位。当用
作一对寄存器时,IRQEN和IRQCLR允许独立操纵使能屏
蔽而不需要自动读取修改写入指令。
快速中断请求(FIQ)
地址:0xFFFF0000
默认值:0x00000000
访问类型:只读
功能:该寄存器指示当前的IRQ源状态(见图31)。如果
某一位置1,则相应中断源向ARM7TDMI内核产生一个IRQ
请求。没有任何优先编码器或中断矢量产生。这个功能可
以在软件中通过一个普通的中断处理程序实现。
FIQ是允许在FIQ模式下进入处理器内的异常信号。它提供
一个短延时的服务于数据传输或通信通道的任务。FIQ接口
与IRQ接口相同,但它会提供二级中断(最高优先级)。有4
个32位的寄存器专门用于FIQ:FIQSIG、FIQEN、FIQCLR
和FIQSTA。
FIQSTA MMR的所有32位通过逻辑“或”运算后产生FIQ信
号到内核以及FIQ和IRQ寄存器的0位(FIQ源)。
逻辑上FIQEN和FIQCLR不允许一个中断源同时使能IRQ
和FIQ屏蔽。另外,FIQEN中某一位置1会清0IRQEN中的相
同位。同样,IRQEN中某一位置1也会清0FIQEN中的相同
位。一个中断源可以被IRQEN和FIQEN屏蔽禁用。
IRQSIG 寄存器
名称:IRQSIG
地址:0xFFFF0004
可编程中断
默认值:0x00000000
访问类型:只读
功能:该32位寄存器反映不同IRQ源的状态。如果一个外
设产生了一个IRQ信号,则IRQSIG中相应的位就会被置1;
否则就会被清0。当特定外设的中断请求取消时,IRQSIG
的位就会被清0。所有的IRQ源都可以在中断使能寄存器
IRQEN MMR中屏蔽。IRQSIG为只读寄存器。
IRQEN 寄存器
名称:IRQEN
因为可编程中断是无法屏蔽的,所以它们由另外一个寄存
器SWICFG控制,通过这个寄存器可以同时写入IRQSTA和
IRQSIG寄存器和/或FIQSTA和FIQSIG寄存器。
这个32位的寄存器SWICFG专门用于软件中断(见表51)。这
个存储器映射寄存器允许对可编程中断源进行控制。
表51. SWICFG MMR位分配
位
描述
31至3
保留。
2
可编程中断FIQ。
地址:0xFFFF0008
置1或清0,FIQSTA和FIQSIG寄存器的位1也会相
默认值:0x00000000
应置1或清0。
1
访问类型:读写
可编程中断IRQ。
置1或清0,IRQSTA和IRQSIG寄存器的位1也会相
应地置1或清0。
功能:该寄存器指示当前使能屏蔽值。当某一位被置1时,
相应的中断源就会使能产生一个IRQ异常信号。当某一位
0
被清0时,相应的中断源就会被禁用或屏蔽,此时就不能产
注意,任何中断信号的有效时间都要至少等于中断延迟时
间 , 这 样 才 能 保 证 被 中 断 控 制 器 和 用 户 在 IRQSTA 或
FIQSTA寄存器中检测到。
生一个IRQ异常信号了。IRQEN寄存器无法用来禁用中断。
Rev. A | Page 68 of 132
保留。
IRQSIG
FIQSIG
TIMER0
TIMER1
TIMER2
TIMER3
TIMER4
LIN H/W
FLASH/EE
PLL LOCK
ADC
UART
SPI
XIRQx
IRQ
FIQ
07474-031
IRQSTA
FIQSTA
TIMER0
TIMER1
TIMER2
TIMER3
LIN H/W
FLASH/EE
PLL LOCK
ADC
UART
SPI
XIRQx
IRQEN
FIQEN
ADuC7036
图 31. 中断结构
Rev. A | Page 69 of 132
ADuC7036
定时器
ADuC7036具有5个通用定时器/计数器。
此外,定时器0、定时器1及定时器4分别具有一个捕捉寄存
器(分别为T0CAP、T1CAP及T4CAP)保持使能IRQ事件
•
定时器0或使用寿命定时器
•
定时器1或通用定时器
•
定时器2或唤醒定时器
位
描述
•
定时器3或看门狗定时器
0
定时器0或使用寿命定时器
定时器4或STI定时器
1
定时器1或通用定时器
•
的捕捉值。IRQ事件见表52。
表52.定时器事件捕捉
2
定时器2或唤醒定时器
这5个定时器可以工作在两种模式:自由模式和周期模式。
3
定时器3或看门狗定时器
当工作在自由模式时,计数器从最大值/最小值开始递减/
4
定时器4或STI定时器
递增直到0或满量程,然后从最大值/最小值重新开始。
5
LIN硬件
6
Flash/EE中断
当工作在周期模式时,计数器从装载寄存器(TxLD MMR)
7
PLL锁定
中的值开始递减或递增到0或满量程,然后重新开始。注意,
8
ADC
TxLD MMR要在TxCON MMR前面配置。
9
UART
10
SPI主机
11
XIRQ0(GPIO_0)
12
XIRQ1(GPIO_5)
在正常模式下,每次计数器值达到0(递减计数)或满量程
13
保留
(递增计数)时,都会产生一个IRQ。可以通过写任意值
14
IRQ3高压中断
到对应定时器(TxCLRI)的清除寄存器来取消IRQ。
15
SPI从机
16
XIRQ4(GPIO_7);参见“通用I/O”部分
17
XIRQ5(GPIO_8);参见“通用I/O”部分
计数器的值可随时通过访问寄存器TxVAL读出。定时器可
通过写入相应控制寄存器TxCON来启动。
Rev. A | Page 70 of 132
ADuC7036
定时器 0 载入寄存器
定时器0—使用寿命定时器
名称:T0LD
定时器0是一个带有可编程预分频器的通用48位递增或16
位递增/递减计数器定时器。它采用内核时钟或低功耗
32.768 kHz振荡器工作,预分频器为1、16、256或32,768。
当内核工作在20.48 MHz下,预分频器为1时,产生48.83 ns
的最低分辨率。
工作在48位模式时,定时器0从0开始递增计数。当前计数
器值从T0VAL0和T0VAL1读取。
地址:0xFFFF0300
默认值:0x0000
访问类型:读写
功能:T0LD0为16位寄存器,可保持载入到计数器的16位
值。只能在16位模式下使用。
定时器 0 清除寄存器
工作在16位模式时,定时器0既可递增计数,也可递减计数。
名称:T0CLRI
16位值可通过写入T0LD来载入到计数器内。当前计数器值
地址:0xFFFF0310
从T0VAL0读取。定时器0有一个捕捉寄存器(T0CAP),它
可以被选定的IRQ中断源初始断言所触发。当捕捉寄存器
触发时,将当前定时器值复制到T0CAP,同时定时器继续
运行。此功能可用来比单独中断服务更能精确地决定事件
访问类型:只写
功能:该8位只写MMR通过用户代码写入(任意值)来清
除中断。
断言。
定时器 0 值寄存器
定时器0在溢出时从T0LD重新载入值。
名称:T0VAL0、T0VAL1
定时器0接口包括6个MMR:T0LD、T0CAP、T0VAL0、
地址:0xFFFF0304、0xFFFF0308
T0VAL1、T0CLRI和T0CON。T0LD是一个16位寄存器,
默认值:0x0000、0x00000000
保持载入计数器的16位值。只能在16位模式下使用。T0CAP
访问类型:只读
是一个16位寄存器,保持使能IRQ事件所捕捉的16位值。
功能:T0VAL0和T0VAL1分别是16位和32位寄存器,保持
16 LSB和32 MSB。二者均为只读寄存器。16位模式使用16
位 T0VAL0 。 48 位 模 式 同 时 使 用 16 位 T0VAL0 和 32 位
T0VAL1。
只能在16位模式下使用。T0VAL0和T0VAL1分别是16位和
32位寄存器,保持16 LSB和32 MSB。二者均为只读寄存器。
16 位 模 式 使 用 16 位 T0VAL0 。 48 位 模 式 同 时 使 用 16 位
T0VAL0和32位T0VAL1。T0CLRI是一个8位寄存器。向其
中写入任意值就可以清除中断。只能在16位模式下使用。
T0CON是一个配置MMR,如表53所示。
定时器 0 捕捉寄存器
名称:T0CAP
地址:0xFFFF0314
默认值:0x0000
访问类型:只读
功能:该16位寄存器保持使能IRQ事件所捕捉的16位值。
只能在16位模式下使用。
16-BIT LOAD
LOW POWER
32.768kHz OSCILLATOR
EXTERNAL 32.768kHz
WATCH CRYSTAL
PRESCALER
1, 16, 256, OR 32,768
48-BIT UP COUNTER
16-BIT UP/DOWN COUNTER
CORE
CLOCK FREQUENCY
TIMER0 IRQ
TIMER0
VALUE
IRQ[31:0]
CAPTURE
表 32. 定时器 0 框图
Rev. A | Page 71 of 132
07474-032
PRECISION
32.768kHz OSCILLATOR
ADuC7036
定时器 0 控制寄存器
名称:T0CON
地址:0xFFFF030C
默认值:0x00000000
访问类型:读写
功能:该32位MMR配置定时器0的工作模式。
Table 53. T0CON MMR位分配
位
描述
31至18
保留。
17
事件选择位。
用户置1,使能定时器捕捉一个事件。
用户清0,禁用定时器捕捉一个事件。
16至12
事件选择范围(0至17)。事件定义参见表52。
11
保留。
10至9
时钟选择。
00 = 内核时钟(默认)。
01 = 低功耗32.768 kHz振荡器。
10 = 外部32.768 kHz时钟晶体。
11 = 精密32.768 kHz振荡器。
8
递增计数。仅适用于16位模式。
用户置1,定时器0递增计数。
用户清0,定时器0递减计数(默认)。
7
定时器0使能位。
用户置1,使能定时器0。
用户清0,禁用定时器0(默认)。
6
定时器0模式。
用户置1,选择周期模式。
用户清0,选择自由模式(默认)。
5
4
保留。
定时器0工作模式。
0 = 16位工作模式(默认)。
1 = 48位工作模式。
3至0
预分频器。
0000 = 时钟源/1(默认)。
0100 = 时钟源/16。
1000 = 时钟源/256。
1111 = 时钟源/32,768。
Rev. A | Page 72 of 132
ADuC7036
定时器 1 载入寄存器
定时器1—通用定时器
名称:T1LD
定时器1是一个带有可编程预分频器的32位通用定时器,工
作时可递增计数或递减计数。预分频器采用低功耗32.768
kHz振荡器、内核时钟或两个外部GPIO中的一个工作。时
地址:0xFFFF0320
默认值:复位后包含组装批次ID(0x00000000)的高16位。
钟源分频系数共有1、16、256或32,768四种。当内核工作
访问类型:读写
在20.48 MHz下且CD = 0,预分频为1(忽略外部GPIO)时,
功能:该32位寄存器保持计数器的32位载入值。
产生48.83 ns的最小分辨率。
计数器可以是标准的32位数或时间格式:小时:分钟:秒:
定时器 1 清除寄存器
百分之一秒。
名称:T1CLRI
定时器1有一个捕捉寄存器(T1CAP),它可以被选定的IRQ
地址:0xFFFF032C
中断源初始断言所触发。触发时,将当前定时器值复制到
访问类型:只写
T1CAP,同时定时器继续运行。此功能可用来更精确地决
定事件断言。
功能:该8位只写MMR通过用户代码写入(任意值)来清
除中断。
定时器1接口包括5个MMR:T1LD、T1VAL、T1CAP、
T1CLRI和T1CON。T1LD、T1VAL和T1CAP都是32位寄存
定时器 1 值寄存器
器,保持32位无符号整数。T1VAL和T1CAP是只读的。
名称:T1VAL
T1CLRI是一个8位寄存器。向其中写入任意值就可以清除
定时器1中断。T1CON是一个配置MMR,如表54所示。
定时器1具有一个后分频器,允许用户在1和256之间进行定
时器1超时计数。要激活后分频器,用户需将位23置1并在
T1CON的位[24:31]内写入所需计数值。当达到超时次数
地址:0xFFFF0324
默认值:0xFFFFFFFF
访问类型:只读
功能:该32位寄存器保持定时器1的当前值。
时,如果T1CON[18]置1,则定时器1就会产生一个中断。
注意,当器件处于低功耗模式且定时器1从GPIO或低功耗
振荡器源接收时钟信号时,定时器1仍继续工作。
定时器1在溢出时从T1LD重新载入值。
32-BIT LOAD
LOW POWER
32.768kHz OSCILLATOR
CORE
CLOCK FREQUENCY
GPIO
PRESCALER
1, 16, 256, OR 32,768
32-BIT
UP/DOWN COUNTER
8-BIT
POSTSCALER
TIMER1 IRQ
GPIO
IRQ[31:0]
CAPTURE
图 33. 定时器 1 框图
Rev. A | Page 73 of 132
07474-033
TIMER1
VALUE
ADuC7036
定时器 1 捕捉寄存器
定时器 1 控制寄存器
名称:T1CAP
名称:T1CON
地址:0xFFFF0330
地址:0xFFFF0328
默认值:0x00000000
默认值:0x01000000
访问类型:只读
访问类型:读写
功能:该32位寄存器保持使能IRQ事件所捕捉的32位值。
功能:该32位MMR配置定时器1的工作模式。
表54. T1CON MMR位分配
位
描述
31至24
8位后分频器。
向后分频器写入8位二进制值。写入0视为1。
可从中读取8位计数器当前值。
23
定时器1使能后分频器。
置1使能定时器1后分频器。使能后,在T1LD所定义的T1CON[31:24]循环次数结束后,产生中断。
清0禁用定时器1后分频器。
22至20
保留。这些位保留,应由用户代码写入0。
19
后分频器比较标志。只读。
如果定时器1溢出次数等于后分频器写入值,则置1。
18
定时器1中断源。
置1,选择从后分频器计数器产生中断。
清0,选择直接从定时器1产生中断。
17
事件选择位。
用户置1,使能定时器捕捉一个事件。用户清0,禁用定时器捕捉一个事件。
16至12
事件选择范围(0至17)。事件见表52。
11至9
时钟选择。
000 = 内核时钟(默认)。
001 = 低功耗32.768 kHz振荡器。
010 = GPIO_8。
011 = GPIO_5。
8
递增计数。
用户置1,定时器1递增计数。
用户清0,定时器1递减计数(默认)。
7
定时器1使能位。
用户置1,使能定时器1。
用户清0,禁用定时器1(默认)。
6
定时器1模式。
用户置1,选择周期模式。
用户清0,选择自由模式(默认)。
5至4
数据格式。
00 = 二进制(默认)。
01 = 保留。
10 = 小时:分钟:秒:百分之一秒(23至0小时)。
11 = 小时:分钟:秒:百分之一秒(255至0小时)。
3至0
预分频器。
0000 = 时钟源/1(默认)。
0100 = 时钟源/16。
1000 = 时钟源/256。
1111 = 时钟源/32,768。
Rev. A | Page 74 of 132
ADuC7036
定时器 2 载入寄存器
定时器2—唤醒定时器
名称:T2LD
定时器2是一个带有可编程预分频器的32位唤醒定时器,工
作时可递增计数或递减计数。预分频器直接从四个时钟源
中的一个接收时钟信号:内核时钟(默认选择)、低功耗
地址:0xFFFF0340
默认值:0x00000000
32.768 kHz振荡器、外部32.768 kHz时钟晶体或精密32.768
访问类型:读写
kHz振荡器。所选时钟源分频系数共有1、16、256或32,768
功能:该32位寄存器保持计数器的32位载入值。
四种。当内核时钟被禁用时,唤醒定时器仍继续运行。当
内核工作在20.48 MHz下且CD = 0,预分频为1时,产生
定时器 2 清除寄存器
48.83 ns的最低分辨率。
名称:T2CLRI
计数器可以是标准的32位数模式或时间格式:小时:分钟:
地址:0xFFFF034C
秒:百分之一秒。
访问类型:只写
定时器2在溢出时从T2LD重新载入。
功能:该8位只写MMR通过用户代码写入(任意值)来清
定时器2接口包括4个MMR:T2LD、T2VAL、T2CLRI和
除中断。
T2CON。T2LD和T2VAL都是32位寄存器,保持32位无符
号整数。T2VAL是一个只读寄存器。T2CLRI是一个8位寄
定时器 2 值寄存器
存器。向其中写入任意值就可以清除定时器2中断。T2CON
名称:T2VAL
是一个配置MMR,如表55所示。
地址:0xFFFF0344
默认值:0xFFFFFFFF
访问类型:只读
功能:该32位寄存器保持定时器2的当前值。
32-BIT LOAD
LOW POWER
32.768kHz OSCILLATOR
CORE
CLOCK
PRESCALER
1, 16, 256, OR 32,768
EXTERNAL 32.768kHz
WATCH CRYSTAL
32-BIT
UP/DOWN COUNTER
TIMER2
VALUE
图 34. 定时器 2 框图
Rev. A | Page 75 of 132
TIMER2 IRQ
07474-034
PRECISION
32.768kHz OSCILLATOR
ADuC7036
定时器 2 控制寄存器
名称:T2CON
地址:0xFFFF0348
默认值:0x0000
访问类型:读写
功能:该16位MMR配置定时器2的工作模式。
表55. T2CON MMR位分配
位
描述
15至11
保留。
10至9
时钟源选择。
00 = 内核时钟(默认)。
01 = 低功耗(32.768 kHz)振荡器。
10 = 外部32.768 kHz时钟晶体。
11 = 精密32.768 kHz振荡器。
8
递增计数。
用户置1,定时器2递增计数。
用户清0,定时器2递减计数(默认)。
7
定时器2使能位。
用户置1,使能定时器2。
用户清0,禁用定时器2(默认)。
6
定时器2模式。
用户置1,选择周期模式。
用户清0,选择自由模式(默认)。
5至4
数据格式。
00 = 二进制(默认)。
01 = 保留。
10 = 小时:分钟:秒:百分之一秒(23至0小时)。只在采用32 kHz时钟时有效。
11 = 小时:分钟:秒:百分之一秒(255至0小时)。只在采用32 kHz时钟时有效。
3至0
预分频器。
0000 = 时钟源/1(默认)。
0100 = 时钟源/16。
1000 = 时钟源/256。此设置应采用小时:分钟:秒:百分之一秒格式和定时器2配合使用。见此表中格式位([5:4])
的10和11置1。
1111 = 时钟源/32,768。
Rev. A | Page 76 of 132
ADuC7036
定时器 3 接口
定时器3—看门狗定时器
定时器3共有两种工作模式:正常模式和看门狗模式。看门
狗定时器用于使处理器在进入非法软件状态后的恢复。一
旦看门狗定时器使能,它需要周期服务来阻止它强制处理
器复位。
定时器3在溢出时从T3LD重新载入。
正常模式
定时器3接口包括4个MMR:T3LD、T3VAL、T3CLRI和
T3CON。T3LD和T3VAL都是16位寄存器(0至15位),保
持16位无符号整数。T3VAL是一个只读寄存器。T3CLRI
是一个8位寄存器。正常模式下向这个寄存器写入任意值会
清除定时器3中断;在看门狗模式下向这个寄存器写入任意
值就会重新开始一个超时周期。T3CON是配置MMR,如表
56所示。
在正常模式下的定时器3和在16位工作模式下的定时器0相
同,但时钟源除外。时钟源采用低功耗32.768 kHz振荡器,
分频系数共有1、16或256三种。
定时器 3 载入寄存器
看门狗模式
默认值:0x0040
看门狗模式通过设置T3CON[5]进入。定时器3从T3LD寄存
器的超时值开始递减计数直到0。当使用1/256预分频时,
最大的超时时间为512秒,且为T3LD的满量程。
访问类型:读写
Flash/EE存储器完成一次页擦除周期和内核执行需要20
ms,为避免与此发生任何冲突,用户软件不得将超时周期
设为30 ms以下。
定时器 3 清除寄存器
T3VAL到达0后,取决于T3CON[1]状态,就会产生复位或
中断。要避免这种情况,就必须在T3VAL达到0之前将任
意值写入T3CLRI。将T3LD值重新载入计数器内后就会开
始一个新的超时周期。
一旦进入看门狗模式,T3LD和T3CON就会被写保护。这
两个寄存器无法被修改,除非上电复位看门狗定时器。任
何其他复位事件,看门狗仍会继续计数。看门狗定时器应
在用户代码的最初行内配置以免陷入看门狗复位的无限循
环内。用户软件只能配置最低30 ms的超时周期。
定时器3在JTAG调试访问期间自动暂停并只在JTAG放弃
内核控制权后才会重新开始计数。默认情况下,定时器3
在断电期间仍会继续计数。但可通过将T3CON位0置1来禁
用。建议采用默认值,即在断电期间仍允许看门狗定时器
继续计数。
名称:T3LD
地址:0xFFFF0360
功能:该16位MMR保持定时器3的重新载入值。
名称:T3CLRI
地址:0xFFFF036C
访问类型:只写
功能:在看门狗模式下该8位只写MMR通过用户代码写入
(任意值)刷新(重新载入)定时器3以防止看门狗定时器
复位事件发生。
定时器 3 值寄存器
名称:T3VAL
地址:0xFFFF0364
默认值:0x0040
访问类型:只读
功能:该16位只读MMR保持定时器3的当前计数值。
16-BIT LOAD
PRESCALER
1, 16, 256
16-BIT
UP/DOWN COUNTER
TIMER3
VALUE
图 35. 定时器 3 框图
Rev. A | Page 77 of 132
WATCHDOG RESET
TIMER3 IRQ
07474-035
LOW POWER
32.768kHz
ADuC7036
定时器 3 控制寄存器
名称:T3CON
地址:0xFFFF0368
默认值:0x0000
访问类型:读写
功能:该16位只读MMR配置定时器3的工作模式,如表56所示。
表56. T3CON MMR位分配
位
描述
15至9
保留。这些位保留,应由用户代码写入0。
8
递增/递减计数使能。
用户代码置1,递增计数。
用户代码清0,递减计数。
7
定时器3使能。
用户代码置1,使能定时器3。
用户代码清0,禁用定时器3。
6
定时器3工作模式。
用户代码置1,定时器3采用周期模式。
用户代码清0,定时器3采用自由模式。
5
看门狗定时器模式使能。
用户代码置1,使能看门狗模式。
用户代码清0,禁用看门狗模式。
4
保留。这些位保留,应由用户代码写入0。
3至2
定时器3时钟(32.768 kHz)预分频器。
00 = 时钟源/1(默认)。
01 = 时钟源/16。
10 = 时钟源/256。
11 = 保留。
1
看门狗定时器IRQ使能。
用户代码置1,在看门狗到达0时产生IRQ中断而非复位。
用户代码清0禁用IRQ选项。
0
PD_OFF。
用户代码置1,在利用POWCON MMR位4使外设断电时停止定时器3。
用户代码清0,在利用POWCON MMR位4使外设断电时使能定时器3。
Rev. A | Page 78 of 132
ADuC7036
定时器 4 值寄存器
定时器4—STI定时器
名称:T4VAL
定时器4是一个带有可编程预分频器的16位通用定时器,工
作时可递增计数或递减计数。定时器4采用内核时钟或低功
耗32.768 kHz振荡器工作,预分频系数共有1、16、256或
32,768四种。
定时器4有一个捕捉寄存器(T4CAP),它可以被选定的IRQ
中断源初始断言所触发。触发时,将当前定时器值复制到
T4CAP,同时定时器继续运行。此功能可用来更精确地决
定事件断言。
定时器4还可用来驱动串行测试接口(STI)外设。
定时器4接口包括5个MMR:T4LD、T4VAL、T4CAP、
T4CLRI和T4CON。T4LD、T4VAL和T4CAP都是16位寄存
器,保持16位无符号整数。T4VAL和T4CAP是只读的。
T4CLRI是一个8位寄存器。向其中写入任意值就可以清除
中断。T4CON是一个配置MMR,如表57所示。
地址:0xFFFF0384
默认值:0xFFFF
访问类型:只读
功能:该16位寄存器保持定时器4的当前值。
定时器 4 捕捉寄存器
名称:T4CAP
地址:0xFFFF0390
默认值:0x0000
访问类型:只读
功能:该16位寄存器保持被使能IRQ事件所捕捉的32位值。
定时器 4 控制寄存器
名称:T4CON
定时器 4 载入寄存器
地址:0xFFFF0388
名称:T4LD
默认值:0x00000000
地址:0xFFFF0380
访问类型:读写
默认值:0x0000
功能:该32位MMR配置定时器4的工作模式。
访问类型:读写
功能:该16位寄存器保持计数器的16位载入值。
定时器 4 清除寄存器
名称:T4CLRI
地址:0xFFFF038C
访问类型:只写
功能:该8位只写MMR通过用户代码写入(任意值)来清
除中断。
16-BIT LOAD
CORE
CLOCK FREQUENCY
PRESCALER
1, 16, 256, OR 32,768
16-BIT
UP/DOWN COUNTER
TIMER4 IRQ
STI
TIMER4
VALUE
IRQ[31:0]
CAPTURE
图 36. 定时器 4 框图
Rev. A | Page 79 of 132
07474-036
LOW POWER
32.768kHz OSCILLATOR
ADuC7036
表57. T4CON MMR位分配
位
描述
31至18
保留。
17
事件选择位。
用户置1,使能定时器捕捉一个事件。
用户清0,禁用定时器捕捉一个事件。
16至12
事件选择范围(0至17)。事件见表52。
11至10
保留。
9
时钟选择。
0 = 内核时钟(默认)。
1 = 低功耗32.768 kHz振荡器。
8
递增计数。
用户置1,定时器4递增计数。
用户清0,定时器4递减计数(默认)。
7
定时器4使能位。
用户置1,使能定时器0。
用户清0,禁用定时器0(默认)。
6
定时器4模式。
用户置1,选择周期模式。
用户清0,选择自由模式(默认)。
5至4
保留。
3至0
预分频器。
0000 = 时钟源/1(默认)。
0100 = 时钟源/16。
1000 = 时钟源/256。
1111 = 时钟源/32,768。
Rev. A | Page 80 of 132
ADuC7036
通用I/O
ADuC7036共有9个通用双向输入/输出(GPIO)引脚。一
外部中断只存在于GPIO_0、GPIO_5、GPIO_7和GPIO_8
般情况下,通过用户代码设置,许多引脚拥有多种功能。
上,中断为电平触发且高电平有效。这些中断不能被锁存;
引脚默认采用GPIO模式。所有GPIO引脚都具有一个内部
因此中断源必须一直存在直到查询IRQSTA或FIQSTA。要
上拉电阻,吸电流能力为0.8 mA,源电流能力为0.1 mA。
确保正确识别,中断源必须有效持续至少一个CD分频内
9个GPIO引脚分成三个端口:端口0、端口1和端口2。端口
核时钟。
0为5位:端口1和端口2分别为2位。每个端口的引脚定义详
所有端口引脚通过三组(每个端口一组)四个端口专用
见表58。典型GPIO结构如图37所示。
MMR配置和控制如下:
OUTPUT DRIVE ENABLE
GPxDAT[31:24]
REG_DVDD
OUTPUT DATA
GPxDAT[23:16]
GPIO
GPIO IRQ1
1ONLY AVAILABLE ON GPIO_0, GPIO_5, GPIO_7, AND GPIO_8.
图 37. 典型 GPIO 结构
07474-037
INPUT DATA
GPxDAT[7:0]
•
GPxCON:Portx控制寄存器
•
GPxDAT:Portx配置和数据寄存器
•
GPxSET:Portx数据置1
•
GPxCLR:Portx数据清0
其中x为端口编号(0、1或2)。
在正常操作期间,用户代码可利用这些通用寄存器来控制
外部GPIO引脚的功能和状态。所有引脚在断电(POWCON)
模式期间保持其外部电平(高或低)。
Rev. A | Page 81 of 132
ADuC7036
表58. 外部GPIO引脚到内部端口信号分配
端口
GPIO引脚
端口信号
功能(由GPxCON定义)
端口0
GPIO_0
P0.0
通用I/O。
GPIOJ
GPIO_2
GPIO_3
GPIO_4
端口1
GPIO_5
GPIO_6
端口2
GPIO_7
IRQO
外部中断请求0。
SS
SPI从机选择I/O。
P0.1
通用I/O。
SCLK
SPI串行时钟I/O。
P0.2
通用I/O。
MISO
SPI主机输入、从机输出。
P0.3
通用I/O。
MOSI
SPI主机输出、从机输入。
P0.4
通用I/O。
ECLK
2.56 MHz时钟输出。
1
P0.5
高压串行接口。
P0.61
高压串行接口。
P1.0
通用I/O。
IRQ1
外部中断请求1。
RxD
UART引脚。
P1.1
通用I/O。
TxD
UART引脚。
Port 2.0
通用I/O。
外部中断请求4。
IRQ4
2
GPIO_8
LIN输出引脚
用来从LIN引脚直接读取以进行一致性测试。
P2.1
通用I/O。
IRQ5
外部中断请求5。
2
LIN高压输入引脚
2
GPIO_11
2
P2.4
通用I/O。
2
LINRX
2
GPIO_12
2
P2.5
LIN输入引脚。
通用I/O。
2
GPIO_131
用来直接驱动LIN引脚以进行一致性测试。
LINTX
LIN输出引脚。
P2.61
通用I/O;STI数据输出。
1
这些信号只是内部信号,不能出现在外部引脚上。这些引脚和HVCON一起用作高压接口电路的两线式接口。
2
这些引脚/信号只是内部信号,不能出现在外部引脚上。用来提供外部引脚诊断写入(GPIO_12)和回读(GPIO_11)能力。
Rev. A | Page 82 of 132
ADuC7036
GPIO端口 0 控制寄存器
名称:GP0CON
地址:0xFFFF0D00
默认值:0x11100000
访问类型:读写
功能:该32位寄存器选择每个端口0引脚的功能。
表59. GPOCON MMR位分配
位
描述
31至29
保留。这些位保留,应由用户代码写入0。
28
保留。这些位保留,应由用户代码写入1。
27至25
保留。这些位保留,应由用户代码写入0。
24
内部P0.6使能位。必须由用户软件置1,在使用HVCON和HVDAT寄存高压接口前使能高压串行接口。
23至21
保留。这些位保留,应由用户代码写入0。
20
内部P0.5使能位。必须由用户软件置1,在使用HVCON和HVDAT寄存高压接口前使能高压串行接口。
19至17
保留。这些位保留,应由用户代码写入0。
16
GPIO_4功能选择位。
用户代码置1,将GPIO_4引脚配置成ECLK,从而在此引脚上使能2.56 MHz时钟输出。用户代码清0,将GPIO_4
引脚配置成通用I/O(GPIO)引脚。
15至13
保留。这些位保留,应由用户代码写入0。
12
GPIO_3功能选择位。
用户代码置1,将GPIO_3引脚配置成SPI端口的MOSI(主机输出从机输入)。用户代码清0,将GPIO_3引脚配
置成通用I/O(GPIO)引脚。
11至9
保留。这些位保留,应由用户代码写入0。
8
GPIO_2功能选择位。
用户代码置1,将GPIO_2引脚配置成SPI端口的MISO(主机输入从机输出)。用户代码清0,将GPIO_2引脚配
置成通用I/O(GPIO)引脚。
7至5
保留。这些位保留,应由用户代码写入0。
4
GPIO_1功能选择位。
用户代码置1,将GPIO_1引脚配置成SPI端口的SCLK(串行时钟I/O)。
用户代码清0,将GPIO_1引脚配置成通用I/O(GPIO)引脚。
3至1
保留。这些位保留,应由用户代码写入0。
0
GPIO_0功能选择位。
用户代码置1,将GPIO_0引脚配置成SPI端口的 SS (串行时钟I/O)。
用户代码清0,将GPIO_0引脚配置成通用I/O(GPIO)引脚。
Rev. A | Page 83 of 132
ADuC7036
GPIO端口 1 控制寄存器
名称:GP1CON
地址:0xFFFF0D04
默认值:0x10000000
访问类型:读写
功能:该32位MMR选择每个端口1引脚的功能。
表60. GP1CON MMR位分配
位
描述
31至5
保留。这些位保留,应由用户代码写入0。
4
GPIO_6功能选择位。
用户代码置1,将GPIO_6引脚配置为TxD,为UART串行端口发送数据。
用户代码清0,将GPIO_6引脚配置为通用I/O(GPIO)引脚。
3至1
保留。这些位保留,应由用户代码写入0。
0
GPIO_5功能选择位。
用户代码置1,将GPIO_5引脚配置为RxD。为UART串行端口接收数据。
用户代码清0,将GPIO_5引脚配置为通用I/O(GPIO)引脚。
Rev. A | Page 84 of 132
ADuC7036
GPIO端口 2 控制寄存器
名称:GP2CON
地址:0xFFFF0D08
默认值:0x01000000
访问类型:读写
功能:该32位MMR选择每个端口2引脚的功能。
表61. GP2CON MMR位分配
位
描述
31至25
保留。这些位保留,应由用户代码写入0。
24
GPIO_13功能选择位。
用户代码置1,将STI数据输出送到STI引脚。
若该位由用户代码清0,即使STI接口正常使能,也不会将STI数据送到外部STI引脚。
23至21
保留。这些位保留,应由用户代码写入0。
20
GPIO_12功能选择位。
用户代码置1,将UART TxD(发送数据)送到LIN/BSD数据引脚。此配置在LIN模式下使用。用户代码清0将LIN/BSD
发送数据送到一个内部通用I/O(GPIO_12)焊盘,然后通过GP2DAT MMR写入。此配置在BSD模式下用来允许用户
代码将输出数据写入到BSD接口,还可用来支持写入高压I/O引脚的诊断功能(见表75中的HVCFG1[2:0])。
19至17
保留。这些位保留,应由用户代码写入0。
16
GPIO_11功能选择位。
用户代码置1,将输入数据从LIN/BSD接口同时送到LIN/BSD硬件时序/同步逻辑和UART RxD(接收数据)。此模式必
须在使用LIN或BSD模式下通过用户代码置1。用户代码清0,内部禁用LIN/BSD输入数据路径。此时GPIO_11用来支持
对所有外部高压I/O引脚的诊断回读(见表75中的HVCFG1[2:0])。
15至5
保留。这些位保留,应由用户代码写入0。
4
GPIO_8功能选择位。
用户代码置1,将LIN/BSD输入数据送到GPIO_8引脚。此模式可将LIN收发器作为单独元件来驱动而不需要和MCU或
UART进行任何交互。用户代码清0,将GPIO_8引脚配置成通用I/O(GPIO)引脚。
3至1
保留。这些位保留,应由用户代码写入0。
0
GPIO_7功能选择位。
用户代码置1,将片内LIN收发器驱动到GPIO_7引脚的数据送到LIN/BSD引脚加以输出。此模式可将LIN收发器作为单
独元件来驱动而不需要和MCU或UART进行任何交互。
用户代码清0,将GPIO_7引脚配置成通用I/O(GPIO)引脚。
Rev. A | Page 85 of 132
ADuC7036
GPIO端口 0 数据寄存器
名称:GP0DAT
地址:0xFFFF0D20
默认值:0x000000XX
访问类型:读写
功能:该32位MMR配置分配给端口0的GPIO引脚的方向(见表58)。还设置配置为输出端的GPIO引脚的输出值并读取配置
为输入端的GPIO引脚的状态。
表62. GPODAT MMR位分配
位
描述
31至29
保留。这些位保留,应由用户代码写入0。
28
端口0.4方向选择位。
用户代码置1,将分配给端口0.4的GPIO引脚配置为输出端。
用户代码清0,将分配给端口0.4的GPIO引脚配置为输入端。
27
端口0.3方向选择位。
用户代码置1,将分配给端口0.3的GPIO引脚配置为输出端。
用户代码清0,将分配给端口0.3的GPIO引脚配置为输入端。
26
端口0.2方向选择位。
用户代码置1,将分配给端口0.2的GPIO引脚配置为输出端。
用户代码清0,将分配给端口0.2的GPIO引脚配置为输入端。
25
端口0.1方向选择位。
用户代码置1,将分配给端口0.1的GPIO引脚配置为输出端。
用户代码清0,将分配给端口0.1的GPIO引脚配置为输入端。
24
端口0.0方向选择位。
用户代码置1,将分配给端口0.0的GPIO引脚配置为输出端。
用户代码清0,将分配给端口0.0的GPIO引脚配置为输入端。
23至21
保留。这些位保留,应由用户代码写入0。
20
端口0.4数据输出。写入到该位的值直接出现在分配给端口0.4的GPIO引脚上。
19
端口0.3数据输出。写入到该位的值直接出现在分配给端口0.3的GPIO引脚上。
18
端口0.2数据输出。写入到该位的值直接出现在分配给端口0.2的GPIO引脚上。
17
端口0.1数据输出。写入值到该位的直接出现在分配给端口0.1的GPIO引脚上。
16
端口0.0数据输出。写入到该位的值直接出现在分配给端口0.0的GPIO引脚上。
15至5
保留。这些位保留,应由用户代码写入0。
4
端口0.4数据输入。只读,反映分配给端口0.4的GPIO引脚的当前状态。应由用户代码写入0。
3
端口0.3数据输入。只读,反映分配给端口0.3的GPIO引脚的当前状态。应由用户代码写入0。
2
端口0.2数据输入。只读,反映分配给端口0.2的GPIO引脚的当前状态。应由用户代码写入0。
1
端口0.1数据输入。只读,反映分配给端口0.1的GPIO引脚的当前状态。应由用户代码写入0。
0
端口0.0数据输入。只读,反映分配给端口0.0的GPIO引脚的当前状态。应由用户代码写入0。
Rev. A | Page 86 of 132
ADuC7036
GPIO端口 1 数据寄存器
名称:GP1DAT
地址:0xFFFF0D30
默认值:0x000000XX
访问类型:读写
功能:该32位MMR配置分配给端口1的GPIO引脚的方向(见表58)。还设置配置为输出端的GPIO引脚的输出值并读取配
置为输入端的GPIO引脚的状态。
表63. GP1DAT MMR位分配
位
描述
31至26
保留。这些位保留,应由用户代码写入0。
25
端口1.1方向选择位。
用户代码置1,将分配给端口1.1的GPIO引脚配置为输出端。
用户代码清0,将分配给端口1.1的GPIO引脚配置为输入端。
24
端口1.0方向选择位。
用户代码置1,将分配给端口1.0的GPIO引脚配置为输出端。
用户代码清0,将分配给端口1.0的GPIO引脚配置为输入端。
23至18
保留。这些位保留,应由用户代码写入0。
17
端口1.1数据输出。写入到该位的值直接出现在分配给端口1.1的GPIO引脚上。
16
端口1.0数据输出。写入到该位的值直接出现在分配给端口1.0的GPIO引脚上。
15至2
保留。这些位保留,应由用户代码写入0。
1
端口1.1数据输入。只读,反映分配给端口1.1的GPIO引脚的当前状态。应由用户代码写入0。
0
端口1.0数据输入。只读,反映分配给端口1.0的GPIO引脚的当前状态。应由用户代码写入0。
Rev. A | Page 87 of 132
ADuC7036
GPIO端口 2 数据寄存器
名称:GP2DAT
地址:0xFFFF0D40
默认值:0x000000XX
访问类型:读写
功能:该32位MMR配置分配给端口2的GPIO引脚的方向(见表58)。还设置配置为输出端的GPIO引脚的输出值并读取配
置为输入端的GPIO引脚的状态。
表64. GP2DAT MMR位分配
位
描述
31
保留。这些位保留,应由用户代码写入0。
30
端口2.6方向选择位。
用户代码置1,将分配给端口2.6的GPIO引脚配置为输出端。
用户代码清0,将分配给端口2.6的GPIO引脚配置为输入端。
29
端口2.5方向选择位。
用户代码置1,将分配给端口2.5的GPIO引脚配置为输出端。此配置用来支持写入高压I/O引脚的诊断功能。
用户代码清0,将分配给端口2.5的GPIO引脚配置为输入端。
28
端口2.4方向选择位。
用户代码置1,将分配给端口2.4的GPIO引脚配置为输出端。
用户代码清0,将分配给端口2.4的GPIO引脚配置为输入端。此配置用来支持回读高压I/O引脚的诊断功能(见
HVCFG1[2:0])。
27至26
保留。这些位保留,应由用户代码写入0。
25
端口2.1方向选择位。
用户代码置1,将分配给端口2.1的GPIO引脚配置为输出端。
用户代码清0,将分配给端口2.1的GPIO引脚配置为输入端。
24
端口2.0方向选择位。
用户代码置1,将分配给端口2.0的GPIO引脚配置为输出端。
用户代码清0,将分配给端口2.0的GPIO引脚配置为输入端。
23
保留。这些位保留,应由用户代码写入0。
22
端口2.6数据输出。写入到该位的值直接出现在分配给端口2.6的GPIO引脚上。
21
端口2.5数据输出。写入到该位的值直接出现在分配给端口2.5的GPIO引脚上。
20至18
保留。这些位保留,应由用户代码写入0。
17
端口2.1数据输出。写入到该位的值直接出现在分配给端口2.1的GPIO引脚上。
16
端口2.0数据输出。写入到该位的值直接出现在分配给端口2.0的GPIO引脚上。
15至7
保留。这些位保留,应由用户代码写入0。
6
端口2.6数据输入。只读,反映分配给端口2.6的GPIO引脚的当前状态。应由用户代码写入0。
5
端口2.5数据输入。只读,反映分配给端口2.5的GPIO引脚的当前状态。应由用户代码写入0。
4
端口2.4数据输入。只读,反映分配给端口2.4的GPIO引脚的当前状态。应由用户代码写入0。
3至2
保留。这些位保留,应由用户代码写入0。
1
端口2.1数据输入。只读,反映分配给端口2.1的GPIO引脚的当前状态。应由用户代码写入0。
0
端口2.0数据输入。只读,反映分配给端口2.0的GPIO引脚的当前状态。应由用户代码写入0。
Rev. A | Page 88 of 132
ADuC7036
GPIO端口 0 设置寄存器
名称:GP0SET
地址:0xFFFF0D24
访问类型:只写
功能:该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独拉高。用户代码可利用GP0SET MMR来
实现,不必修改或维持GPIO引脚状态(使用GP0DAT时用户代码要求)。
表65. GPOSET MMR位分配
位
描述
31至21
保留。这些位保留,应由用户代码写入0。
20
端口0.4设置位。
用户代码置1,将外部GPIO_4引脚拉高。
用户软件清0不会影响外部GPIO_4引脚。
19
端口0.3设置位。
用户代码置1,将外部GPIO_3引脚拉高。
用户软件清0不会影响外部GPIO_3引脚。
18
端口0.2设置位。
用户代码置1,将外部GPIO_2引脚拉高。
用户软件清0不会影响外部GPIO_2引脚。
17
端口0.1设置位。
用户代码置1,将外部GPIO_1引脚拉高。
用户软件清0不会影响外部GPIO_1引脚。
16
端口0.0设置位。
用户代码置1,将外部GPIO_0引脚拉高。
用户软件清0不会影响外部GPIO_0引脚。
15至0
保留。这些位保留,应由用户代码写入0。
GPIO端口 1 设置寄存器
名称:GP1SET
地址:0xFFFF0D34
访问类型:只写
功能:该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独拉高。用户代码可利用GP1SET MMR来
实现,不必修改或维持GPIO引脚状态(使用GP1DAT时用户代码要求)。
表66. GP1SET MMR位分配
位
描述
31至18
保留。这些位保留,应由用户代码写入0。
17
端口1.1设置位。
用户代码置1,将外部GPIO_6引脚拉高。
用户软件清0不会影响外部GPIO_6引脚。
16
端口1.0设置位。
用户代码置1,将外部GPIO_5引脚拉高。
用户软件清0不会影响外部GPIO_5引脚。
15至0
保留。这些位保留,应由用户代码写入0。
Rev. A | Page 89 of 132
ADuC7036
GPIO端口 2 设置寄存器
名称:GP2SET
地址:0xFFFF0D44
访问类型:只写
功能:该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独拉高。用户代码可利用GP2SET MMR来
实现,不必修改或维持GPIO引脚状态(使用GP2DAT时用户代码要求)。
表67. GP2SET MMR位分配
位
31至23
22
21
20至18
17
16
15至0
描述
保留。这些位保留,应由用户代码写入0。
端口2.6设置位。
用户代码置1,将外部GPIO_13引脚拉高。
用户软件清0不会影响外部GPIO_13引脚。
端口2.5设置位。
用户代码置1,将外部GPIO_12引脚拉高。
用户软件清0不会影响外部GPIO_12引脚。
保留。这些位保留,应由用户代码写入0。
端口2.1设置位。
用户代码置1,将外部GPIO_8引脚拉高。
用户软件清0不会影响外部GPIO_8引脚。
端口2.0设置位。
用户代码置1,将外部GPIO_7引脚拉高。
用户软件清0不会影响外部GPIO_7引脚。
保留。这些位保留,应由用户代码写入0。
GPIO端口 0 清除寄存器
名称:GP0CLR
地址:0xFFFF0D28
访问类型:只写
功能:该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独清除拉低。用户代码可利用GP0SET MMR
来实现,不必修改或维持GPIO引脚状态(使用GP0DAT时用户代码要求)。
表68. GPOCLR MMR位分配
位
31至21
20
19
18
17
16
15至0
描述
保留。这些位保留,应由用户代码写入0。
端口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. A | Page 90 of 132
ADuC7036
GPIO端口 1 清除寄存器
名称:GP1CLR
地址:0xFFFF0D38
访问类型:只写
功能:该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独清除拉低。用户代码可利用GP1CLR MMR
来实现,不必修改或维持GPIO引脚状态(使用GP1DAT时用户代码要求)。
表69. GP1CLR MMR位分配
位
描述
31至18
保留。这些位保留,应由用户代码写入0。
17
端口1.1清除位。
用户代码置1,将外部GPIO_6引脚清除拉低。
用户软件清0不会影响外部GPIO_6引脚。
16
端口1.0清除位。
用户代码置1,将外部GPIO_5引脚清除拉低。
用户软件清0不会影响外部GPIO_5引脚。
15至0
保留。这些位保留,应由用户代码写入0。
GPIO端口 2 清除寄存器
名称:GP2CLR
地址:0xFFFF0D48
访问类型:只写
功能:该32位MMR允许用户代码对外部GPIO引脚分别进行位寻址以仅将其单独清除拉低。用户代码可利用GP2CLR MMR
来实现,不必修改或维持GPIO引脚状态(采用GP2DAT时用户代码要求)。
表70. GP2CLR MMR位分配
位
描述
31至23
保留。这些位保留,应由用户代码写入0。
22
端口2.6清除位。
用户代码置1,将外部GPIO_13引脚清除拉低。
用户软件清0不会影响外部GPIO_8引脚。
21
端口2.5清除位。
用户代码置1,将外部GPIO_12引脚清除拉低。
用户软件清0不会影响外部GPIO_7引脚。
20至18
保留。这些位保留,应由用户代码写入0。
17
端口2.1清除位。
用户代码置1,将外部GPIO_8引脚清除拉低。
用户软件清0不会影响外部GPIO_8引脚。
16
端口2.0清除位。
用户代码置1,将外部GPIO_7引脚清除拉低。
用户软件清0不会影响外部GPIO_7引脚。
15至0
保留。这些位保留,应由用户代码写入0。
Rev. A | Page 91 of 132
ADuC7036
高压外设控制接口
ADuC7036集成了多个高压电路功能,它们通过包括两个
下列高压电路功能通过此接口监控。图38显示高压接口和
MMR ( HVCON 和 HVDAT ) 的 寄 存 接 口 来 加 以 监 控 。
下列相关电路的顶层架构:
HVCON寄存器充当命令字节解释器,允许微控制器对四个
•
精密振荡器
高压状态或配置寄存器中的一个进行8位数据读写操作(数
•
唤醒(WU)引脚功能
•
电源监控器(PSM)
•
低压标志(LVF)
•
LIN工作模式
•
STI诊断
•
高压诊断
•
高压衰减器缓冲电路
•
高压(HV)温度监控器
值存放在HVDAT内)。这些高压寄存器不是MMR,但通
常 被 称 为 间 接 寄 存 器 ; 即 只 能 通 过 HVCON 和 HVDAT
MMR间接访问(如名称所暗示)。
HVCON寄存器和间接高压寄存器的物理接口采用基于
2.56 MHz串行时钟的两线(数据和时钟)式串行接口。因
此,从MCU内核将命令写入HVCON到该命令或数据到达
间接高压寄存器内需要有限的10 μs(最大)延时。MCU内
核将命令写入HVCON到间接寄存器数据被回读到HVDAT
寄存器内也需要有限的10 μs延时。MCU可轮询忙碌位(如
在MCU读取时HVCON位0)以确认读/写命令何时结束。
(INDIRECT)
HIGH VOLTAGE
REGISTERS
HIGH VOLTAGE
INTERFACE
MMRs
HVCON
HVDAT
HVCFG0
SERIAL
DATA
SERIAL
CLOCK
HVCFG0[6]
PRECISION
OSCILLATOR
HVCFG0[3]
PSM
HVCFG0[2]
LVF
HVCFG1
SERIAL
INTERFACE
CONTROLLER
HVSTA
HVMON
PSM—HVSTA[5]
WU—HVSTA[4]
IRQ3
(IRQEN[16])
HIGH VOLTAGE
INTERRUPT
CONTROLLER
ARM7
MCU
AND
PERIPHERALS
OVER TEMP—HVSTA[3]
LIN S-SCT—HVSTA[2]
STI S-SCT—HVSTA[1]
WU S-SCT—HVSTA[0]
HVCFG0[5]
HVCFG0[1:0]
WU DIAGNOSTIC INPUT
HVCFG0[4]
STI DIAGNOSTIC INPUT
P2.6
WU DIAGNOSTIC OUTPUT
HVMON[7]
HIGH VOLTAGE
DIAGNOSTIC
CONTROLLER
LIN DIAGNOSTIC INPUT
P2.5
STI DIAGNOSTIC OUTPUT
HVMON[5]
HVCFG0[4]
HVCFG1[4]
LIN DIAGNOSTIC OUTPUT
P2.4
HVCFG1[4]
LIN
MODES
WU I/O
CONTROL
STI I/O
CONTROL
HVCFG1[3]
HVCFG1[6]
HVCFG1[5]
ATTENUATOR
AND
BUFFER
图 38. 高压接口顶层框图
Rev. A | Page 92 of 132
HV TEMP
MONITOR
HVCFG1[3]
07474-038
HVCFG1[7]
ADuC7036
高压接口控制接口
名称:HVCON
地址:0xFFFF0804
默认值:由内核更新
访问类型:读写
功能:该8位寄存器用作高压控制接口的命令字节解释器。将高压电路相关的一组四个间接寄存器的写入字节解释为读或
写命令。HVDAT寄存器用来存放间接寄存器的写入或回读数据。
表71. HVCON MMR写入位分配
位
描述
7至0
命令字节。含义为
0x00 = 将高压寄存器HVCFG0回读到HVDAT。
0x01 = 将高压寄存器HVCFG1回读到HVDAT。
0x02 = 将高压状态寄存器HVSTA回读到HVDAT。
0x03 = 将高压状态寄存器HVMON回读到HVDAT。
0x08 = 将HVDAT内的值写入高压寄存器HVCFG0。
0x09 = 将HVDAT内的值写入高压寄存器HVCFG1。
表72. HVCON MMR读取位分配
位
描述
7至3
保留。
2
发送到高压芯片命令状态。
1 = 命令成功完成。
0 = 命令失败。
1
高压芯片读取命令状态。
1 = 命令成功完成。
0 = 命令失败。
0
忙碌位(只读)。当用户代码读取此寄存器时,位0应视为高压接口的忙碌位。可用来决定读取请求是否已完
成。除非忙碌= 0,否则此表中所述高压(读/写)命令不能写入HVCON。
忙碌= 1,高压接口忙碌且未完成前一个HVCON写入命令。位1、2无效。
忙碌= 0,高压接口空闲且已完成HVCON写入命令。位1、2有效。
Rev. A | Page 93 of 132
ADuC7036
高压数据寄存器
名称:HVDAT
地址:0xFFFF080C
默认值:由内核更新
访问类型:读写
功能:该12位寄存器保持下列高压接口寄存器的间接读写数据。
表73. HVDAT MMR位分配
位
描述
11至8
高压数据HVDAT[7:0]相关的命令。这些位为只读且应写入0
0x00 = 将高压寄存器HVCFG0回读到HVDAT。
0x01 = 将高压寄存器HVCFG1回读到HVDAT。
0x02 = 将高压状态寄存器HVSTA回读到HVDAT。
0x03 = 将高压状态寄存器HVMON回读到HVDAT。
0x08 = 将HVDAT内的值写入高压寄存器HVCFG0。
0x09 = 将HVDAT内的值写入高压寄存器HVCFG1。
7至0
欲读/写的高压数据
Rev. A | Page 94 of 132
ADuC7036
高压配置 0 寄存器
名称:HVCFG0
地址:通过HVCON高压接口间接寻址
默认值:0x00
访问类型:读写
功能:该8位寄存器控制ADuC7036上的高压电路功能。由于不是MMR,不会出现在MMR存储器映射内。通过HVCON寄
存器接口访问。欲写入该寄存器的数据通过HVDAT MMR来装载,从该寄存器回读数据也是通过HVDAT MMR。
表74. HVCFGO位分配
位
描述
7
唤醒/STI热关断禁用。
置1,在发生过热事件时禁用唤醒/STI驱动器的自动关断。
清0,在发生过热事件时使能唤醒/STI驱动器的自动关断。
6
精密振荡器使能位。
置1,使能精密131 kHz振荡器。振荡器启动时间一般持续70 μs(包括10 μs的高压接口延时)。
清0,关断精密131 kHz振荡器。
5
位串行设备(BSD)模式使能位。
置1,禁用内部(LIN)上拉电阻并将LIN/BSD引脚配置用于BSD操作。
清0,使能LIN/BSD引脚上的内部(LIN)上拉电阻。
4
唤醒(WU)断言位。
置1,置位外部WU引脚为高电平。
清0,通过内部10 kΩ下拉电阻将外部WU引脚拉低。
3
电源监控器(PSM)使能位。
置1,使能电源(VDD引脚上的电压)监控器。如果IRQ3(IRQEN[16])使能,一旦VDD引脚上的电压下降到
6 V以下,PSM就会产生中断。
清0,禁用电源(VDD引脚上的电压)监控器。
2
低压标志(LVF)使能位。
置1,使能LVF功能。上电后可通过HVMON[3]查询低压标志以决定REG_DVDD电压是否先前下降到2.1 V以下。
清0,禁用LVF功能。
1至0
LIN工作模式。使能/禁用LIN驱动器。
00 = LIN禁用。
01 = 保留(LIN V2.0不兼容)。
10 = LIN使能。
11 = 保留,未使用。
Rev. A | Page 95 of 132
ADuC7036
高压配置 1 寄存器
名称:HVCFG1
地址:通过HVCON高压接口间接寻址
默认值:0x00
访问类型:读写
功能:该8位寄存器控制ADuC7036上的高压电路功能。由于不是MMR,不会出现在MMR存储器映射内。通过HVCON寄
存器接口访问。欲写入该寄存器的数据通过HVDAT MMR来装载,从该寄存器回读数据也是通过HVDAT MMR。
表75. HVCFG1位分配
位
描述
7
电压衰减器诊断使能位。
置1,接通1.29μ A电流源,将170 mV差分电压加到电压通道测量上。
清0,禁用电压衰减器诊断功能。
6
高压温度监控器。它是一个靠近高压电路的未校准片内温度监控器,和片内精密温度传感器(通过
ADC1CON[7:6]控制)完全分开,允许用户代码监控ADuC7036芯片最热部分附近的温度变化。在25°C时的典
型输出电压为600 mV且负温度系数一般为-2.1 mV/°C。
置1,使能片内高压温度监控器。此时它的电压输出直接送到电压通道ADC。
清0,禁用片内高压温度监控器。
5
电压通道短路使能位。
置1,使电压通道ADC内部短路(在衰减器处,在ADC输入缓冲前)并允许噪声的自诊断测试。
清0,禁止电压通道内部短路。
4
WU和STI回读使能位。
置1,使能外部WU和STI引脚输入功能。此时WU和STI引脚上的上升或下降沿跳变会产生一个高压中断。置位
后WU和STI引脚状态可通过HVMON寄存器(HVMON[7]和HVMON[5])来监控。
清0,禁用外部WU和STI引脚输入功能。
3
高压I/O驱动器使能位。
置1,再使能高压I/O引脚(LIN/BSD、STI和WU),这些引脚由于短路电流事件而已被禁用(该事件对于LIN/BSD
必须持续20 μs以上而对于WU引脚必须持续400 μs以上)。一旦WU和STI引脚由于热关断事件而被禁用,也必
须将此位置1以将它们再使能。注意,此位必须置1以清除短路事件造成的任何未决中断(即使事件已过去)
并再使能高压I/O引脚。
自动清0。
2
使能/禁用短路保护(LIN/BSD和STI)。
置1,使能LIN引脚被动短路保护。此时LIN/BSD引脚上的短路事件会产生高压中断IRQ3(前提是IRQEN[16]
使能),并置位HVSTA内的相应状态位,但不会禁用短路引脚。
清0,使能LIN/BSD引脚主动短路保护。此时在短路事件期间LIN/BSD引脚产生高压中断(IRQ3),置位
HVSTA[16],并自动禁用短路引脚。禁用后,引脚只能通过写入HVCFG1[3]来再使能。
1
WU引脚超时(单稳态触发器)计数器使能/禁用。
置1,禁用WU I/O超时计数器。
清0,使能超时计数器,在用户代码通过HVCFG0[4]置位WU引脚1.3秒后自动拉高WU引脚。
0
WU开路诊断使能。
置1,使能VDD引脚内部WU I/O诊断上拉电阻,从而允许检测WU引脚开路状况。
清0,禁用内部WU I/O诊断上拉电阻。
Rev. A | Page 96 of 132
ADuC7036
高压监控器寄存器
名称:HVMON
地址:通过HVCON高压接口间接寻址
默认值:0x00
访问类型:只读
功能:该8位只读寄存器反映使能ADuC7036内高压相关电路及功能的当前状态。由于不是MMR,不会出现在MMR存储
器映射内。通过HVCON寄存器接口访问并通过HVDAT回读数据。
表76. HVMON位分配
位
描述
7
WU引脚诊断回读。通过HVCFG1[4]使能后,这个只读位反映外部WU引脚状态。
6
过热。
0 = 未发生热关断事件。
1 = 已发生热关断事件。
5
STI引脚诊断回读。通过HVCFG1[4]使能后,这个只读位仅反映外部STI引脚状态。
4
缓冲使能。
0 = 电压通道ADC输入缓冲禁用。
1 = 电压通道ADC输入缓冲使能。
3
低压标志状态位。只在通过HVCFG0[2]使能时有效。
0(上电时) = REG_DVDD已下降至2.1 V以下。此时,RAM内容视为已被破坏。
1(上电时) = REG_DVDD未下降至2.1 V以下。此时RAM内容视为有效。只能通过再使能HVCFG0[2]内的低
压标志来清0。
2
LIN/BSD短路状态标志。
0 = LIN/BSD驱动器工作正常。
1 = LIN/BSD驱动器已发生过短路状况并通过写入HVCFG1[3]自动清0。
1
STI短路状态标志。
0 = STI驱动器工作正常。
1 = STI驱动器已发生过短路状况并通过写入HVCFG1[3]自动清0。
0
唤醒短路状态标志。
0 = 唤醒驱动器工作正常。
1 = 唤醒驱动器已发生过短路状况。
Rev. A | Page 97 of 132
ADuC7036
高压状态寄存器
名称:HVSTA
地址:通过HVCON高压接口间接寻址
默认值:0x00
访问类型:只读,应只在高压中断时读取。
功能:该8位只读寄存器反映HVMON寄存器内所有相应位的状态变化。由于不是MMR,不会出现在MMR存储器映射内。
通过HVCON寄存器接口访问并通过HVDAT回读数据。高压中断控制器响应高压中断事件,将高压状态寄存器(HVSTA)
的当前值同时自动载入HVDAT寄存器内。
表77. HVSTA位分配
位
描述
7至6
保留。这些位不能使用,保留供未来使用。
5
PSM状态位。只在通过HVCFG0[3]使能时有效。不锁存且需要使能IRQ来加以检测。
0 = VDD引脚上的电压保持在6 V以上。
1 = VDD引脚上的电压降到6 V以下。
4
WU请求状态位。只在通过HVCFG1[4]使能时有效。
0 = WU引脚未曾产生高压中断。
1 = WU引脚上的上升或下降沿跳变产生一个高压中断(当通过HVCFG1[4]使能时)。
3
过热。该位始终使能。
0 = 未发生热关断事件。
1 = 已发生热关断事件。一旦发生热关断,所有高压(LIN/BSD、WU和STI)引脚驱动器都自动禁用。
2
LIN/BSD短路状态标志。
0 = LIN/BSD正常工作。通过读取HVSTA寄存器自动清0。
1 = 检测到LIN/BSD短路。此时LIN驱动器自动禁用。
1
STI短路状态标志。
0 = STI驱动器正常工作。通过读取HVSTA寄存器自动清0。
1 = STI驱动器已发生过短路状况。
0
唤醒短路状态标志。
0 = 唤醒正常工作。
1 = 检测到唤醒短路。
Rev. A | Page 98 of 132
ADuC7036
唤醒(WU)引脚
默认情况下,单稳态触发器在1.3秒后使能和禁用唤醒驱动
器,可通过HVCFG1[1]来禁用单稳态触发器。如果唤醒单
唤醒(WU)引脚是一个通过HVCON和HVDAT控制的高
稳态触发器被禁用,唤醒驱动器在1.3秒后将被禁用。
压GPIO。
WU引脚还带一个短路检测功能。当唤醒引脚供应100 mA
唤醒(WU)引脚电路描述
以上电流一般持续400 μs时,就会产生一个高压中断,并
默认情况下,WU引脚被配置成具有内部10 kΩ下拉电阻和
将HVMON[0]置1。
高端FET驱动器的输出端。在默认工作模式下,通过强制
外部系统WU总线为高电平,WU引脚指定用于产生高电平
热关断事件会禁用WU驱动器。此后必须利用HVCFG1[3]
有效系统唤醒请求。用户代码可通过直接写入HVCFG0[4]
将其手动再使能。
来置位WU输出。
HVCFG1[4]写入1可将WU引脚配置成I/O模式。在此模式
注意,在10 μs延时后输出才响应;此延时是HVCON或
下,上升或下降沿会立即产生一个高压中断。HVMON[7]
HVDAT MMR和高压接口的串行通信中固有的(参见“高
直接反映外部WU引脚的状态并指示外部唤醒总线(包括
压外设控制接口”部分)。
RLOAD = 1 kΩ,CLOAD = 91 nF且RLIMIT = 39 Ω)高于还是低
于3 V典型电压。
内部FET驱动器能够供应相当大的电流;因此如果它长时
间置位,就可能出现严重的片内自发热。为此包括了一个
单稳态触发器(即1.3秒超时定时器)。
VDD
SHORT-CIRCUIT
TRIP REFERENCE
400µs
GLITCH
IMMUNITY
INTERNAL
SENSE
RESISTOR
NORMAL
HVCFG0[4]
HVCFG1[0]
6kΩ
~1V
NORMAL
HVMON[7]
R1
6.6kΩ
R2
3.3kΩ
ENABLE
READBACK
HVCFG1[4]
OPEN-CIRCUIT
DIAGNOSTIC
RESISTOR
INTERNAL
10kΩ
RESISTOR
IO_VSS
图 39. WU 电路框图
Rev. A | Page 99 of 132
EXTERNAL
WU PIN
EXTERNAL
CURRENT-LIMIT
RESISTOR
39Ω
CLOAD
91nF
RLOAD
1kΩ
EXTERNAL
WAKE-UP
BUS
07474-039
SHORT-CIRCUIT
PROTECTION
OUTPUT CONTROL
HVMON[0]
ADuC7036
低压标志(LVF)
高压外设控制接口中断处理
ADuC7036有一个低压标志(LVF),使用户可以监控
高压电路集成了一个中断控制器。它通过IRQEN[16]使能,
REG_DVDD。当通过HVCFG0[2]使能时,可通过HVMON[3]
然后6个高压源其中的一个可置位高压中断(IRQ3)信号
来监控低压标志。如果REG_DVDD降至2.1 V以下,则
并中断MCU内核。
HVMON[3]清0且RAM内容已被破坏。低压标志在使能后
尽管正常情况下MCU通过跳转到IRQ或FIQ矢量地址来响
只 能 通 过 REG_DVDD 降 至 2.1 V 以 下 或 通 过 利 用
应此中断事件,但高压中断控制器仍同时自动地将高压状
HVCFG0[2]禁用LVF功能来复位。
态寄存器(HVSTA)的当前值载入HVDAT寄存器内。此
时HVCON[0]内的忙碌位被置1,指示传送正在进行中并在
高压诊断
如表78所示,可在WU、LIN和STI引脚上诊断故障状况。
10 μs后清0以指示可从HVDAT获取HVSTA内容。
因此中断处理程序可一直轮询HVCON内的忙碌位,直到其
置位。在忙碌位清0后,必须检查HVCON[1]以确保正确读
取数据。接下来,可读取HVDAT寄存器。此时它保持着
HVSTA寄存器的值。然后可查询状态标志以决定高压中断
的确切来源,并采取适当操作。
表78.高压诊断
高压引脚
故障状况
方法
结果
LIN或STI
LIN或STI和BAT短路
驱动LIN或STI至低电平
如果持续吸取100 mA以上电流,20μs后就会产生LIN
或STI短路中断。
WU
LIN或STI和GND短路
驱动LIN或STI至高电平
LIN或STI回读操作回读低电平。
唤醒和VBAT短路
驱动WU至低电平
在HVMON[7]内回读高电平。
唤醒和GND短路
驱动WU至高电平
如果产生100 mA以上电流,400 μs后就会产生WU短
路中断。
开路
使能OC诊断电阻,同时禁用WU。 如果接有负载,则HVMON[7]清0;如果WU开路,
则置1。
Rev. A | Page 100 of 132
ADuC7036
UART串行接口
ADuC7036有一个16,450兼容UART。它是一个全双工、通
小数分频器
用异步接收器/发送器。UART的作用是对从外设接收的数
小数分频器配合正常波特率发生器可以生成精确高速的波
据字符进行串并转换并对从ARM7TDMI接收的数据字符
特率。
CORE
CLOCK
波特率生成,并还支持一种网络可寻址模式。UART功能
FBEN
/2
通过ADuC7036的GPIO_5/IRQ1/RxD和GPIO_6/ TxD引脚
/16DL
提供。
UART
/(M+N/2048)
07474-040
进行并串转换。该UART有一个小数分频器以促进高精度
图 40. 小数分频器波特率生成
串行通信采用异步协议,支持各种字长、停止位以及配置
寄存器可选的奇偶校验生成形式。
如下可利用小数分频器计算波特率:
波特率生成
ADuC7036有两种UART波特率生成模式:正常450 UART
波特率 = 2
波特率生成和ADuC7036小数分频器波特率生成。
M+
正常 450 UART波特率生成
CD
20.48MHz
N ⎞
⎛
× 16 × DL × 2 × ⎜ M +
⎟
2048 ⎠
⎝
(2)
N
20.48MHz
=
2048 Baud Rate × 2 CD × 16 × DL × 2 ×
该波特率是利用COMDIV0和COMDIV1 MMR内值(均为
16位,DL)划分内核时钟的分频形式。标准波特率生成器
其中:
公式:
CD是时钟分频器。
20.48MHz
波特率 =
2 CD × 16 × 2 × DL
(1)
DL是分频锁存器。
M是除数的整数部分;小数分频器将输入除以非整数M.N。
表79列举了几种常见波特率值。
N是除数的小数部分;小数分频器将输入除以非整数M.N。
表79. 利用标准波特率发生器的波特率
表80列举了几种常见波特率值。
波特率(bps) CD
DL
9600
0
0x43 9552
0.50%
表80. 利用小数波特率发生器的波特率
19,200
0
0x21 19,394
1.01%
波特率
115,200
0
0x6
106,667
7.41%
(bps)
CD
DL
M
N
实际波特率
百分比误差
9600
3
0x8
10,000
4.17%
9600
0
0x42
1
21
9598.55
0.015%
19,200
3
0x4
20,000
4.17%
19,200
0
0x21
1
21
19,197.09
0.015%
115,200
3
0x1
80,000
30.56%
115,200
0
0x5
1
228
115,177.51
0.0195%
实际波特率 百分比误差
Rev. A | Page 101 of 132
ADuC7036
UART Rx寄存器
UART寄存器定义
名称:COMRX
此UART接口包括下列9个寄存器:
地址:0xFFFF0700
•
COMTX:8位发送寄存器
•
COMRX:8位接收寄存器
•
COMDIV0:分频锁存器(低字节)
访问类型:只读
•
COMDIV1:分频锁存器(高字节)
功能:该8位寄存器接收利用UART发送的数据以供读取。
•
COMCON0:线路控制寄存器
UART分频锁存器寄存器 0
•
COMCON1:线路控制寄存器
名称:COMDIV0
•
COMSTA0:线路状态寄存器
•
COMIEN0:中断使能寄存器
•
COMIID0:中断识别寄存器
•
COMDIV2:16位小数波特率分频寄存器
默认值:0x00
地址:0xFFFF0700
默认值:0x00
访问类型:读写
COMTX、COMRX和COMDIV0共用相同的地址。要访问
COMTX、COMIEN0和COMRX,需将COMCON0寄存器内
功能:该8位寄存器保持控制UART波特率的分频锁存器的
最低有效字节。
的位7清0;要访问COMDIV0和COMDIV1,则将其置1。
UART分频锁存器寄存器 1
UART Tx寄存器
名称:COMDIV1
名称:COMTX
地址:0xFFFF0704
地址:0xFFFF0700
默认值:0x00
访问类型:只写
访问类型:读写
功能:写入该8位寄存器后允许利用UART发送数据。
功能:该8位寄存器保持控制UART波特率的分频锁存器的
最高有效字节。
Rev. A | Page 102 of 132
ADuC7036
UART控制寄存器 0
名称:COMCON0
地址:0xFFFF070C
默认值:0x00
访问类型:读写
功能:该8位寄存器配合COMCON1控制UART操作。
表81. COMCONO MMR位分配
位
7
名称
DLAB
6
BRK
5
SP
4
EPS
3
PEN
2
停止
1至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位。
UART控制寄存器 1
名称:COMCON1
地址:0xFFFF0710
默认值:0x00
访问类型:读写
功能:该8位寄存器配合COMCON0控制UART操作。
表82. COMCON1 MMR位分配
位
7至6
名称
SMS
5
4
3至0
LOOPBACK
描述
UART输入多路复用器。
00 = RxD由LIN输入驱动;适用于利用LIN引脚进行LIN通信。
01 = 保留。
10 = RxD由GP5驱动;适用于利用GPIO_5/IRQ1/RxD引脚(RxD)进行串行通信。
11 = 保留。
保留。未使用。
回送。用户置1,使能回送模式。此时强制TxD为高电平。
保留。未使用。
Rev. A | Page 103 of 132
ADuC7036
UART状态寄存器 0
名称:COMSTA0
地址:0xFFFF0714
默认值:0x60
访问类型:只读
功能:该8位只读寄存器反映UART的当前状态。
表83. COMSTAO MMR位分配
位
名称
7
6
描述
保留。
TEMT
COMTX和移位寄存器空状态位。
COMTX和移位寄存器为空时自动置1。该位指示数据已发送;即移位寄存器不再保持数据。
通过写入COMTX自动清0。
5
THRE
COMTX空状态位。
COMTX为空时自动置1。THRE位置1便可写入COMTX,但前面数据可能还未发送并仍可
能存在于移位寄存器内。
通过写入COMTX自动清0。
4
BI
断开指示符。
当SIN保持低电平超过最大字长时置1。
自动清0。
3
FE
帧错误。
当停止位无效时置1。
自动清0。
2
PE
奇偶校验错误。
当发生奇偶校验错误时置1。
自动清0。
1
OE
溢出错误。
当前读取数据被覆盖,自动置1。
自动清0。
0
DR
数据就绪。
COMRX满时自动置1。
COMRX读取后清0。
Rev. A | Page 104 of 132
ADuC7036
UART中断使能寄存器 0
名称:COMIEN0
地址:0xFFFF0704
默认值:0x00
访问类型:读写
功能:该8位寄存器使能和禁用个别UART中断源。
表84. COMIENO MMR位分配
位
名称
7至4
描述
保留。未使用。
3
EDSSI
保留。该位应写入0。
2
ELSI
RxD状态中断使能位。
用户置1,在COMSTA0[3:1]寄存器任一位被置1时使能中断产生。
由用户清0。
1
ETBEI
使能发送缓冲空中断。
用户置1,当发送期间缓冲为空时,即当COMSTA0[5]置1时使能中断。
由用户清0。
0
ERBFI
使能接收缓冲满中断。
用户置1,当接收期间缓冲满时使能中断。
由用户清0。
UART中断识别寄存器 0
名称:COMIID0
地址:0xFFFF0708
默认值:0x01
访问类型:只读
功能:该8位寄存器反映UART中断源。
表85. COMIIDO MMR位分配
状态位[2:1]
位0 NINT
00
1
11
0
1
接收线路状态中断
读取COMSTA0
10
0
2
接收缓冲满中断
读取COMRX
01
0
3
发送缓冲空中断
将数据写入COMTX或读取COMIID0
00
0
4
保留
保留
优先级
定义
清除操作
无中断
Rev. A | Page 105 of 132
ADuC7036
UART小数分频器寄存器
名称:COMDIV2
地址:0xFFFF072C
默认值:0x0000
访问类型:读写
功能:该16位寄存器控制ADuC7036小数分频器操作。
表86. COMDIV2 MMR位分配
位
名称
描述
15
FBEN
小数波特率发生器使能位。
用户置1,使能小数波特率发生器。
用户清0,利用标准450 UART波特率发生器产生波特率。
14至13
12至11
保留。
FBM[1:0]
小数分频器M。如果FBM = 0,则M = 4。有关使用M小数分频器波特率计算见公式2,有
关常见波特率值见表80。
10至0
FBN[10:0]
小数分频器N。有关使用小数分频器波特率计算见公式2,有关常见波特率值见表80。
Rev. A | Page 106 of 132
ADuC7036
串行外设接口
ADuC7036片内集成了一个完整硬件串行外设接口(SPI)。
在主模式下,时钟的极性和相位由SPICON寄存器控制,比
SPI是一个工业标准同步串行接口,允许8位数据的同步发
特率利用SPI波特率计算在SPIDIV寄存器中定义如下:。
送和同时接收,即全双工。
fCLOCKSERIA =
该SPI接口只由内核时钟分频器位(POWCON[2:0] = 0000
(3)
20.48MHz
2 × (1 + SPIDIV )
或001)控制。
SPI时钟的最大速度取决于时钟分频位并归纳于表88内。
该SPI端口可配置为主机或从机操作由四个多路复用的
表88. 主模式下SPI速度和时钟分频位对照表
GPIO引脚。这四个SPI引脚分别为MISO、MOSI、SCLK和
CD位设置
SPIDIV
最大SCLK(MHz)
0
0x05
1.667
1
0x0B
0.833
SS 。这些信号对应的引脚见表87。
表87. SPI输出引脚
在从模式下,必须在SPICON寄存器内配置预期输入时钟的
SPI
引脚
引脚功能
相位和极性。当CD = 0时,从机从外部主机接收数据速率
描述
GP0(GPIO模式1) SS
片选。
GP1(GPIO模式1) SCLK
串行时钟
GP2(GPIO模式1) MISO
主机输入从机输出
GP3(GPIO模式1) MOSI
主机输出从机输入
高达5.12 Mb。最大速度计算公式如下:
f SERIAL CLOCK = f HCLK
(4)
4
同时在主模式和从模式下,数据都在SCL信号的一个沿发
送并另一个沿采样。所以主机和从机的极性和相位配置必
须一致。
MISO引脚
MISO(主机输入从机输出)引脚在主模式下配置成输入线
路而在从模式下配置成输出线路。主机上的MISO线路(数
据输入)应连接到从机内的MISO线路(数据输出)。传送
的数据是以字节(8位)为单位的串行数据,MSB优先。
MOSI引脚
SS 引脚
在SPI从模式时,发送是否开始是通过 SS (低电平有效输
入信号)引脚声明。SPI端口发送和接收8位数据,直到 SS
声明其结束时停止。在从模式下, SS 总是为输入。
SPI寄存器定义
MOSI(主机输出从机输入)引脚在主模式下配置成输出线
路而在从模式下配置成输入线路。主机上的MOSI线路(数
据输出)应连接到从机内的MOSI线路。传送的数据是以字
节(8位)为单位的串行数据,MSB优先。
下列MMR寄存器用来控制SPI接口:
•
SPICON:16位控制寄存器
•
SPISTA:8位只读状态寄存器
•
SPIDIV:8位串行时钟分频器寄存器
SCLK引脚
•
SPITX:8位只写发送寄存器
SCLK(主机串行时钟)引脚用来同步在MOSI SCLK周期
•
SPIRX:8位只读接收寄存器
内发送接收的数据。所以每8个SCLK周期发送/接收一个字
节。SCLK引脚在主模式下配置成输出端而在从模式下配置
成输入端。
Rev. A | Page 107 of 132
ADuC7036
SPI控制寄存器
名称:SPICON
地址:0xFFFF0A10
默认值:0x0000
访问类型:读写
功能:该16位MMR配置串行外设接口。
表89. SPICON MMR位分配
位
描述
15至13
保留。
12
连续发送使能。
用户置1,连续发送使能。在主模式下,会连续发送数据直到SPITX寄存器内无有效数据时停止。在每一次8位
连续发送期间 SS 保持有效直到SPITX空。
用户清0,禁用连续发送。每一次发送都是单独的8位串行发送。如果SPITX寄存器中存在有效数据,那么在一
个停转周期后会重新开始发送数据。
11
回送使能。
用户置1,MISO连接到MOSI,用于测试软件。
用户清0,返回正常模式。
10
从机输出使能。
用户置1,使能从机输出。
用户清0,禁用从机输出。
9
从机选择输入使能。
在主模式下,用户置1使能主机输出。
用户清0,禁用主机输出。
8
SPIRX上溢覆盖使能。
用户置1,新接收到的串行数据覆盖SPIRX寄存器中的有效数据。
用户清0,新接收到的串行数据会被丢弃。
7
SPITX下溢模式。
用户置1,发送前一个数据。
用户清0,发送0。
6
发送和中断模式(主模式)。
用户置1,向SPITX寄存器写入数据时开始发送。只有当TX空时产生中断。
用户清0,读取SPITX寄存器时开始发送。只有当SPIRX满时产生中断。
5
LSB先发使能位。
用户置1,LSB先发。
用户清0,MSB先发。
4
保留。
3
串行时钟极性模式位。
用户置1,串行时钟高电平空闲。
用户清0,串行时钟低电平空闲。
2
串行时钟相位模式位。
用户置1,串行时钟脉冲出现在每一次串行位传输的起始位置。
用户清0,串行时钟脉冲出现在每一个串行位传输的末尾。
1
主模式使能位。
用户置1,主模式使能。
用户清0,从模式使能。
0
SPI使能位。
用户置1,SPI使能。
用户清0,SPI禁用。
Rev. A | Page 108 of 132
ADuC7036
SPI接收寄存器
SPI状态寄存器
名称:SPIRX
名称:SPISTA
地址:0xFFFF0A04
地址:0xFFFF0A00
默认值:0x00
默认值:0x00
访问类型:只读
访问类型:只读
功能:该8位MMR存放串行外设接口接收的数据。
功能:该8位MMR指示串行外设接口的当前状态。
SPI发送寄存器
表90. SPISTA MMR位分配
名称:SPITX
位
描述
地址:0xFFFF0A08
7至6
保留。
访问类型:只写
5
SPIRX数据寄存器上溢状态位。
功能:写入该8位MMR采用串行外设接口发送数据。
如果SPIRX上溢该位置1。
SPI分频器寄存器
读SPIRX寄存器后清0。
4
3
名称:SPIDIV
SPIRX数据寄存器IRQ。
位3或位5置1时自动置1。
地址:0xFFFF0A0C
读SPIRX寄存器后清0。
默认值:0x1B
SPIRX数据寄存器满状态位。
访问类型:读写
如果SPIRX寄存器中存在有效数据则自动置1。
功能:该8位MMR指示串行外设接口的工作频率。有关波
特率计算的详情,参见公式3。
读SPIRX寄存器后清0。
2
SPITX数据寄存器下溢状态位。
SPITX下溢时自动置1。
写入SPITX寄存器后清0。
1
SPITX数据寄存器IRQ。
位0清0或位2置1时自动置1。
写入SPITX寄存器或发送完成SPI停止工作后清0。
0
SPITX数据寄存器空状态位。
向SPITX寄存器写入数据后置1。在数据发送过程中这
个位始终置1。
当SPITX空时清0。
Rev. A | Page 109 of 132
ADuC7036
串行测试接口
ADuC7036集成了单引脚串行测试接口(STI)端口,利用
它终端用户可对成品进行评估或诊断。
STI端口以12位分组形式发送1到6个字节数据。如图 41所
示,每个发送分组包括一个起始位、发送字节(8位)、一
个偶校验位和两个停止位。STI数据在STI引脚上发送,而
波特率由定时器4的上溢速率决定。
0x0007以确保 STICON写入序列成功完成。如果 STIKEY1
未写入、失序写入或不正确写入,就会忽略STICON MMR
的任何后续写入。
串行测试接口数据 0 寄存器
名称:STIDAT0
地址:0xFFFF088C
STI端口通过6个MMR来配置和控制。
默认值:0x0000
•
STIKEY0:串行测试接口密钥0
•
STIKEY1:串行测试接口密钥1
•
STIDAT0:数据0(16位)保持两个字节
•
STIDAT1:数据1(16位)保持两个字节
•
STIDAT2:数据2(16位)保持两个字节
•
STICON:控制串行测试接口
访问类型:读写
功能:STIDAT0 MMR是一个16位寄存器,用来保持STI端
口使能后STI引脚准备发送的第一个和第二个数据字节。发
送的第一个字节占据位[0:7],而第二字节占据位[8:15]。
串行测试接口数据 1 寄存器
名称:STIDAT1
串行测试接口密钥 0 寄存器
地址:0xFFFF0890
名称:STIKEY0
默认值:0x0000
地址:0xFFFF0880
访问类型:读写
访问类型:只写
功能:该STIKEY0 MMR配合STIKEY1 MMR保护STICON
MMR。任何尝试写入STICON前必须先在STIKEY0内写入
0x0007 。 写 入 STICON 后 必 须 立 即 在 STIKEY1 内 写 入
0x00B9以确保STICON写入序列成功完成。如果STIKEY0
未写入、失序写入或不正确写入,就会忽略STICON MMR
的任何后续写入。
串行测试接口密钥 1 寄存器
功能:STIDAT1 MMR是一个16位寄存器,用来保持STI端
口使能后STI引脚准备发送的第三个和第四个数据字节。发
送的第三个字节占据位[0:7],而第四字节占据位[8:15]。
串行测试接口数据 2 寄存器
名称:STIDAT2
地址:0xFFFF0894
默认值:0x0000
名称:STIKEY1
访问类型:读写
地址:0xFFFF0888
功能:STIDAT2 MMR是一个16位寄存器,用来保持STI端
口使能后STI引脚准备发送的第五个和第六个数据字节。发
送的第五个字节占据位[0:7],而第六字节占据位[8:15]。
功能: STIKEY1 MMR 配合 STIKEY0 MMR 保护 STICON
MMR。在任何尝试写入STICON后必须立即在STIKEY1内
写 入 0x00B9 。 写 入 STICON 前 必 须 在 STIKEY0 内 写 入
STI BYTE0
STI BYTE1
PARITY BIT
START BIT
STI BYTE2
PARITY BIT
WITH TWO STOP BITS
图 41. 串行 ADC 测试接口实例(3 字节发送)
Rev. A | Page 110 of 132
07474-041
访问类型:只写
ADuC7036
串行测试接口控制寄存器
名称:STICON
地址:0xFFFF0884
默认值:0x0000
访问类型:读/ 写,通过两个密钥寄存器( STIKEY0和STIKEY1)写入保护。只有遵照下列三步写入序列才能正确完成
STICON写入操作:
1.
在STIKEY0 MMR内写入0x0007。
2.
写入STICON。
3.
将0x00B9写入STIKEY1,序列结束。
功能:STI控制MMR是一个16位寄存器,配置串行测试接口的工作模式。
注意,必须在GP2CON内将GPIO_13配置用于STI操作以进行STI通信。
表91. STICON MMR位分配
位
描述
15至9
保留。这些位保留供未来使用,应由用户代码写入0。
8至5
状态位,只读。如果接口正在发送数据中,这些位非0。
4至2
欲发送字节数。选择欲发送字节数。随后用户代码必须将欲发送字节写入STIDAT0、STIDAT1和STIDAT2 MMR内。
000 = 1个字节发送。
001 = 2个字节发送。
010 = 3个字节发送。
011 = 4个字节发送。
100 = 5个字节发送。
101 = 6个字节发送。
1
复位串行测试接口。
1 = 复位串行测试接口。后续读取STICON返回全0。
0 = 正常工作模式(默认)。
0
串行测试接口使能。用户代码置1。
1 = 使能串行测试接口。
0 = 禁用串行测试接口。
Rev. A | Page 111 of 132
ADuC7036
串行测试接口输出结构
串行测试接口是一种集成了低端驱动器、短路保护和诊断
引脚回读功能的高压输出端口。输出驱动器电路配置如图
42所示。
REF1
STI PIN
READBACK
HVMON[5]
STI
在定时器4内载入适当值以在所需波特率下产生上溢。如果
STI端口正用来发送ADC转换结果,则波特率必须在下一个
ADC转换结果可用前足以输出每个ADC结果(16位)。
例如,当ADC进行1 kHz采样时,波特率必须足以输出下面
36位:(3 × 8位(例如16位ADC结果和一个校验和字节))
+ (3 × 1个起始位) + (3 × 1个奇偶校验位) + (3 × 2
个停止位) = 36位。
所以串行测试接口的数据传输率必须超过36 kbps。最接近
的标准波特率为38.4 kbps;所以定时器4载入MMR(T4LD)
的重载值为0x0106(十进制267)。这个值基于预分频器1,
并利用10.24 MHz内核时钟计算如下:
STI
TRANSMIT
GP2CON[24]
T4LD = Core Clock Frequency = 10.24 Mhz = 267
Desired Baud Rate
38.4 Kbps
07474-042
SHORT-CIRCUIT
PROTECTION CONTROL
HVCFG1[2]
在写入定时器4加载值并利用T4CON MMR配置和使能定
时器后,还必须配置 STI 端口。如前面部分所述,利用
STIKEY0 和 STIKEY1 MMR 按 照 一 定 序 列 写 入 STICON
MMR,完成配置。
图 42. STI 输出结构
利用串行测试接口
只有进行下列配置,STI端口才能开始数据发送:
配置定时器4为波特率生成。
利 用 安 全 访 问 密 钥 STIKEY0 和 STIKEY1 正 确 使 能
STICON。
将欲发送的字节写入STIDAT0、STIDAT1和STIDAT2。
最后,将所需发送字节数写入STIDATx MMR,STI端口才
能开始发送。开始发送后,STICON MMR内的值便会不同
于初始写入值。用户代码可通过不断轮询STICON MMR直
到恢复初始写入值以确保所有数据均发送完毕。要禁用串
行接口,用户代码必须将STICON[0]写入0。
代码实例
下列代码段实例显示配置STI端口发送5个字节并接着发送2个字节:
T4LD = 267;
T4CON = 0xC0;
// Timer4 reload value
// Enable T4, selecting core clock in periodic mode
STIKEY0 = 07;
STICON = 0x11;
STIKEY1 = 0xb9;
// STICON start write sequence
// Enable and transmit five bytes
// STICON complete write
STIDAT0 = 0xAABB;
STIDAT1 = 0xCCDD;
STIDAT2 = 0xFF;
// Five bytes for
// transmission
while(STICON != 0x09)
{}
// Wait for transmission to complete
STIKEY0 = 07;
STICON = 0x05;
STIKEY1 = 0xb9;
// STICON start write sequence
// Enable and transmit two bytes
// STICON complete write
STIDAT0 = 0xEEFF;
// Two bytes for transmission
while(STICON != 0x09)
{}
// Wait for transmission to complete
Rev. A | Page 112 of 132
ADuC7036
LIN(局域互连网络)接口
LIN MMR描述
ADuC7036 在 ARM7 MCU 内核和外部 LIN 总线之间具有
若干高压物理接口。该 LIN 接口只能用作从机接口,支
LIN硬件同步(LHS)功能由5个MMR控制。每个MMR的
持 1至 20 kBaud并兼容 LIN 2.0标准。从节点内置所需上拉
功能如下:
电阻,从而省却了外部电路。如图 43 所示, LIN 协议利
•
用片内 UART、一个 IRQ、一个专用 LIN定时器和高压收
LHSSTA:LHS状态寄存器。此MMR保持信息标志,
指示接口的当前状态。
发器(也片内集成)来仿真。该 LIN 从断开定时器的低
•
功耗振荡器接收时钟信号,并利用 PLL的 5 MHz输出用于
LHSCON0:LHS控制寄存器0。此MMR控制LHS定时
器的配置。
同步字节定时。
•
LHSCON1:LHS起始和停止沿控制寄存器。此MMR
决定LHS开始/停止计数的LIN同步字节边沿。
•
LHSVAL0 : LHS 同 步 16 位 定 时 器 。 此 MMR 由
LHSCON0控制。
•
LHS
INTERRUPT
LOGIC
LHS
HARDWARE
5MHz
LHSVAL0
131kHz
LHSVAL1
FOUR LIN
INTERRUPT
SOURCES:
BREAK LHSSTA[0]
START LHSSTA[1]
STOP LHSSTA[2]
BREAK
ERROR LHSSTA[4]
VDD
INPUT
VOLTAGE
THRESHOLD
REFERENCE
RxD ENABLE
LHSCON0[8]
VDD
LIN ENABLE
(INTERNAL
PULL-UP)
HVCFG0[5]
EXTERNAL
LIN PIN
RxD
UART
GPIO_12
GP2DAT[29]
AND
GPSDAT[21]
MASTER ECU
PULL-UP
CLOAD
LIN MODE
HVCFG0[1:0]
OVERVOLTAGE SCR
PROTECTION
TxD
GPIO_12
FUNCTION
SELECT
GP2CON[20]
MASTER ECU
PROTECTION
DIODE
OUTPUT
DISABLE
BPF
INTERNAL
SHORT-CIRCUIT
SENSE
RESISTOR
SHORT-CIRCUIT
CONTROL
HVCFG1[2]
INTERNAL
SHORT-CIRCUIT
TRIP REFERENCE
图 43. LIN I/O 框图
Rev. A | Page 113 of 132
IO_VSS
07474-043
LHS INTERRUPT
IRQEN[7]
LHSVAL1:LHS断开定时器寄存器。
ADuC7036
LIN硬件同步状态寄存器
名称:LHSSTA
地址:0xFFFF0780
默认值:0x00000000
访问类型:只读
功能:该LHS状态寄存器是一个32位寄存器,反映LIN接口的当前工作状态。
表92. LHSSTA MMR位分配
位
描述
31至7
保留。这些只读位保留供未来使用。
6
上升沿检测(限BSD模式)。
硬件置1,指示已在BSD总线上检测到一个上升沿。
用户代码读取LHSSTA MMR后清0。
5
LHS复位完成标志。
硬件置1,指示LHS复位命令已成功完成。
用户代码读取LHSSTA MMR后清0。
4
断开字段错误。
当12位断开定时器(LHSVAL1)寄存器上溢时硬件置1并产生LHS中断(IRQEN[7])以指示LIN总线保持低电
平时间过长,从而指示可能发生的LIN总线错误。
用户代码读取LHSSTA MMR后清0。
3
LHS比较中断。
当LHSVAL0(LIN同步位定时器)值等于LHSCMP寄存器值时硬件置1。
用户代码读取LHSSTA MMR后清0。
2
停止条件中断。
当检测到停止条件时硬件置1。
用户代码读取LHSSTA MMR后清0。
1
起始条件中断。
当检测到起始条件时硬件置1。
用户代码读取LHSSTA MMR后清0。
0
断开定时器比较中断。
当检测到有效LIN断开条件时硬件置1。当LIN断开定时器值到达断开定时器比较值时产生LIN断开条件(详情
参见“LIN硬件同步断开定时器1寄存器”部分内的LHSVAL1)。
用户代码读取LHSSTA MMR后清0。
Rev. A | Page 114 of 132
ADuC7036
LIN硬件同步控制寄存器 0
名称:LHSCON0
地址:0xFFFF0784
默认值:0x00000000
访问类型:读写
功能:该16位LHS控制寄存器配合LHSCON1寄存器,用来配置LIN工作模式。
表93. LHSCONO MMR位分配
位
描述
15至13
保留。这些位保留供未来使用,应由用户软件写入0。
12
上升沿检测中断禁用。
模式
描述
BSD模式
置1,禁用上升沿检测中断。
清0,使能断开上升沿检测中断。
置1,使能上升沿检测中断。
清0,禁用断开上升沿检测中断。
LIN模式
11
断开定时器比较中断禁用。
置1,禁用断开定时器比较中断。
清0,使能断开定时器比较中断。
10
断开定时器错误中断禁用。
置1,禁用断开定时器错误中断。
清0,使能断开定时器错误中断。
9
LIN收发器独立测试模式。
用户代码置1,使能外部GPIO_7和GPIO_8引脚以独立于UART来分别驱动LIN收发器TxD和RxD。但前提是用户代码必
须先通过GP2CON寄存器内的GPIO_7功能选择位0和GPIO_8功能选择位4来配置GPIO_7和GPIO_8功能。
用户代码清0,LIN在正常模式下工作,直接从片内UART驱动。
8
UART/BSD R/ W 选通位。
模式
描述
UART模式
用户代码置1,通过选通高电平禁用内部UART RxD(接收数据),直到检测到断开字段及后续LIN
同步字节,从而确保在断开或同步字段周期期间UART不会接收任何伪串行数据,否则UART必须在
接收有效数据字段前完全清除这些伪串行数据。
用户代码清0,在检测到断开字段及后续LIN同步字节后使能内部UART RxD(接收数据),这样UART
才可以接收后续LIN数据字段。
用户代码置1,在BSD总线上升沿时使能断开条件中断(LHSSTA[0])产生。在产生中断后,断开定
时器(LHSVAL1)在下降沿时开始计数并在上升沿时停止计数,使用户代码能够决定是否已接收到0、
1或同步脉冲宽度。注意,如果LIN断开定时器值(LHSVAL1读取值)等于断开定时器比较值(LHSVAL1
写入值)且断开定时器上溢,则断开定时器产生一个中断。此配置可在BSD读取模式下用来检测BSD
总线的故障状况。
用户代码清0,在BSD总线上升沿时禁用断开条件中断产生。LHS比较中断位(LHSSTA[3])用来决
定数据发送期间MCU释放BSD总线的时间。如果断开条件中断仍然使能,一旦解除BSD总线声明,
就会产生一个不必要的中断。和BSD读取模式一样,断开定时器在上升沿时停止计数;所以断开定时
器还可在此模式下用来允许用户代码确认发送数据位中的脉冲宽度。
BSD读取
模式1
BSD写入模式1
7
同步定时器停止沿类型位。
用户代码置1,停止LHSCON1[7:4]寄存器配置的同步定时器上升沿计数。
用户代码置0,停止LHSCON1[7:4]寄存器配置的同步定时器下降沿计数。
6
工作模式位。
用户代码置1,选择BSD工作模式。
用户代码清0,选择LIN工作模式。
Rev. A | Page 115 of 132
ADuC7036
位
描述
5
使能比较中断位。
用户代码置1,当LHSVAL0(LIN同步位定时器)值等于LHSCMP寄存器值时产生LHS中断(IRQEN[7])。此中断产
生后,LHS比较中断位LHSSTA[3]置1。此配置在BSD写入模式下允许用户代码对欲发送BSD位的输出脉冲宽度正确
定时。
用户代码清0,禁用比较中断。
4
使能停止中断。
用户代码置1,在出现停止条件时产生中断。
用户代码清0,在出现停止条件时禁止中断。
3
使能起始中断。
用户代码置1,在出现起始条件时产生中断。
用户代码清0,在出现起始条件时禁止中断。
2
LIN同步使能位。
用户代码置1,使能LHS功能。
用户代码清0,禁用LHS功能。
1
边沿计数器清0位。
用户代码置1,清0LHS外设内部边沿计数器。
15 μs延迟后自动清0。
0
LHS复位位。
用户代码置1,将所有LHS逻辑复位至默认状态。
15 μs延迟后自动清0。
1
在BSD模式下,LHSCON0[6]置1。因为BSD发送(从MCU到外部引脚)和接收(从外部引脚到MCU)路径的有限传播延迟,用户代码必须等到MCU
确认解除外部BSD引脚声明后才能切换BSD写入和读取模式。不遵守这条规则,用户代码从BSD写入模式切换到BSD模式可能会造成意外断开条件中
断。停止条件中断可用来确保避免此类情形。
LIN硬件同步控制寄存器 1
名称:LHSCON1
地址:0xFFFF078C
默认值:0x00000032
访问类型:读写
功能:该32位LHS控制寄存器配合LHSCON0寄存器用来配置LIN工作模式。
表94. LHSCON1 MMR位分配
位
描述
31至8
保留。这些位保留供未来使用,应由用户软件写入0。
7至4
LIN停止沿计数。用户代码设置停止内部LIN同步计数器所需的下降或上升沿数。用户代码可利用LHSVAL0
读取此计数器的停止值。沿类型(上升或下降)由LHSCON0[7]配置。这些位的默认值为0x3,配置硬件在第
三个下降沿停止计数。注意,第一个下降沿视为在LIN断开脉冲起始位置处的下降沿。
3至0
LIN起始沿计数。这4位由用户代码设置,内部LIN同步定时器开始计数所必需的下降沿数。用户代码可利用
LHSVAL0读取此计数器的停止值。这些位的默认值为0x2,配置硬件在第二个下降沿开始计数。注意,第一
个下降沿视为在LIN断开脉冲起始位置处的下降沿。
Rev. A | Page 116 of 132
ADuC7036
LIN硬件接口
LIN硬件同步定时器 0 寄存器
LIN帧协议
名称:LHSVAL0
LIN帧协议主要分为四类:断开符号、同步字节、保护识
地址:0xFFFF0788
别符和数据字节。
默认值:0x0000
帧报头、断开符号、同步字节和保护识别符的格式如图44
访问类型:只读
所示。基本而言,嵌入式UART、LIN硬件同步逻辑和高压
功能:该16位只读寄存器保持内部LIN同步定时器的值。
收发器接口全部片内组合以支持并管理基于LIN的发送和
LIN同步定时器从内部5 MHz时钟接收时钟信号并与内核
接收。
时钟和波特率频率无关。在LIN模式下,用户代码可利用
LIN帧断开符号
从LHSVAL0寄存器读取的值来计算主机LIN波特率。然后
使 用 此 计 算 结 果 来 配 置 内 部 UART 波 特 率 以 确 保
ADuC7036从节点和LIN主节点通过UART顺利通信。
如图45所示,LIN断开符号持续至少13位周期,用作一个
新帧开始的通知信号。从机在预期或接收数据前必须能够
检测一个断开符号。如“LIN硬件同步断开定时器1寄存器”
LIN硬件同步断开定时器 1 寄存器
部分所述,ADuC7036利用LHSVAL1断开条件和断开错误
名称:LHSVAL1
检测功能来实现。断开周期不必精确测量,但如果出现总
线故障条件(总线保持低电平),就必须加以标记。
地址:0xFFFF0790
LIN帧同步字节
默认值:0x0000
如图46所示,可利用同步字节来计算LIN通信的波特率。
访问类型:读写
功能:当用户代码读取此位置时,就会返回内部LIN断开
定时器的12位值,该定时器直接从片内低功耗131 kHz振荡
器接收时钟信号并对LIN断开脉冲进行定时。LIN总线上出
现负沿或用户代码读取 LHSVAL1 都会造成将该定时器及
测量同步字段的第一个下降沿到第五个下降沿的时间并除
以8,就可以决定欲发送数据的波特率。ADuC7036硬件实
现此同步字节的时序。有关此功能的详情,参见“LIN硬件
同步状态寄存器”部分。
寄存器内容复位至0。
LIN帧保护识别符
当用户代码写入此位置时,12位值不会写入LIN断开定时
接收LIN同步字段后,计算所需UART波特率。如图47所示,
器,而是写入LIN断开比较寄存器。在LIN工作模式下,持
然后配置UART,从而允许ADuC7036接收保护识别符。保
续将比较器寄存器值和断开定时器值进行比较。当定时器
护识别符包括两个子字段:识别符和识别符奇偶校验。 6
值到达比较值时,就会产生一个LIN断开中断(IRQEN[7]
位识别符包括帧目标的识别符。识别符表示欲收发数据字
和LHSSTA[0])。在发生断开条件中断后,LIN断开定时器
节数。字节数可由用户在进行系统级别设计时配置。奇偶
仍会继续计数直到出现断开信号上升沿。如果未检测到上
校验根据识别符计算并取决于系统设计的LIN版本。
升沿且12位定时器上溢(4096 × 1/131 kHz = 31 ms),就
LIN帧数据字节
会产生一个断开字段错误中断(IRQEN[7]和LHSSTA[4])。
默认情况下,比较寄存器的值为0x0047,对应于11位周期
(即在20 kbps时LIN断开脉冲的最小脉冲宽度)。对于不
同波特率,可通过写入LHSVAL1来修改此值。注意,如果
数据字节帧传送 1到 8个字节数据。帧所包含的字节数取
决于 LIN 主机。如图 48 所示,数据字节帧分割成若干数
据字节。
没有接收到有效断开中断,通过LHSVAL0定时的后续同步
脉冲就不会出现。
Rev. A | Page 117 of 132
ADuC7036
LIN帧数据发送和接收
管理LIN总线上的数据要用到下列几个UART MMR:
在正确接收断开符号和同步字节并配置所需UART波特率
•
COMTX:8位发送寄存器
•
COMRX:8位接收寄存器
后,可通过 COMTX 和 COMRX MMR 来收发数据。配置
UART以配合LIN使用要用到下列几个UART MMR:
•
COMCON0:线路控制寄存器
•
COMDIV0:分频锁存器(低字节)。
•
COMSTA0:线路状态寄存器
•
COMDIV1:分频锁存器(高字节)。
此外,在LIN总线上发送数据需要在COMTX内放置相关数
•
COMDIV2:16位小数波特率分频寄存器。COMDIV0、
据,且读取 LIN 总线上接收的数据需要对 COMRX 进行监
COMDIV1 和 COMDIV2 的所需值从 LHSVAL0 获得以
控。要确保数据顺利收发,应监控COMSTA0。有关详情,
产生所需波特率。
参见“UART串行接口”和“UART寄存器定义”部分。
COMCON0:线路控制寄存器。正确配置UART后,LIN
通过软件控制,可多路复用UART数据线路(TxD和RxD)
数据收发协议便和UART规格相同。
至外部 GPIO_7/IRQ4 和 GPIO_8/IRQ5 引脚。有关详情,参
见“GPIO端口1控制寄存器(GP1CON)”部分。
>1tBIT
8tBIT
2tBIT
2tBIT
STA S0
BREAK
S1
S2
2tBIT
S3
S4
2tBIT
S5
S6
S7 STO
SYNC
PROTECTED ID
07474-044
> = 14tBIT
13tBIT
图 44. LIN 接口时序
tBREAK > 13tBIT
BREAK
DELIMIT
07474-045
START
BIT
图 45. LIN 断开字段
START
BIT
STOP
BIT
07474-046
tBIT
图 46. LIN 同步字节字段
START
BIT
ID0
ID1
ID2
ID3
ID4
ID5
P0
P1
STOP
BIT
07474-047
tBIT
BIT6
BIT7
STOP
BIT
07474-048
•
图 47. LIN 识别符字节字段
tBIT
START
BIT
BIT0
BIT1
BIT2
BIT3
BIT4
图 48. LIN 数据字节字段
Rev. A | Page 118 of 132
BIT5
ADuC7036
LIN硬件同步程序实例
中,欲监控的沿数是LIN帧的6个下降沿或同步字节的5个
下降沿。当接收到此数目的下降沿时,就会产生一个停止
条件中断。此时配置UART以接收保护识别符。
利用下列C源代码LIN初始化程序,LHSVAL1在LIN总线上
接 收 的 第 一 个 下 降 沿 开 始 计 数 。 如 果 LHSVAL1 超 过
LHSVAL1写入值(在此情况下为0x3F),就会产生一个断
开比较中断。
在 LIN 总 线 恢 复 高 电 平 前 必 须 通 过 LHSCON0[8] 选 通
UART。如果LIN总线恢复高电平,但UART未被选通,就
可能会出现UART通信错误。这个过程的细节如图49所示。
代码实例遵循图49以确保此过程成功。
在下一个下降沿,LHSVAL0开始计数。LHSVAL0监控下
降沿数并将其和LHSCON1[7:4]写入值进行比较。在此实例
void LIN_INIT(void )
{
char HVstatus;
GP2CON = 0x110000;
LHSCON0 = 0x1;
// Enable LHS on GPIO pins
// Reset LHS interface
do{
HVDAT = 0x02;
// Enable normal LIN Tx mode
HVCON = 0x08;
// Write to Config0
do{
HVstatus = HVCON;
}
while(HVstatus & 0x1); // Wait until command is finished
}
while (!(HVstatus & 0x4));
// Transmit command is correct
while((LHSSTA & 0x20) == 0 )
{
// Wait until the LHS hardware is reset
}
LHSCON1 = 0x062; // Sets stop edge as the fifth falling edge
// and the start edge as the first falling
// edge in the sync byte
LHSCON0 = 0x0114; // Gates UART Rx line, ensuring no interference
// from the LIN into the UART
// Selects the stop condition as a falling edge
// Enables generation of an interrupt on the
// stop condition
// Enables the interface
LHSVAL1 = 0x03F; // Sets number of 131 kHz periods to generate a break interrupt
// 0x3F / 131 kHz ~ 480 μs, which is just over 9.5 Tbits
LHSVAL1
RESETS AND
STARTS
COUNTING
LHSVAL0 STARTS
BREAK
COUNTING
COMPARE
INTERRUPT IS
GENERATED
LHSVAL0 STOPS
COUNTING AND A
STOP INTERRUPT
IS GENERATED
UART IS CONFIGURED,
BEGINS
LHS INTERRUPTS
RECEIVING DATA
DISABLED EXCEPT
VIA UART
BREAK COMPARE
tBIT
STOP
BIT
START ID0
BIT
ID1
ID2
ID3
ID4
ID5
P0
P1
STOP
BIT
07474-049
START
BIT
LHSVAL1 = 0x3F
图 49. LIN 配置示例
while((GP2DAT & 0x10 ) == 0 )
{}
// Wait until LIN Bus returns high
LHSCON0 = 0x4; // Enable LHS to detect Break Condition Ungate RX Line
// Disable all Interrupts except Break Compare Interrupt
IRQEN = 0x800;
// Enable UART Interrupt
// The UART is now configured and ready to be used for LIN
Rev. A | Page 119 of 132
ADuC7036
LIN诊断
ADuC7036在LIN/BSD引脚上还具有短路保护功能。如果在
ADuC7036具有非介入监控LIN/BSD引脚当前状态的功能。
LIN/BSD引脚上检测到短路状况,HVSTA[2]就会置1。利
此回读功能利用GPIO_11来实现。LIN/BSD引脚当前状态
用 HVCFG1[3] 再 使 能 LIN 驱 动 器 可 将 此 位 清 0 。 可 通 过
包括在GP2DAT[4]内。
HVCFG1[2]来禁用此功能。
还可通过用户软件将 LIN/BSD 引脚驱动至高电平和低电
在热关断期间的LIN操作
平,从而允许用户检测开路状况。此功能通过GPIO_12来
实现。要使能此功能,必须通过 GP2CON[20] 将 GPIO_12
配置成GPIO。完成配置后可利用GP2DAT将LIN/BSD引脚
当发生过热事件时,即当HVSTA[3]置1时,LIN通信仍会
继续,不被打断。
拉高或拉低。
Rev. A | Page 120 of 132
ADuC7036
位串行设备(BSD)接口
BSD通信硬件接口
BSD是一种具有三种可能状态(同步、0和1)的脉冲宽度
调制信号。这些状态及相关容差详细列于表95内。帧长度
通过软件控制,ADuC7036利用一个GPIO、一个IRQ和LIN
为19位,且通信发生在1200 bps ± 3%。
同步硬件来仿真BSD通信协议。
表95.BSD位水平描述
参数
最小值
典型值
最大值
单位
TxD速率
1164
1200
1236
bps
tSYNC
1/16
2/16
3/16
tPERIOD
to
5/16
6/16
8/16
tPERIOD
tl
10/16
12/16
14/16
tPERIOD
位编码
LHS
INTERRUPT
LOGIC
LHS INTERRUPT
IRQEN[7]
ADuC7036
LHS
HARDWARE
5MHz
LHSVAL0
131kHz
LHSVAL1
FOUR LIN
INTERRUPT
SOURCES
BREAK LHSSTA[0]
START LHSSTA[1]
STOP LHSSTA[2]
BREAK
ERROR LHSSTA[4]
VDD
VDD
LIN ENABLE
(INTERNAL
PULL-UP)
HVCFG0[5]
INPUT
VOLTAGE
THRESHOLD
REFERENCE
RxD ENABLE
LHSCON0[8]
MASTER ECU
PROTECTION
DIODE
EXTERNAL
LIN PIN
RxD
ADuC7036
UART
CLOAD
LIN MODE
HVCFG0[1:0]
OVERVOLTAGE
PROTECTION
SCR
TxD
GPIO_12
FUNCTION
SELECT
GP2CON[20]
OUTPUT
DISABLE
BPF
INTERNAL
SHORT-CIRCUIT
SENSE
RESISTOR
SHORT-CIRCUIT
CONTROL
HVCFG1[2]
INTERNAL
SHORT-CIRCUIT
TRIP REFERENCE
图 50. BSD I/O 硬件接口
Rev. A | Page 121 of 132
IO_VSS
07474-050
GPIO_12
GP2DAT[29]
AND
GPSDAT[21]
MASTER ECU
PULL-UP
ADuC7036
前面已列出这些 MMR 中大部分的详细位定义。除 “LIN
BSD相关MMR
MMR 描 述 ” 部 分 中 所 述 的 寄 存 器 外 , LHSCAP 和
ADuC7036利用一个软件(位拆裂)接口及其一些硬件辅助
LHSCMP 也是 BSD 接口操作所必需的寄存器。这些寄存
形式 LIN 硬件同步逻辑来仿真 BSD 通信协议。事实上,
器的详情如下。
ADuC7036 BSD接口利用下列协议:
•
LIN硬件同步捕捉寄存器
一个内部 GPIO 信号( GPIO_12 ),它被路由到外部
LIN/BSD引脚并直接由软件控制以产生0和1。
•
•
当读取多位时,LIN同步硬件利用LHSVAL1对输入脉
名称:LHSCAP
地址:0xFFFF0794
冲的宽度进行计数,这样用户代码可以将这些位解读
默认值:0x0000
为同步、0或1。
访问类型:只读
当写入多位时,用户代码触发一个 GPIO 引脚并利用
功 能 : 该 16 位 只 读 寄 存 器 保 持 内 部 LIN 同 步 定 时 器
LHSCAP 和 LHSCMP给脉冲宽度定时并在 BSD输出脉
( LHSVAL0 ) 的 最 后 一 个 捕 捉 值 。 在 BSD 模 式 下 ,
冲宽度到达所需宽度时产生一个中断。
LHSVAL0直接从一个内部5 MHz时钟接收时钟信号,且每
下列是BSD通信所需的ADuC7036 MMR:
次出现BSD总线下降沿时将其值加载到该捕捉寄存器内。
•
LHSSTA:LIN硬件同步状态寄存器
LIN硬件同步比较寄存器
•
LHSCON0:LIN硬件同步控制寄存器
•
LHSVAL0:LIN硬件同步定时器0(16位定时器)
•
LHSCON1:LIN硬件同步沿设置寄存器
•
LHSVAL1:LIN硬件同步断开定时器
•
LHSCAP:LIN硬件同步捕捉寄存器
•
LHSCMP:LIN硬件同步比较寄存器
LHSCON0[5]使能后,在LHSCAP值等于LHSCMP写入值时
•
IRQEN/IRQCLR:使能中断寄存器
就会产生一个LIN中断。此功能允许用户代码决定在总线
•
FIQEN/FIQCLR:使能快速中断寄存器
上应声明一个BSD发送位(同步、0或1)的时间。
•
GP2DAT:GPIO端口2数据寄存器
•
GP2SET:GPIO端口2设置寄存器
•
GP2CLR:GPIO端口2清0寄存器
名称:LHSCMP
地址:0xFFFF0798
默认值:0x0000
访问类型:读写
功 能 : 用 来 对 BSD 输 出 脉 冲 宽 度 进 行 定 时 。 通 过
Rev. A | Page 122 of 132
ADuC7036
BSD通信帧
如果主机正在发送数据,则主机在整个信号发送期间将信
要在主机和从机之间传输数据,必需先构造一个BSD帧。
号保持低电平。主机正在发送一个0的实例如图52所示。如
BSD帧包括7个关键部分:暂停/同步、一个方向(DIR)位、
果从机正在发送数据,则主机将总线拉低以开始通信。从
从机地址、寄存器地址、数据、奇偶校验位(P1和P2)以
机必须在tSYNC完成之前将总线拉低,然后总线保持低电平
及来自从机的应答位。
直到经过t0或t1,此后从机释放总线。从机正在发送一个0
如果从机正在发送数据,则除应答位外所有位都由主机
的实例如图53所示。
发送。
如果主机正向从机请求数据,则主机发送暂停/同步、方向
位、从机地址、寄存器地址和P1。从机然后按照下列序列
tSYNC
1.
暂停:≥ 三个同步脉冲
2.
DIR:表示数据传输方向
07474-051
t0
发送数据字节、P2位和应答位:
t1
图 51. BSD 位发送
如果主机发送请求,则DIR = 0
如果从机发送请求,则DIR = 1
BUS PULLED LOW
BY MASTER
3.
从机地址
4.
寄存器地址:定义欲读写的寄存器
5.
位3置1为写入,清0为读取。
6.
数据:8位只读接收寄存器
7.
P1和P2
t0
图 52. BSD 主机正在发送一个 0
tSYNC
t0
如果数据字中有偶数个1,则P2 = 0
BUS HELD LOW
BY SLAVE
RELEASED BY
MASTER
图 53. BSD 从机正在发送一个 0
如果数据字中有奇数个1,则P2 = 1
典型BSD程序流程
应答位
因为BSD是一个由软件控制的PWM通信协议,所以用户必
如果发送成功,则ACK = 0
须逐位构造所需数据。例如,在构造从机地址过程中,从
应答位总是由从机发送以指示是否已接收或发送信息。
表96. BSD协议描述
暂停 DIR
从机地址 寄存器地址
P1
数据 P2
ACK
3位
3位
1位
8位
1位
4位
BUS RELEASED BY
SLAVE AFTER t0
07474-053
BUS PULLED LOW
BY MASTER
如果8个前面位中有奇数个1,则P1 = 1
1位
07474-052
tSYNC
如果8个前面位中有偶数个1,则P1 = 0
8.
BUS RELEASED BY
MASTER AFTER t0
1位
机节点接收三位,然后用户构造相关地址。
当由主机发起BSD通信时,从机发送并接收数据。此过程
如流程图54所示。
BSD脉冲宽度实例
不同脉冲宽度的实例如图51所示。对于每一位,总线保持
低电平的周期定义了位类型。如果是同步位,则脉冲低电
平持续1位。如果位是0,则脉冲低电平持续3位。如果位是
1,则脉冲低电平持续6位。
Rev. A | Page 123 of 132
ADuC7036
BSD主机发送
INITIALIZE BSD
HARDWARE/
SOFTWARE
用户代码强制 GPIO_12 信号呈低电平持续一定时间以在
BSD模式下发送数据。此外,用户代码还利用同步定时器
(LHSVAL0)、LHS同步捕捉寄存器(LHSCAP)和LHS
同步比较寄存器(LHSCMP)来决定BSD总线应保持低电
平的时间以在0或1状态下发送数据位。
RECEIVE
SYNCHRONIZATION
PULSES
RECEIVE
DIRECTION
BIT
如“BSD脉冲宽度实例”部分所述,即使从机正在发送数据,
主机仍始终通过将BSD总线拉低来开始位发送周期。如果
选择BSD模式(LHSCON0[6] = 1),则在BSD总线的每个
下降沿都会在LHSCAP内捕捉LIN同步定时器值。该LIN同
步定时器在BSD模式下持续运行。
RECEIVE
SLAVE
ADDRESS
然后用户代码可立即强制GPIO_12呈低电平并从LHSCAP
读取所捕捉的定时器值。接下来,用户可针对在0或1状态
下的脉冲宽度计算在将GPIO_12驱动至高电平前应经过的
时钟周期(使用 5 MHz 时钟)。计算后的数字可相加到
LHSCAP 值并写入 LHSCMP 寄存器内。如果 LHSCON0[5]
置1,则同步计时器继续计数(采用5 MHz时钟提供时钟信
号 ) , 最 终 等 于 LHSCMP 值 并 产 生 一 个 LHS 比 较 中 断
(LHSSTA[3])。
RECEIVE
REGISTER
ADDRESS
RECEIVE FIRST
PARITY BIT
TRANSMIT DATA
TO MASTER
RECEIVE SECOND
PARITY BIT
TRANSMIT SECOND
PARITY BIT
TRANSMIT
ACK/NACK
此中断的响应应迫使GPIO_12信号(并因此BSD总线)为
高电平。如图56所示,通过软件控制GPIO_12信号并配合
正确使用LIN同步定时器,可确保ADuC7036发送0和1状态
的 有 效 脉 冲 宽 度 。 再 次 提 醒 , 如 表 93 中 所 示 ( 参 见
LHSCON0[8]位),从BSD写入模式切换到BSD读取模式时
务必小心。
2 LHSVAL0 LOADED
INTO LHSCAP HERE
07474-054
RECEIVE DATA
FROM MASTER
4 LHSCMP = LHSVAL0
INTERRUPT GENERATED
HERE
5 SOFTWARE DEASSERTS
BSD HIGH HERE
图 54. BSD 从机节点状态机
BSD数据接收
LHS断开定时器清0并在BSD总线的下降沿开始计数;随后
停止并在BSD总线的上升沿产生一个中断。假设LHS断开
定时器从低功耗131 kHz振荡器接收时钟信号,则用户代码
可解读 LHSVAL1 值以决定所接收数据位是一个 BSD 同步
脉冲、0还是1。
BSD PERIOD
IN 0 STATE
2 LHSVAL1 STOPPED
AND GENERATES
INTERRUPT ON THIS EDGE
BSD PERIOD
IN 1 STATE
BSD PERIOD
IN 0 STATE
3 SOFTWARE ASSERTS
BSD LOW HERE
BSD PERIOD
IN 1 STATE
图 56. 主机读取从机发送
BSD接口唤醒
MCU内核可通过BSD物理接口从省电状态唤醒。进入省电
模式前,用户代码应先使能起始条件中断(LHSCON0[3])。
使能后在LIN/BSD引脚上的一个高至低跳变就会产生一个
中断事件并唤醒MCU内核。
07474-055
1 LHSVAL1 CLEARED
AND STARTS COUNTING
ON THIS EDGE
1 MASTER DRIVES
BSD BUS LOW
07474-056
要接收数据,必须先在BSD模式(LHSCON0[6] = 1)下配
置LIN/BSD外设。在此模式下,LHSCON0[8]应置1以确保
LHS断开定时器(参见“LIN硬件同步断开定时器1寄存器”
部分)在BSD总线的上升沿会产生一个中断。
图 55. 主机发送从机读取
Rev. A | Page 124 of 132
ADuC7036
器件标识
有两个寄存器映射到MMR空间,允许用户代码识别并追溯
制造批次ID信息、器件ID号、硅掩膜版本和内核版本。这
些信息包含在SYSSER0和SYSSER1 MMR内(详情见表98
了每个器件的完全可追溯。
如表97所示,批次号是封装标识的一部分。
和99)。
表97. 标识实例
此外,FEE0ADR MMR还包含上电信息,可识别ADuC7036
行
LFCSP
系列产品。
行1
ADuC7036
为了直接可追溯性,还提供组装批次ID,它可以是64位长。
行2
BCPZ
上电时, SYSALI MMR包含该组装批次 ID的 32 位低半部
行3
A40 # 日期代码
分,而高半部分则包含在T1LD MMR内。
行4
组装批次号
SYSSER0、SYSSER1、SYSALI和T1LD内包含的信息实现
系统串行ID寄存器 0
名称:SYSSER0
地址:0xFFFF0238
默认值:0x00000000(上电时由内核更新)
访问类型:读写
功能:上电时此32位寄存器保持该具体ADuC7036单元的原始制造批次号值(限底层芯片)。配合SYSSER1,此批次号可
追溯此器件的整个制造历史(限底层芯片)。
表98. SYSSER0 MMR Bit位分配
位
描述
31至27
晶圆号。从此位置读取的5位值从晶圆制造批次ID(此器件出处)提供晶圆号(1至24)。配合SYSSER0[26:0],它提
供个别晶圆可追溯性。
26至22
晶圆批次制造厂。从此位置读取的5位值反映与此晶圆批次相关的制造厂。配合SYSSER0[21:0],它提供晶圆批次可
追溯性。
21至16
晶圆批次制造ID。从此位置读取的6位值是晶圆批次制造ID的一部分且配合SYSSER0[26:22]和SYSSER0[15:0],提供
晶圆批次可追溯性。
15至0
晶圆批次制造ID。这些16位LSB被解读为晶圆制造批次ID号。配合SYSSER1值(即制造批次ID),此编号是器件的
唯一标识。
Rev. A | Page 125 of 132
ADuC7036
系统串行ID寄存器 1
名称:SYSSER1
地址:0xFFFF023C
默认值:0x00000000(上电时由内核更新)
访问类型:读写
功能:上电时,该32位寄存器保持器件ID号、硅片掩膜版本及内核版本号(限底层芯片)的值,详情见表99。
表99. SYSSER1 MMR位分配
位
描述
31至28
硅片掩膜版本ID。此半字节反映硅片掩膜ID号。具体来说,这半字节的16进制值应被解码成低位半字节,表示ASCII
字符A至O。例如,如果位[19:16] = 0001 = 0x1,此值应解释为41,对应ASCII字符A,表示硅片掩膜版本A。如果
位[19:16] = 1011 = 0xB,则解释为4B,对应ASCII字符K,表示硅片掩膜版本K。这个值的范围为1至15,解释为41
至4F或ASCII字符A至O。
27至20
内核版本ID。此字节的16进制数应解释为一个ASCII字符,表示片内Flash/EE存储器的嵌入内核固件版本。例如,
如果从此字节读取0x41,则解释为A,表示片上内核版本A。
19至16
保留。对于预发行样片,这些位表示器件内核的局部修订版本号。
15至0
器件ID。这些16位LSB被解释为器件ID号。配合SYSSER0值(即制造批次ID),此编号是器件的唯一标识。
系统组装批次ID
系统内核校验和
名称:SYSALI
名称:SYSCHK
地址:0xFFFF0560
地址:0xFFFF0240
默认值:0x00000000(上电时由内核更新)
默认值:0x00000000(上电时由内核更新)
访问类型:读写
访问类型:读写
功能:上电时,该32位寄存器保持组装批次ID的低半部分。
例如,如果组装批次ID为01308640,则上电时SYSALI保持
0x38363430,而T1LD保持0x30313330。
功能:上电时,该32位寄存器保持内核校验和。
Rev. A | Page 126 of 132
ADuC7036
系统标识FEE0ADR
名称:FEE0ADR
地址:0xFFFF0E10
默认值:非零
访问类型:读写
功能:该16位寄存器决定通过FEE0CON执行任何Flash/EE命令的操作地址。
注意,该MMR还用以识别ADuC7036系列产品和预发布芯片版本。
表100. FEEOADR系列标识MMR位分配
位
描述
15至4
保留
3至0
ADuC703x系列ID
0x2 = ADuC7032
0x3 = ADuC7033
0x4 = ADuC7034
0x6 = ADuC7036
其他 = 保留供将来使用
Rev. A | Page 127 of 132
ADuC7036
原理图
此原理图实例仅表示基本功能电路实现。要确保系统满足任何EMC和其他过压/过流兼容性要求,还需添加其他元件。
JTAG ADAPTOR
VBAT
13 VBAT
10Ω
10
12
TDO
TMS
6
11
7
TCK NTRST
TDI
REG_DVDD
42 VDD
RESET
10µF
IN+
LIN/BSD 48
19 IIN+
LIN MASTER
1
27.4Ω
220pF
ADuC7036
SHUNT
33µF
20 IIN–
BATTERY GROUND
TERMINAL
REG_DVDD 33
2.2µF
0.1µF
REG_AVDD
18 VTEMP
REG_AVDD 24
NTC
0.47µF
15 GND_SW
AGND AGND DGND DGND DGND IO_VSS VSS
22
21
8
34
35
图 57. 简化原理图
Rev. A | Page 128 of 132
47
44
07474-057
10nF
ADuC7036
外形尺寸
7.00
BSC SQ
0.60 MAX
37
36
PIN 1
INDICATOR
0.50 BSC
1
5.25
5.10 SQ
4.95
(BOTTOM VIEW)
25
24
13
12
0.25 MIN
5.50
REF
0.80 MAX
0.65 TYP
SEATING
PLANE
PIN 1
INDICATOR
EXPOSED
PAD
6.75
BSC SQ
0.50
0.40
0.30
12° MAX
48
0.05 MAX
0.02 NOM
COPLANARITY
0.08
0.20 REF
FOR PROPER CONNECTION OF
THE EXPOSED PAD, REFER TO
THE PIN CONFIGURATION AND
FUNCTION DESCRIPTIONS
SECTION OF THIS DATA SHEET.
080108-A
TOP
VIEW
1.00
0.85
0.80
0.30
0.23
0.18
0.60 MAX
COMPLIANT TO JEDEC STANDARDS MO-220-VKKD-2
图 58. 48 引脚 LFCSP_VQ 封装,7 mm x 7 mm ,超薄体(CP-48-1)
尺寸单位:mm
订购指南
型号
温度范围
封装描述
型号信息
封装选项
-40°C至+115°C
48引脚LFCSP_VQ
10 MHz
CP-48-1
-40°C至+115°C
48引脚LFCSP_VQ
10 MHz
CP-48-1
ADUC7036CCPZ
-40°C至+115°C
48引脚LFCSP_VQ
20 MHz
CP-48-1
ADuC7036CCPZ-RL1
-40°C至+115°C
48引脚LFCSP_VQ
20 MHz
CP-48-1
ADUC7036BCPZ1
1
ADUC7036BCPZ-RL
1
1
Z = 符合RoHS标准的兼容器件。
Rev. A | Page 129 of 132
ADuC7036
注释
Rev. A | Page 130 of 132
ADuC7036
注释
Rev. A | Page 131 of 132
ADuC7036
注释
©2008–2009 Analog Devices, Inc. All rights reserved. Trademarks and
registered trademarks are the property of their respective owners.
D07474-0-8/09(A)
Rev. A | Page 132 of 132