文档库 最新最全的文档下载
当前位置:文档库 › FM8PC712A-C05 带ADC转换芯片

FM8PC712A-C05 带ADC转换芯片

FM8PC712A-C05 带ADC转换芯片
FM8PC712A-C05 带ADC转换芯片

FM8PC712A

规格书C05 September1,2013

目录

1.1产品描述 (6)

1.2特性 (6)

1.3系统框图 (7)

1.4引脚图 (7)

1.5引脚描述 (8)

1.6程序存储器 (9)

1.7数据寄存器 (9)

1.8数据寄存器位制定 (10)

1.9操作配置图 (12)

【2】微处理器单元 (13)

2.1间接寻址定义 (13)

地址00H:间接寻址寄存器(INDF) (13)

地址04H:间接寻址指针寄存器(FSR) (13)

2.28位程序计数器 (14)

地址02H:程序计数器低字节(PCL) (14)

2.3状态寄存器 (15)

地址03H:状态寄存器(STATUS) (15)

2.4General Purpose I/O ports (16)

2.4.1PortA,PortB口数据寄存器 (16)

地址05H:Port A(PORTA) (16)

地址06H:Port B(PORTB) (16)

2.4.2PortA,PortB模式 (17)

地址08H:Port A输入输出控制寄存器0(PAMODE0) (17)

地址09H:Port A输入输出控制寄存器1(PAMODE1) (17)

地址0AH:Port b输入输出控制寄存器0(PBMODE0) (17)

地址0BH:Port B输入输出控制寄存器1(PBMODE1) (18)

2.5看门狗定时器(WDT) (19)

地址11h看门狗定时器(WDT) (19)

2.6定时器0(Timer0) (21)

地址0FH:TM0控制寄存器(TM0CON) (21)

地址0EH:Timer0计数寄存器字节(TM0) (22)

地址10H:Timer0比较或重置值寄存器字节(TM0RLD) (22)

【3】电源和复位管理 (23)

地址12H:电源控制寄存器(PCON) (24)

【4】时钟控制 (25)

地址13H:时钟配置寄存器(CLKCFG) (25)

【5】系统工作模式 (28)

5.1总览 (28)

【6】PWM描述 (31)

6.0PWM/蜂鸣器(Buzzer)总览 (31)

6.1PWM0寄存器 (33)

地址14H:PWM0配置寄存器(PWM0CON) (33)

地址15H:PWM0控制寄存器(PWM0CR) (34)

地址16H:PWM0计数寄存器低字节(P0TMLB) (35)

地址17H:PWM0比较或重置值寄存器低字节(P0TMRLDLB) (35)

6.2PWM1寄存器 (36)

地址20H:PWM1配置寄存器(PWM1CON) (36)

地址21H:PWM1控制寄存器(PWM1CR) (37)

地址22H:PWM1计数寄存器低字节(P1TM) (38)

地址23H:PWM1比较或重置值寄存器低字节(P1TMRLD) (38)

6.3Buzzer寄存器 (38)

地址24H:Buzzer输出选择寄存器(BZS) (38)

6.4PWM范例程序 (39)

【7】7+1通道模数转换器(ADC) (41)

7.1ADC寄存器 (41)

地址28H:ADC控制寄存器1(ADCON_1) (41)

地址29H:ADC控制寄存器2(ADCON_2) (42)

地址30H:ADC结果寄存器高字节(ADCHB) (43)

地址31H:ADC结果寄存器低字节(ADCLB) (43)

地址29H:ADC控制寄存器3(ADCON_3) (43)

【8】电压比较器 (45)

8.1CMP寄存器 (45)

地址35H:比较器控制暨存器1(CMPCON1) (45)

地址36H:DACR1高字节寄存器(DACR1HB) (47)

地址37H:DACR1低字节寄存器(DACR1LB) (48)

地址38H:比较器控制寄存器2(CMPCON2) (48)

地址39H:DACR2高字节寄存器(DACR2HB) (49)

地址3AH:DACR2低字节寄存器(DACR2LB) (49)

8.2比较器迟滞应用 (50)

【9】中断 (51)

9.1中断寄存器 (52)

地址0BH:中断使能寄存器(INTEN) (52)

地址0CH:中断旗标寄存器(INTFLAG) (52)

地址0DH:中断控制寄存器(INTCON) (53)

【10】指令集 (54)

【11】最大绝对额定值 (56)

【12】DC特性 (56)

12.1概要(工作温度=0to70℃) (56)

12.2GPIO接口 (57)

12.3ADC规格 (58)

12.4CMP规格 (58)

【13】封包框图 (59)

