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