(59)

13.110-PIN MSOP (60)

8-PIN SOP (62)

8-PIN TSSOP (63)

1.1产品描述

◆FM8PC712A為專對8/10PIN封裝的ADC單片機其架構延續FM8PC71A,並調整至完善,增加比較器/Buzzer out等諸多功能,更降低目前使用的成本,為一8/10Pin專用ADC單片機.

1.2特性

8位RISC微处理器

每ㄧ个指令周期为一个时钟(1T)

4.0K x14位的OTP程序存储器

6级堆栈缓存器

64x8位的数据存储器

内部Firc/(2,4,8,16)的时钟模式

ㄧ个8位计数器,一个16位(PWM0)及ㄧ个8位(PWM1)PWM定时器输出

看门狗定时器

系统时钟

内部振荡器

内部RC16MHz振荡器

低频/绿色模式下内部RC振荡器32KHz

8个输入/输出口

每个GPIO具有较高的电流驱动能力:15mA/脚出力和入力电流

每个GPIO支持高阻抗输入、内置上拉、开源漏极输出或CMOS输出

8个中断来源

两个外部中断来源INT0,INT1

六个内部中断来源WDT,Timer0,PWM0,PWM1,CMP,ADC

7+1通道12位模数转换器

可选择连续模式或触发模式取得模数转换结果

支持7个外部仿真输入通道及1个内部VDD/4仿真输入通道(ADC)

内建模数转换器参考电压(VDD,4V,3V,2V)

电源管理

上电复位2.4V(POR)

掉电复位2.0V(PDR)

三级低电压检测:LVDH(3.6V),LVDM(3.0V),LVDL(2.4V)

PWM蜂鸣器(Buzzer)功能

支持2个脉宽调制通道(PWM)

可编程输出脚位的PWM0(Buzzer0)/PWM1(Buzzer1)

电压比较器功能

输入电压低偏移量(offset)

内建内部12位DAC比较电压

1.3系统框图

1.4引脚图

FM8PC712A-SOP8

FM8PC712A-TSSOP8

FM8PC712A-MSOP10

引脚名称类

10-pin--说明

P--

CMPOP AIN2O

I

入口

比较器输出口

ADC通道2输入口

VSS G9--电源地

PB[1] AIN1 VREFH0IO

I

I

10--输入/输出口,可编程上拉电阻或高阻抗输入,入力电流(Sink current)/出力

电流(Drive current)

均可软件设定,入力电流最高可达15mA/脚,外部中断输

入口

ADC通道1输入口

ADC外部参考0

电压输入口

1.6

程序存储器

.(地址0FF0~0FFF保留给配置使用)

1.7数据寄存器

图1.7-1I/O数据寄存器

地址

描述(F-plane)地址R-Plane

00h INDF

01h--

02h PCL

03h STATUS

04h FSR

05h PORTA

06h PORTB

07h--(Revered)

08h--(Revered)08h*PAMODE0 09h--(Revered)09h*PAMODE1 0Ah--(Revered)0Ah*PBMODE0 0Bh INTEN0Bh*PBMODE1 0Ch INTFLAG

0Dh INTCON

0Eh TM0

0Fh TM0CON

10h T0RLD

11h WDT

地址

描述(F-plane)地址R-Plane

12h PCON

13h CLKCFG

14h PWM0CON

15h PWM0CR

16h P0TMLB

17h P0TMRLDLB

18h P0TMHB

19h P0RDHB

20h PWM1CON

21h PWM1CR

22h P1TM

23h P1TMRLD

24h Buzzer

25h~27h Revered

28h ADCON_1

29h ADCON_2

30h ADCHB

31h ADCLB

32h ADCON_3

33~34Revered

35h CMPCON1

36h DACR1HB

37h DACR1LB

38h CMPCON2

39h DACR2HB

3Ah DACR2LB

3B~3F(Revered)

40h | 7Fh

SRAM 64bytes

*执行IOST/IOSTR指令作存取

*IOST指令用来将ACC内容写入R-plane寄存器,IOSTR指令用来读取R-plane寄存器内容到ACC

1.8数据寄存器位制定

TABLE1.7-2:特殊功能寄存器列表

Address Name B7B6B5B4B3B2B1B0

00h(R/W)INDF间接寻址寄存器(不是实际存在的物理寄存器)

01h(R/W)Revered--

02h(R/W)PCL程序计数器(PC)低字节

03h(R/W)STATUS--ROMBK FRP/TO/PD Z DC C

04h(R/W)FSR间接寻址地址指针

05h(R/W)PORTA--------PORTA[3]PORTA[2]PORTA[1]PORTA[0] 06h(R/W)PORTB--------PORTB[3]PORTB[2]PORTB[2]PORTB[0] 07h Revered----------------

Address Name B7B6B5B4B3B2B1B0

08h Revered----------------

09h Revered------------

0Ah Revered

0BH(R/W)INTEN GIE--------INT1IE INT0IE TM0IE 0Ch(R/W)INTFLAG----------INT1IF INT0IF TM0IF 0Dh(R/W)INTCON SELINT1[2:0]----INT1CON INT0CON--

0Eh(R/W)TM0TM0[7:0]8-bit real time clock/counter

0Fh(R/W)TM0CON TM0EN--TM0PS[2:0]TM0CKS[2:0]

10h(R/W)TM0RLD TM0RLD[7:0]

11h(R/W)WDT WDTE WDTSL WDTPS2WDTPS1WDTPS0LVRSL SPSEL--

12h(R/W)PCON GRN_MD LVDIS RSTSL1RSTSL0LVDT36LVDT24LVDT30 13h(R/W)CLKCFG SELCLK2SELCLK1SELCLK0CLKSW ATSW INCODS EXOSEN IRCEN 14h(R/W)PWM0CON P0INTSL P0DT2P0DT1P0DT0P0CKS1P0CKS0P0OSEL[1:0]

15h(R/W)PWM0CR PWM0E P0OUTS P0TPS2P0TPS1P0TPS0P0TMEN P0TMIE P0TMIF 16h(R)P0TMLB P0TM[7:0]

17h(R/W)P0TMRLDLB P0TMRLD[7:0]

18h(R)P0TMHB P0TM[15:8]

19h(R/W)P0TMRLDHB P0TMRLD[15:8]

20h(R/W)PWM1CON P1INTSL P1DT2P1DT1P1DT0P1CKS1P1CKS0P1OSEL[1:0]

21h(R/W)PWM1CR PWM1E P1OUTS P1TPS2P1TPS1P1TPS0P1TMEN P1TMIE P1TMIF 22h(R/W)P1TM P1TM[7:0]

23h(R/W)P1TMRLD P1TMRLD[7:0]

24h(R/W)Buzzer BZS1BZS0Revered Revered Revered Revered Revered Revered 25~27h Revered Revered Revered Revered Revered Revered Revered Revered Revered 28h(R/W)ADCON_1ADCEN ADCST CHSEL[2:0]--ADCSR[1:0]

29h(R/W)ADCON_2ADCIE ADCIF SVERFH ADCNT SELH ADCTMS SELVER1SELVER0 30h(R)ADCHB ADCB[11]ADCB[10]ADCB[9]ADCB[8]ADCB[7]ADCB[6]ADCB[5]ADCB[4] 31h(R)ADCLB--------ADCB[3]ADCB[2]ADCB[1]ADCB[0] 32h(R/W)ADCOM_3INEN[7]--INEN[5]INEN[4]INEN[3]INEN[2]INEN[1]INEN[0] 35h(R/W)CMPCON1CMPEN COP1CMPIE1CMPRIF1CMPFIF1CMPMD[2:0]

36h(R/W)DACR1HB DACR1[11:4]

37(R/W)DACR1LB--------DACR1[3:0]

38h(R/W)CMPCON2CMPINT1COP2CMPIE2CMPRIF2CMPFIF2CMPINT2TOGSEL--

39h(R/W)DACR2HB DACR2[11:4]

3Ah(R/W)DACR2LB--------DACR2[3:0]

注:-=未实现,读取为‘0’,

1.9操作配置图

配置名称描述复位初值SELXOUT[1:0]选择IRC输出时钟

2b11

SLEXOUT[1:0]频率

2’b11Firc=16Mhz

2’b10Firc/2=8Mhz

2’b01Firc/4=4Mhz

2’b00Firc/8=2Mhz

SelCpuClk[2:0]选择Fcpu时钟

3’b111

SelCpuClk[2:0]Fcpu

3’b1xx1MHz

3’b0112MHz

3’b0104MHz

----

----

1’b1 INSWDY内部时钟切换到外部时钟延迟时间

1=128us延迟

0=4ms延迟

2’b11 WDTSEL看门狗定时器溢出选择

WDTSEL[1:0]:2’b00=128ms

2’b01=512ms

2’b10=8ms

2’b11=32ms

11

selPor上电复位延展时间

SelPor[1:0]:2’b00=8ms

2’b01=16ms

2’b10=32ms

2’b11=64ms

PROTECT1:无保护ROM程序码

1?无保护0:保护ROM程序码

【2】微处理器单元

2.1间接寻址定义

INDF不是ㄧ个实体的寄存器,它是根据FSR间接寻址指针寄存器来选定所处理的实体寄存器,当FSR=00h时读取INDF则会读取到INDF寄存器的数据内容0x00。

FSR寄存器的0~6位可选择128个寄存器(address00~7fh)。

地址00H:间接寻址寄存器(INDF)

位76543210

名称FSR间接寻址指针所指向的内容

读/写R/W R/W R/W R/W R/W R/W R/W R/W

复位初值00000000

地址04H:间接寻址指针寄存器(FSR)

位76543210

名称在间接寻址模式下用作定义地址用,只7bit有效

读/写R/W R/W R/W R/W R/W R/W R/W R/W

复位初值00000000

例:如何使用间接寻址指令

(1)写入0xAA数据到地址7Fh寄存器

MOVIA7Fh

MOVAR FSR;指针寄存器地址=7Fh

MOVIA AAh

MOVAR INDF;写入数据AAh到地址=7Fh寄存器

(2)读取地址7Fh寄存器到ACC

MOVIA7Fh

MOVAR FSR;指针寄存器地址=7Fh

MOVR INDF,A;读取地址7Fh寄存器到ACC

2.28位程序计数器

可透过(ADDAR PCL,R)指令的方式来建立列表,但是PCL寄存器最大为FFh,因此须注意(ADDAR PCL,R)指令的执行结果大于FFh的情况发生。

地址02H:程序计数器低字节(PCL)

位76543210

名称程序计数器低字节

读/写R/W R/W R/W R/W R/W R/W R/W R/W

复位初值00000000

例:建立列表

MOVR TABLECNT,A

CALL TABLE1

.

.

TABLE1:ADDAR PCL,R;PCL=PCL+TABLECNT

RETIA00h;TABLECNT=0

RETIA01H;TABLECNT=1

RETIA02H;TABLECNT=2

RETIA02H;TABLECNT=3

2.3状态寄存器

此寄存器内容为ALU算数的状态及复位状态

Z,DC或C位可写0来作清除,根据指令逻辑运算的结果设置为0或1,TO,PD位不可写。

地址03H:状态寄存器(STATUS)

位76543210

名称保留ROMBK FRP/TO/PD Z DC C

读/写R R/W R/W R R R/W R/W R/W 复位初值00000000

位[6]:ROMBK

1:选择程序存储器为Bank1.(PC=0x800h~0xFEFh)

0:选择程序存储器为Bank0.(PC=0x000h~0x7FFh)

位[5]:FRP

1:当执行BSR/BCR指令更新GPIO(PA/PB)的其它位依据外部引脚的状态(from PIN).

0:当执行BSR/BCR指令更新GPIO(PA/PB)的其它位依据PA/PB寄存器(from register).位[4]:/TO

WDT溢出标示位

1=复位后、CLRWDT或SLEEP指令

0=看门狗定时器溢出

位[3]:/PD

电源关闭标示位

1=复位后或CLRWDT指令

0=SLEEP指令

位[2]:Z

零标示位

1=逻辑运算结果为零

0=逻辑运算结果不为零

位[1]:DC

辅助进位/借位标示位

ADDAR,ADDIA

1=运算结果低4位有进位

0=运算结果低4位没有进位

SUBAR,SUBIA

1=运算结果低4位没有借位

0=运算结果低4位有借位

位[0]:C

进位/借位标示

ADDAR,ADDIA,RLR

1=有进位

0=没有进位

SUBAR,ADDIA,RRR

1=没有借位

0=有借位

2.4General Purpose I/O ports

Ports A是4位的数据输入/输出寄存器,Ports B是4位的数据输入/输出寄存器,在微处理器上每一位都可选择为外部中断输入口。

图2-4.1显示GPIO引脚

图2.4.3-1,每一引脚可独立配置为高阻抗输入口,内置上拉电阻输入口,开源极流输出或可选择出力电流强度输出口或入力电流输出口。

复位之后,GPIO数据内容及控制寄存器被清除,GPIO为输入模式。

2.4.1PortA,PortB口数据寄存器

地址05H:Port A(PORTA)

位76543210

名称--------PORTA[3]PORTA[2]PORTA[1]PORTA[0]读/写--------R/W R/W R/W R/W

复位初值00000000

位[7:0]:PORTA[3:0]数据输入/输出

1=引脚逻辑高电平

0=引脚逻辑低电平

地址06H:Port B(PORTB)

位76543210

名称--------PORTB[3]PORTB[2]PORTB[1]PORTB[0]读/写--------R/W R/W R/W R/W

复位初值00000000

位[7:0]:PORTB[3:0]数据输入/输出

1=引脚逻辑高电平

0=引脚逻辑低电平

图2.4-1Block diagram of GPIO Port

2.4.2PortA,PortB模式

地址08H:Port A输入输出控制寄存器0(PAMODE0)

位76543210

名称--------PAMD0[3:0]

读/写R/W R/W R/W R/W R/W R/W R/W R/W 复位初值00001100

执行IOST/IOSTR指令存取

位[7:0]:PAMD0[3:0]

1=引脚Mode0高电平

0=引脚Mode0低电平

地址09H:Port A输入输出控制寄存器1(PAMODE1)

位76543210

名称--------PAMD1[3:0]

读/写R/W R/W R/W R/W R/W R/W R/W R/W 复位初值00000000

执行IOST/IOSTR指令存取

位[7:0]:PAMD1[3:0]

1=引脚Mode1高电平

0=引脚Mode1低电平

Note:PA[2](VPP):预设为100K奥姆上拉;PA[3]:预设为100K奥姆上拉

地址0AH:Port b输入输出控制寄存器0(PBMODE0)

位76543210

名称--------PBMD0[3:0]

读/写--------R/W R/W R/W R/W 复位初值00000000

执行IOST/IOSTR指令存取

位[7:0]:PBMD0[3:0]

1=引脚Mode0高电平

0=引脚Mode0低电平

地址0BH:Port B输入输出控制寄存器1(PBMODE1)

位76543210

名称--------PBMD1[3:0]

读/写--------R/W R/W R/W R/W 复位初值00000000

执行IOST/IOSTR指令存取

位[7:0]:PBMD1[3:0]

1=引脚Mode1高电平

0=引脚Mode1低电平

端口A和B模式定义见表2.4.3-1:

表2.4.3-1Port A and B输出控制真值表

资料寄存器模式1模式0输出驱动强度

1

00高阻抗输入(Input mode)

1

01上拉(input mode)

1

10上拉(100K?)

0入力(15mA)

1

11正常出力(15mA)

0入力(15mA)

Mode1=0and Mode0=1上拉(输入模式)

Mode1=1and Mode0=0开源漏极模式

2.5看门狗定时器(WDT)

看门狗定时器(WDT)是ㄧ个不需要任何外部组成部分独立运行的内建RC震荡器,所以WDT将仍可以运行在SLEEP(休眠)模式中,在正常工作或是SLEEP(休眠)模式的时候,一个WDT溢出将会导致设备复位。

Configuration WDTSEL[1:0]VDD=5V~2.4vV

SIRC=32Khz,WDT Time out

2’b1132ms

2’b108ms

2’b01512ms

2’b00128ms

CLRWDT指令可以清除WDT,使定时器重新配置,以避免定时器溢出产生复位。

可设置WDTE(08h-7)位使看门狗定时器关闭,WDT的正常溢出周期为18ms(无分频下),当执行SLEEP指令时,WDT 溢出时MCU将会被复位重置或执行下一个指令。

看门狗定时器的预分频见表2.5-1.

看门狗定时器方框图见图 2.5-2.

地址11h看门狗定时器(WDT)

位76543210

名称WDTE WDTSL WDTPS[2:0]LVRSL SPSEL--

读/写R/W R/W R/W R/W R/W--

复位初值11000010

位[7]:WDTE

看门狗定时器使能位1=使能0=关闭

位[6]:WDTSL

看门狗溢出选择

1=如果看门狗溢出,设备被复位(PC =0x000h)

0=如果看门狗溢出,设备被唤醒且PC =PC+1,在绿色模式下有效位[5:3]:WDTPS[2:0]

WDT 预分频表2.5-1.

WDTPS[2:0]WDT 溢出(config =32ms)3’b00032ms *1=32ms 3’b00132ms *2=64ms 3’b01032ms *4=128ms 3’b01132ms *8=256ms 3’b10032ms *16=512ms 3’b10132ms *32=1024ms 3’b11032ms *64=2048ms 3’b111

32ms *128=4096ms 表2.5-1WDT 预分频

位[2]:LVRSL

LVR 选择.

1=当MCU 在绿色(Green)模式,LVR 讯号能唤醒MCU 至正常模式(PC=PC+1)。0=当MCU

在绿色(Green)模式,LVR 讯号能重置MCU(PC=0x000)。位[1]:SPSEL

Slow IRC 时钟选择

1:Slow IRC Clock 不随VDD 变化0:Slow IRC Clock 随VDD 变化

WDTPS[2:0]

图 2.5-2WDT 方框图

相关文档