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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
PMS171B

PMS171B

  • 厂商:

    PADAUK(应广)

  • 封装:

    SOP16_150MIL

  • 描述:

    8位OTP型单片机带8位ADC

  • 数据手册
  • 价格&库存
PMS171B 数据手册
PMS171B 系列 8 位 OTP 型单片机带 8 位 ADC 数据手册 第 1.00 版 2018 年 11 月 7 日 Copyright  2018 by PADAUK Technology Co., Ltd., all rights reserved. 6F-6, No.1, Sec. 3, Gongdao 5th Rd., Hsinchu City 30069, Taiwan, R.O.C. TEL: 886-3-572-8688  www.padauk.com.tw PMS171B 8 位 OTP 型单片机带 8 位 ADC 重要声明 应广科技保留权利在任何时候变更或终止产品,建议客户在使用或下单前与应广科技或代理商 联系以取得最新、最正确的产品信息。 应广科技不担保本产品适用于保障生命安全或紧急安全的应用,应广科技不为此类应用产品承 担任何责任。关键应用产品包括,但不仅限于,可能涉及的潜在风险的死亡,人身伤害,火灾或严 重财产损失。 应广科技不承担任何责任来自于因客户的产品设计所造成的任何损失。在应广科技所保障的规 格范围内,客户应设计和验证他们的产品。为了尽量减少风险,客户设计产品时,应保留适当的产 品工作范围安全保障。 提供本文档的中文简体版是为了便于了解,请勿忽视文中英文的部份,因为其中提供有关产品性能以及产品使用的有用 信息,应广科技暨代理商对于文中可能存在的差错不承担任何责任,建议参考本文件英文版。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 2 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 目 录 1. 功能.. ....................................................................................................................................... 8 1.1. 特性 ........................................................................................................................................ 8 1.2. 系统特性 ................................................................................................................................. 8 1.3. CPU 特点............................................................................................................................... 8 1.4. 封装信息 ................................................................................................................................. 8 2. 系统概述和方框图 ................................................................................................................... 9 3. 引脚功能说明 ........................................................................................................................ 10 4. 器件电器特性 ........................................................................................................................ 15 4.1. 直流交流电气特性..................................................................................................................... 15 4.2. 绝对最大值范围 ........................................................................................................................ 17 4.3. ILRC 频率与 VDD 关系曲线图 ................................................................................................... 17 4.4. IHRC 频率与 VDD 关系曲线图(校准到 16MHz) ..................................................................... 18 4.5. ILRC 频率与温度关系曲线图 ..................................................................................................... 18 4.6. IHRC 频率与温度关系曲线图(校准到 16MHz) ....................................................................... 19 4.7. 工作电流 vs. VDD 与系统时钟 = ILRC/n 关系曲线图 ................................................................ 19 4.8. 工作电流 vs. VDD 与系统时钟 = IHRC/n 关系曲线图............................................................... 20 4.9. 工作电流 vs. VDD 与系统时钟 = 4MHz EOSC / n 关系曲线图 .................................................. 20 4.10. 工作电流 vs.VDD 与系统时钟 = 32KHz EOSC / n 关系曲线图................................................ 21 4.11. 工作电流 vs. VDD 与系统时钟 = 1MHz EOSC / n 关系曲线图 ................................................ 21 4.12. IO 引脚输出的驱动电流(IOH)与灌电流(IOL)曲线图...................................................................... 22 4.13. IO 引脚输入高/低阀值电压(VIH/VIL)曲线图 ................................................................................ 24 4.14. IO 引脚上拉阻抗曲线图 ........................................................................................................... 24 4.15. IO 引脚下拉阻抗曲线图 ........................................................................................................... 25 4.16. 省电模式和掉电模式消耗电流 ................................................................................................. 25 4.17. 开机时序图 ............................................................................................................................. 26 5. 功能概述 ............................................................................................................................... 27 5.1. OTP 程序存储器 ................................................................................................................... 27 5.2. 启动程序 ............................................................................................................................... 27 5.3. 数据存储器 - SRAM ............................................................................................................. 28 5.4. 振荡器和时钟 ........................................................................................................................ 28 5.4.1. 内部高频 RC 振荡器和内部低频 RC 振荡器 ............................................................... 28 5.4.2. 芯片校准 ................................................................................................................... 28 ©Copyright 2018, PADAUK Technology Co. Ltd Page 3 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 5.4.3. IHRC 频率校准和系统时钟 ........................................................................................ 29 5.4.4. 外部晶体振荡器......................................................................................................... 30 5.4.5. 系统时钟和 LVR 基准位 ............................................................................................ 32 5.4.6. 系统时钟切换 ............................................................................................................ 33 5.5. 比较器 .................................................................................................................................. 34 5.5.1 内部参考电压 (Vinternal R) ............................................................................................ 35 5.5.2 使用比较器 ................................................................................................................ 37 5.5.3 使用比较器和 band-gap 1.20V .................................................................................. 38 5.6 16 位计数器 (Timer16) ......................................................................................................... 39 5.7 8 位 PWM 计数器(Timer2/Timer3) ........................................................................................ 40 5.7.1 使用 Timer2 产生周期波形 ........................................................................................ 42 5.7.2 使用 Timer2 产生 8 位 PWM 波形 .............................................................................. 44 5.7.3 使用 Timer2 产生 6 位/ 7 位 PWM 波形..................................................................... 45 5.8 看门狗 .................................................................................................................................. 46 5.9 中断 ...................................................................................................................................... 47 5.10 省电与掉电 ........................................................................................................................... 49 5.10.1 省电模式 (“stopexe”) ................................................................................................ 49 5.10.2 掉电模式 (“stopsys”) ................................................................................................. 49 5.10.3 唤醒 .......................................................................................................................... 50 5.11 IO 引脚 ................................................................................................................................ 51 5.12 复位和 LVR........................................................................................................................... 53 5.12.1 复位 .......................................................................................................................... 53 5.12.2 LVR 复位 .................................................................................................................. 53 5.13 模拟-数字转换器(ADC) 模块 ................................................................................................ 53 5.13.1 AD 转换的输入要求 ................................................................................................... 54 5.13.2 选择参考高电压......................................................................................................... 55 5.13.3 ADC 时钟选择 ........................................................................................................... 55 5.13.4 配置模拟引脚 ............................................................................................................ 55 5.13.5 使用 ADC .................................................................................................................. 55 6. IO 寄存器 ............................................................................................................................. 57 6.1. ACC 状态标志寄存器(flag), IO 地址 = 0x00 .......................................................................... 57 6.2. 堆栈指针寄存器(sp), IO 地址 = 0x02 .................................................................................... 57 6.3. 时钟模式寄存器(clkmd), IO 地址 = 0x03............................................................................... 57 6.4. 中断允许寄存器(inten), IO 地址 = 0x04 ................................................................................ 58 6.5. 中断请求寄存器(intrq), IO 地址 = 0x05 ................................................................................. 58 6.6. Timer16 控制寄存器 (t16m), IO 地址 = 0x06 ....................................................................... 59 6.7. Timer2 上限寄存器(tm2b), IO 地址 = 0x09 ........................................................................... 59 ©Copyright 2018, PADAUK Technology Co. Ltd Page 4 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7. 6.8. 外部晶体振荡器控制寄存器(eoscr), IO 地址 = 0x0a.............................................................. 59 6.9. 中断边缘选择寄存器(integs), IO 地址 = 0x0c........................................................................ 60 6.10. 端口 A 数字输入使能寄存器(padier), IO 地址 = 0x0d ........................................................... 60 6.11. 端口 B 数字输入使能寄存器(pbdier), IO 地址 = 0x0e ............................................................ 60 6.12. 端口 A 数据寄存器(pa), IO 地址 = 0x10 ................................................................................ 61 6.13. 端口 A 控制寄存器(pac), IO 地址 = 0x11 .............................................................................. 61 6.14. 端口 A 上拉控制寄存器(paph), IO 地址 = 0x12 ..................................................................... 61 6.15. 端口 B 数据寄存器(pb), IO 地址 = 0x14 ................................................................................ 61 6.16. 端口 B 控制寄存器(pbc), IO 地址 = 0x15 .............................................................................. 61 6.17. 端口 B 上拉控制寄存器(pbph), IO 地址 = 0x16 ..................................................................... 61 6.18. 端口 B 下拉控制寄存器(pbpl), IO 地址 = 0x38 ...................................................................... 61 6.19. 杂项寄存器(misc), IO 地址 = 0x17........................................................................................ 62 6.20. 比较器控制寄存器(gpcc), IO 地址 = 0x18 ............................................................................. 62 6.21. 比较器选择寄存器(gpcs), IO 地址 = 0x19 ............................................................................. 63 6.22. Timer2 控制寄存器(tm2c), IO 地址 = 0x1c............................................................................ 63 6.23. Timer2 计数寄存器(tm2ct), IO 地址 = 0x1d .......................................................................... 63 6.24. Timer2 分频寄存器(tm2s), IO 地址 = 0x1e ........................................................................... 64 6.25. Timer3 控制寄存器(tm3c), IO 地址 = 0x32 ........................................................................... 64 6.26. Timer3 计数寄存器(tm3ct), IO 地址 = 0x33 ......................................................................... 64 6.27. Timer3 分频寄存器(tm3s), IO 地址 = 0x34 .......................................................................... 65 6.28. Timer3 上限寄存器(tm3b), IO 地址 = 0x3f ........................................................................... 65 6.29. ADC 控制寄存器(adcc), IO 地址 = 0x3b ............................................................................... 65 6.30. ADC 模式寄存器(adcm), IO 地址 = 0x3c .............................................................................. 66 6.31. ADC 调节控制寄存器(adcrgc), IO 地址 = 0x3d ..................................................................... 66 6.32. ADC 数据高位寄存器(adcr), IO 地址 = 0x3e......................................................................... 66 指令 ..................................................................................................................................... 67 7.1. 数据传输类指令 .................................................................................................................... 68 7.2. 算数运算类指令 .................................................................................................................... 70 7.3. 移位运算类指令 .................................................................................................................... 72 7.4. 逻辑运算类指令 .................................................................................................................... 73 7.5. 位运算类指令 ........................................................................................................................ 75 7.6. 条件运算类指令 .................................................................................................................... 76 7.7. 系统控制类指令 .................................................................................................................... 77 7.8. 指令执行周期综述 ................................................................................................................. 79 7.9. 指令影响标志综述 ................................................................................................................. 79 7.10. 位定义 .................................................................................................................................. 79 8. 程序选项 ............................................................................................................................... 80 ©Copyright 2018, PADAUK Technology Co. Ltd Page 5 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 9. 特别注意事项 ........................................................................................................................ 81 9.1. 警告 ...................................................................................................................................... 81 9.2. 使用 IC ................................................................................................................................. 81 9.2.1 IO 引脚的使用和设定 ................................................................................................. 81 9.3 9.2.2 中断 .......................................................................................................................... 82 9.2.3 系统时钟选择 ............................................................................................................ 82 9.2.4 看门狗 ....................................................................................................................... 83 9.2.5 TIMER 溢出.............................................................................................................. 83 9.2.6 IHRC ......................................................................................................................... 83 9.2.7 LVR .......................................................................................................................... 83 9.2.8 PMS171B 的烧录方法 ............................................................................................... 84 使用 ICE .............................................................................................................................. 85 ©Copyright 2018, PADAUK Technology Co. Ltd Page 6 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 修订历史: 修订 日期 0.00 2018/10/11 描述 初版 1. 修改第 1.1 节特性 1.00 2018/11/07 2. 修改图 4:比较器硬件原理框图 3. 修改第 9.2.8 节 PMS171B 的烧录方法 ©Copyright 2018, PADAUK Technology Co. Ltd Page 7 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 1. 功能 1.1. 特性  通用 OTP 系列  不建议使用于 AC 阻容降压供电或有高 EFT 要求的应用。应广不对使用于此类应用而不达安规要求负责  工作温度范围:-20°C ~ 70°C 1.2. 系统特性  1.5KW OTP 程序存储器  96 字节数据存储器  时钟源:内部高频 RC 振荡器, 内部低频 RC 振荡器和外部晶体震荡  Band-gap 电路提供 1.2V 参考电压  一个硬件 16 位计数器  两个 8 位硬件 PWM 生成器  一个硬件比较器  高达 11 通道 8 位 ADC  提供 ADC 参考高电压:外部输入,内部 VDD  8 段 LVR 复位设定:4.0V、3.5V、3.0V、2.75V、2.5V、2.2V、2.0V、1.8V  14 个 IO 引脚带有上拉电阻选项,其中两个有下拉选项  PB0 提供 NMOS 开漏及 PB7 提供 PMOS 特大电流输出(典型值 135mA @VDD=5.0V)  两组可选的外部中断引脚  每个 IO 引脚都可设定唤醒功能  对所有带有唤醒功能的 IO,都支持两种可选择的唤醒速度:正常唤醒和快速唤醒 1.3. CPU 特点  单一处理单元工作模式  提供 82 个有效指令  大部分都是单周期 (1T)指令  可程序设定的堆栈指针和堆栈深度  数据存取支持直接和间接寻址模式,用数据存储器即可当作间接寻址模式的数据指针(index pointer)  IO 地址以及存储地址空间互相独立 1.4. 封装信息  PMS171B-S16: SOP16 (150mil)  PMS171B-1J16A: QFN3*3-16pin (0.5pitch)  PMS171B-S14: SOP14 (150mil)  PMS171B-M10: MSOP10 (118mil)  PMS171B-S08: SOP8 (150mil)  PMS171B-U06: SOT23-6 (60mil) ©Copyright 2018, PADAUK Technology Co. Ltd Page 8 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 2. 系统概述和方框图 PMS171B 系列是一款带 ADC,完全静态的,以 OTP 为程序基础的 CMOS 8-bit 微处理器。它运用 RISC 的 架构并且所有的指令架构的执行周期都是一个指令周期,只有少部分指令需要两个指令周期。 PMS171B 有 1.5KW OTP 程序存储器以及 96 字节数据存储器,还有多达 11 通道 8 位分辨率的 ADC,其中 一个通道是内部 band-gap 参考电压。PMS171B 同时提供 3 个硬件计数器:一个 16 位的硬件计数器,两个 8 位 PWM 计数器(包含 PWM 生成器) 。PMS171B 还提供一个硬件比较器及两个特大电流输出 IO。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 9 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 3. 引脚功能说明 ©Copyright 2018, PADAUK Technology Co. Ltd Page 10 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC ©Copyright 2018, PADAUK Technology Co. Ltd Page 11 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 引脚名称 引脚类型 & 描述 形态 此引脚可以用作: PA7 / X1 IO ST / CMOS (1) 端口 A 位 7,并可编程设定为输入或输出,弱上拉电阻模式。 (2) 当使用外部晶振时,作为 X1 引脚。 当用做晶体振荡器的功能时,为减少漏电流,请用 padier 寄存器位 7 关闭其数字输入 功能。这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 padier 位 7 为”0” 时,唤醒功能是被关闭的。 此引脚可以用作: PA6 / X2 IO ST / CMOS (1) 端口 A 位 6,并可编程设定为输入或输出,弱上拉电阻模式。 (2) 当使用外部晶振时,作为 X2 引脚。 当用做晶体振荡器的功能时,为减少漏电流,请用 padier 寄存器位 6 关闭其数字输入 功能。这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 padier 位 6 为”0” 时,唤醒功能是被关闭的。 此引脚可以用作: PA5 / PRSTB IO (OD) ST / CMOS (1) 端口 A 位 5,此引脚可以设定为输入或开漏输出(open drain)模式。 (2) 硬件复位。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 padier 位 5 为”0”时,唤 醒功能是被关闭的。另外,当此引脚设定成输入时,对于需要高抗干扰能力的系统,请 串接 33Ω 电阻。 此引脚可以用作: (1) 端口 A 位 4,并可编程设定为输入或输出,弱上拉电阻模式。 PA4 / AD9 / CIN+ / CIN1- / INT1A (2) ADC 模拟输入通道 9。 IO ST / CMOS / Analog (3) 比较器的正输入源。 (4) 比较器的负输入源 1。 (5) 外部中断源 1A。它可以用作外部中断源 1。通过寄存器可以设置上升沿和下降沿响 应中断服务请求。 当用做模拟输入功能时,为减少漏电流,请用 padier 寄存器位 4 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 padier 位 4 为”0”时,唤 醒功能是被关闭的。 此引脚可以用作: (1) 端口 A 位 3,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 8。 PA3 / IO AD8 / ST / CIN0- / CMOS / (4) Timer2 的 PWM 输出。 TM2PWM Analog 当用做模拟输入功能时,为减少漏电流,请用 padier 寄存器位 3 关闭其数字输入功能。 (3) 比较器 0 的负输入。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 padier 位 3 为”0”时,唤 醒功能是被关闭的。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 12 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 引脚名称 引脚类型 & 描述 形态 此引脚可以用作: PA0 / IO AD10 / ST / CO / CMOS / INT0 / Analog (1) 端口 A 位 0,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 10。 (3) 比较器输出。 (4) 外部中断源 0,上升沿和下降沿都可触发中断。通过寄存器可以设置上升沿和下降 沿响应中断服务请求。 padier 寄存器的位 0 可以设为“0” 停用睡眠中唤醒系统的功能。 此引脚可以用作: (1) 端口 B 位 7,并可编程设定为输入或输出模式,弱上拉电阻模式。 PB7 / IO (2) ADC 模拟输入通道 7。 AD7 / ST / (3) 比较器的负输入源 5。 CIN5- / CMOS / (4) Timer3 的 PWM 输出。 TM3PWM Analog 当用做模拟输入功能时,为减少漏电流,请用 pbdier 寄存器位 7 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 7 为”0”时,唤 醒功能是被关闭的。 此引脚可以用作: (1) 端口 B 位 6,并可编程设定为输入或输出,弱上拉电阻模式,下拉电阻模式。 PB6 / IO (2) ADC 模拟输入通道 6。 AD6 / ST / (3) 比较器的负输入源 4。 CIN4- / CMOS / (4) Timer3 的 PWM 输出。 TM3PWM Analog 当用做模拟输入功能时,为减少漏电流,请用 pbdier 寄存器位 6 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 6 为”0”时,唤 醒功能是被关闭的。 此引脚可以用作: (1) 端口 B 位 5,并可编程设定为输入或输出,弱上拉电阻模式。 PB5 / IO (2) ADC 模拟输入通道 5。 AD5 / ST / (3) Timer3 的 PWM 输出。 TM3PWM / CMOS / (4) 外部中断源 0A,上升沿和下降沿都可触发中断。 INT0A Analog 当用做模拟输入功能时,为减少漏电流,请用 pbdier 寄存器位 5 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 5 为”0”时,唤 醒功能是被关闭的。 此引脚可以用作: PB4 / AD4 / TM2PWM IO ST / CMOS / Analog (1) 端口 B 位 4,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 4。 (3) Timer2 的 PWM 输出。 当用做模拟输入功能时,为减少漏电流,请用 pbdier 寄存器位 4 关闭其数字输入功能; 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 4 为”0”时,唤 醒功能是被关闭的。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 13 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 引脚名称 引脚类型 & 描述 形态 此引脚可以用作: IO (1) 端口 B 位 3,并可编程设定为输入或输出,弱上拉电阻模式,下拉电阻模式。 (2) ADC 模拟输入通道 3。 PB3 / ST / AD3 CMOS / 此引脚可用做端口 B 位 3,并可编程设定为输入或输出,弱上拉电阻模式。这个引脚 Analog 可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 3 为”0”时,唤醒功能是 被关闭的。 此引脚可以用作: PB2 / AD2 / TM2PWM IO ST / CMOS / Analog (1) 端口 B 位 2,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 2。 (3) Timer2 的 PWM 输出。 当用做模拟输入功能时,为减少漏电流,请用 pbdier 寄存器位 2 关闭其数字输入功能; 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 2 为”0”时,唤 醒功能是被关闭的。 此引脚可以用作: PB1 / AD1 / Vref IO ST / CMOS / Analog (1) 端口 B 位 1,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 1。 (3) ADC 的外部参考高电压。 此引脚可用做端口 B 位 1,并可编程设定为输入或输出,弱上拉电阻模式。这个引脚 可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 1 为”0”时,唤醒功能是 被关闭的。 此引脚可以用作: PB0 / IO (OD) TM2PWM / ST / INT1 CMOS (1) 端口 B 位 0,并可编程设定为输入或开漏输出(open drain)模式。 (2) Timer2 的 PWM 输出。 (3) 外部中断源 1。通过寄存器的设置,上升沿和下降沿都可以用来响应中断请求。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 0 为”0”时,唤 醒功能是被关闭的。 VDD:数字正电源 VDD / VDD / AVDD:模拟正电源 AVDD AVDD VDD 是 IC 电源, 而 AVDD 是 ADC 专用电源。 在 IC 内部,AVDD 与 VDD 连在一起(double bonding),而外部为相同引脚。 GND:数字负电源 GND / GND / AGND AGND AGND:模拟负电源 GND 是 IC 接地引脚,而 AGND 是 ADC 接地引脚。在 IC 内部,AGND 与 GND 连在 一起(double bonding),而外部为相同引脚。 注意:IO:输入/输出;ST:施密特触发器输入;Analog:模拟输入引脚;CMOS:CMOS 电压基准位 ©Copyright 2018, PADAUK Technology Co. Ltd Page 14 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 4. 器件电器特性 4.1. 直流交流电气特性 下列所有数据除特别列明外,皆于 VDD=5.0V,fSYS=2MHz 之条件下获得。 符号 VDD LVR% fSYS IOP IPD IPS 描述 工作电压 LVR 精度 系统时钟 (CLK)* = IHRC/2 IHRC/4 IHRC/8 ILRC 最小值 典型值 最大值 1.8* 5.0 5.5 V -5 5 % 0 0 0 8M 4M 2M Hz 工作电流 掉电模式下电流 (使用 stopsys 命令) 省电模式下电流 (使用 stopexe 命令) VIL 输入低电压 VIH 输入高电压 IOL PB0 PB4, PB5(正常输出) PB4, PB5(高输出) 其他 IO 50K 0.7 35 1 0.6 mA uA uA uA 3 uA 0 0.1 VDD 0 0.2 VDD 0.8 VDD VDD 0.7 VDD VDD IO 输出灌电流 135 16 38 16 o 单位 V V 条件(Ta=25 C) *取决于 LVR 的误差 VDD ≧3.0V VDD ≧2.2V VDD ≧1.8V VDD = 5.0V fSYS=IHRC/16=1MIPS@5.0V fSYS=ILRC=50kHz@3.3V fSYS= 0Hz,VDD=5.0V fSYS= 0Hz,VDD=3.3V VDD=5.0V; fSYS= ILRC 仅使用 ILRC 模式下 PA5 其他 IO PA5 其他 IO mA VDD=5.0V, VOL=0.5V mA VDD=5.0V, VOH=4.5V IO 输出驱动电流 IOH VIN IINJ (PIN) PA5,PB0 PB4, PB5(正常输出) PB4, PB5(高输出) PB7 其他 IO 输入电压 0 6 20 135 6 -0.3 引脚输入电流 VDD+0.3 V 1 mA VDD=5.0V 100 RPH RPL 上拉电阻 下拉电阻 200 KΩ VDD=3.3V 450 VDD=2.2V 100 VDD=5.0V 200 350 ©Copyright 2018, PADAUK Technology Co. Ltd VDD+0.3≧VIN≧ -0.3 Page 15 of 85 KΩ VDD=3.3V VDD=2.2V PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 符号 描述 最小值 典型值 最大值 单位 VBG Band-gap 参考电压 1.145* 1.20* 1.255* V VPOR 上电复位电压 fIHRC 校准后 IHRC 频率 * 1.8* 15.76* 16.24* 15.20* 16.80* 16* 13.60* tINT 中断脉冲宽度 30 VADC ADC 输入电压 0 ADrs ADC 分辨率 ADcs ADC 消耗电流 ADclk ADC 时钟周期 tADCONV V o *取决于 LVR 误差 VDD=2.0V~5.5V, MHz o o 0 C 负输入 选择比较器的结果是否由 TM2_CLK 采样输出。 5 0 读/写 0:比较器的结果没有 TM2_CLK 采样输出 1:比较器的结果是由 TM2_CLK 采样输出 选择比较器输出的结果是否反极性。 4 0 读/写 0:比较器输出的结果没有反极性 1:比较器输出的结果是反极性 选择比较器负输入的来源。 000:PA3 001:PA4 3–1 000 读/写 010:内部 1.20 V band-gap 参考电压 011:Vinternal R 100:PB6(不适用 EV5) 101:PB7(不适用 EV5) 11X:保留 选择比较器正输入的来源。 0 0 读/写 0:Vinternal R 1:PA4 ©Copyright 2018, PADAUK Technology Co. Ltd Page 62 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 6.21. 比较器选择寄存器(gpcs), IO 地址 = 0x19 位 初始值 读/写 只写 描述 比较器输出启用(到 PA0)。 7 0 6 0 5 0 只写 选择比较器参考电压 Vinternal R 最高的范围。 4 0 只写 选择比较器参考电压 Vinternal R 最低的范围。 3–0 0000 只写 只写 0 / 1 :停用/启用。 GPC 唤醒使能。 0 / 1 :停用/启用。 选择比较器参考电压 Vinternal R。 0000(最低) ~ 1111(最高) 6.22. Timer2 控制寄存器(tm2c), IO 地址 = 0x1c 位 初始值 读/写 7–4 0000 读/写 描述 Timer2 时钟源选择: 0000:停用 0001:CLK(系统时钟) 0010:IHRC or IHRC *2(由 code option TMx_ source 决定) 0011:EOSC 0100:ILRC 0101:比较器输出 011x:保留 1000:PA0(上升沿) 1001:~PA0(下降沿) 1010:PB0(上升沿) 1011:~PB0(下降沿) 1100:PA4(上升沿) 1101:~PA4(下降沿) 注意:在 ICE 模式且 IHRC 被选为 Timer2 定时器时钟,当 ICE 停下时,发送到定时器的时钟 不会停止,定时器仍然继续计数。 Timer2 输出选择: 00:停用 3–2 00 读/写 01:PB2 或 PB0(由程序选项 TM2 输出决定)(仿真不支持 PB0 输出) 10:PA3 11:PB4 1 0 读/写 0 0 读/写 Timer2 模式选择: 0 / 1:定周期模式 / PWM 模式。 启用 Timer2 反极性输出: 0 / 1:停用/启用 6.23. Timer2 计数寄存器(tm2ct), IO 地址 = 0x1d 位 初始值 读/写 7–0 0x00 读/写 描述 Timer2 定时器位[7:0]。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 63 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 6.24. Timer2 分频寄存器(tm2s), IO 地址 = 0x1e 位 初始值 读/写 描述 PWM 分辨率选择。 7 0 只写 0:8 位 1:6 位或者 7 位(由 code option TMx_Bit 决定) Timer2 时钟预分频器。 00:÷ 1 6–5 00 只写 01:÷ 4 10:÷ 16 11:÷ 64 4–0 00000 只写 Timer2 时钟分频器。 6.25. Timer3 控制寄存器(tm3c), IO 地址 = 0x32 位 初始值 读/写 描述 Timer3 时钟选择。 0000:停用 0001:CLK(系统时钟) 0010:IHRC or IHRC *2(可通过程序选项 TMx_source 选择 16MHz 或者 32MHz) 0011:EOSC 0100:ILRC 0101:比较器输出 7–4 0000 读/写 011x:保留 1000:PA0(上升沿) 1001:~PA0(下降沿) 1010:PB0(上升沿) 1011:~PB0(下降沿) 1100:PA4(上升沿) 1101:~PA4(下降沿) 注意:在 ICE 模式且 IHRC 被选为 Timer3 定时器时钟,当 ICE 停下时,发送到定时器的 时钟不会停止,定时器仍然继续计数。 Timer3 输出选择。 00:停用 3–2 00 读/写 01:PB5 10:PB6 11:PB7 1 0 读/写 0 0 读/写 Timer3 模式选择。 0 / 1:定周期模式 / PWM 模式。 启用 Timer3 反极性输出。 0 / 1 :停用/启用。 6.26. Timer3 计数寄存器(tm3ct), IO 地址 = 0x33 位 初始值 读/写 7–0 0x00 读/写 描述 Timer3 定时器位[7:0]。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 64 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 6.27. Timer3 分频寄存器(tm3s), IO 地址 = 0x34 位 初始值 读/写 描述 PWM 分辨率选择。 7 0 只写 0:8 位 1:6 位或者 7 位(由 code option TMx_Bit 决定) Timer3 时钟预分频器。 00:÷ 1 6–5 00 只写 01:÷ 4 10:÷ 16 11:÷ 64 4–0 00000 只写 Timer3 时钟分频器。 6.28. Timer3 上限寄存器(tm3b), IO 地址 = 0x3f 位 初始值 读/写 7–0 0x00 只写 描述 Timer3 上限寄存器。 6.29. ADC 控制寄存器(adcc), IO 地址 = 0x3b 位 初始值 读/写 7 0 读/写 6 0 读/写 描述 启用 ADC 功能。0/1:停用/启用 ADC 转换进程控制位: 读到 “1” 表明 ADC 已经准备好,或已转换完成。 通道选择。以下 4 位用来选择 AD 转换的输入信号: 0000:保留 0001:PB1 0010:PB2 0011:PB3 0100:PB4 5–2 0001 读/写 0101:PB5 0110:PB6 0111:PB7 1000:PA3 1001:PA4 1010:PA0 1111:(通道 F)Band-gap 参考电压 其他:保留。 0–1 - - 保留(写 0)。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 65 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 6.30. ADC 模式寄存器(adcm), IO 地址 = 0x3c 位 初始值 读/写 7–4 - - 描述 保留(写 0)。 ADC 时钟源选择: 000:CLK(系统时钟)÷ 1, 001:CLK(系统时钟)÷ 2, 010:CLK(系统时钟)÷ 4, 3–1 000 读/写 011:CLK(系统时钟)÷ 8, 100:CLK(系统时钟)÷ 16, 101:CLK(系统时钟)÷ 32, 110:CLK(系统时钟)÷ 64, 111:CLK(系统时钟)÷ 128 0 - - 保留。 6.31. ADC 调节控制寄存器(adcrgc), IO 地址 = 0x3d 位 初始值 读/写 描述 ADC 参考高电压: 7 0 只写 0:VDD, 1:外部引脚 (PB1) 6–0 - - 保留。 6.32. ADC 数据高位寄存器(adcr), IO 地址 = 0x3e 位 初始值 读/写 7–0 - 只读 描述 这 8 个只读位是 AD 转换结果。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 66 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7. 指令 符号 ACC a sp flag 描述 累加器(Accumulator 的缩写) 累加器(Accumulator 在程序里的代表符号) 堆栈指针 ACC 标志寄存器 I 立即数据 & 逻辑与 | 逻辑或 ← 移动 ^ 异或 + 加 - 减 〜 按位取反(逻辑补数,1 补数) 〒 负数(2 补码) OV 溢出(2 补数系统的运算结果超出范围) Z 零(如果零运算单元操作的结果是 0,这位设置为 1) C 进位(Carry) AC 辅助进位标志(Auxiliary Carry) pc0 CPU 的程序计数器 M.n 只允许寻址在地址 0~0x3F (0~63) 的位置 ©Copyright 2018, PADAUK Technology Co. Ltd Page 67 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7.1. 数据传输类指令 mov a, I mov M, a mov a, M mov mov ldt16 a, IO IO, a word 移动即时数据到累加器。 例如: mov a, 0x0f; 结果: a ← 0fh; 『不变』, 受影响标志位: Z: C: 『不变』, AC:『不变』, OV: 『不变』 移动数据由累加器到存储器。 例如: mov MEM, a; 结果: MEM ← a 『不变』, 受影响标志位: Z: C: 『不变』, AC:『不变』, OV: 『不变』 移动数据由存储器到累加器。 例如: mov a, MEM ; 结果: a ← MEM; 当 MEM 为零时,标志位 Z 会被置位。 『受影响』 , C:『不变』 , AC: 『不变』, 受影响标志位:Z: OV: 『不变』 移动数据由 IO 到累加器。 例如: mov a, pa ; 结果: a ← pa; 当 pa 为零时,标志位 Z 会被置位。 『受影响』 , C: 『不变』, AC:『不变』 , 受影响标志位: Z: 移动数据由累加器到 IO。 例如: mov pb, a; 结果: pb ← a 『不变』, 受影响标志位:Z: C: 『不变』, 将 Timer16 的 16 位计算值复制到 RAM。 例如: ldt16 word; 结果: word ← 16-bit timer 受影响标志位: Z: 『不变』, C: 『不变』, AC:『不变』, AC:『不变』, OV:『不变』 OV: 『不变』 OV: 『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------word T16val ; // 定义一个 RAM word … clear lb@T16val ; // 清零 T16val (LSB) clear hb@T16val ; // 清零 T16val (MSB) stt16 T16val ; // 设定 Timer16 的起始值为 0 … set1 t16m.5 ; // 启用 Timer16 … set0 t16m.5 ; // 停用 Timer16 ldt16 T16val ; // 将 Timer16 的 16 位计算值复制到 RAM T16val …. ------------------------------------------------------------------------------------------------------------------------ ©Copyright 2018, PADAUK Technology Co. Ltd Page 68 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC stt16 word 将放在 word 的 16 位 RAM 复制到 Timer16。 例如: stt16 word; 结果: 16-bit timer ← word 受影响标志位: Z: 『不变』, C: 『不变』, AC:『不变』, OV: 『不变』 应用范例: ----------------------------------------------------------------------------------------------------------------------------word T16val ; // 定义一个 RAM word … mov a, 0x34 ; mov lb@T16val, a ; // 将 0x34 搬到 T16val (LSB) mov a, 0x12 ; mov hb@T16val, a ; // 将 0x12 搬到 T16val (MSB) stt16 T16val ; // Timer16 初始化 0x1234 … ---------------------------------------------------------------------------------------------------------------------- idxm a, index 使用索引作为 RAM 的地址并将 RAM 的数据读取并载入到累加器。它需要 2T 时间执行这一指令。 例如: idxm 结果: a ← [index], index 是用 word 定义。 a, index; 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: ------------------------------------------------------------------------------------------------------------------------word RAMIndex ; // 定义一个 RAM 指针 … mov a, 0x5B ; // 指定指针地址 (LSB) mov lb@RAMIndex, a ; // 将指针存到 RAM (LSB) mov a, 0x00 ; // 指定指针地址为 0x00 (MSB),在 PMS171B 要为 0 mov hb@RAMIndex, a ; // 将指针存到 RAM (MSB) … idxm a, RAMIndex ; // 将 RAM 地址为 0x5B 的数据读取并载入累加器 -----------------------------------------------------------------------------------------------------------------------Idxm index, a 使用索引作为 RAM 的地址并将累加器的数据读取并载入到 RAM。它需要 2T 时间执行这一指令。 例如:idxm index, a; 结果:[index] ← a; index 是以 word 定义. 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: -------------------------------------------------------------------------------------------------------------------------word RAMIndex ; // 定义一个 RAM 指针 … mov a, 0x5B ; // 指定指针地址 (LSB) mov lb@RAMIndex, a ; // 将指针存到 RAM (LSB) mov a, 0x00 ; // 指定指针地址为 0x00 (MSB),在 PMS171B 要为 0 mov hb@RAMIndex, a ; // 将指针存到 RAM (MSB) … mov a, 0Xa5 ; idxm RAMIndex, a ; // 将累加器数据读取并载入地址为 0x5B 的 RAM ------------------------------------------------------------------------------------------------------------------------ ©Copyright 2018, PADAUK Technology Co. Ltd Page 69 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC xch M 累加器与 RAM 之间交换数据。 例如: xch MEM ; 结果: MEM ← a , a ← MEM 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 将累加器和算术逻辑状态寄存器的数据存到堆栈指针指定的堆栈存储器。 例如: pushaf; 结果: [sp] ← {flag, ACC}; sp ← sp + 2 ; 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------.romadr 0x10 ; // 中断服务程序入口地址 pushaf ; // 将累加器和算术逻辑状态寄存器的资料存到堆栈存储器 … // 中断服务程序 … // 中断服务程序 popaf ; // 将堆栈存储器的资料回存到累加器和算术逻辑状态寄存器 reti ; -----------------------------------------------------------------------------------------------------------------------将堆栈指针指定的堆栈存储器的数据回传到累加器和算术逻辑状态寄存器。 例如: popaf; 结果: sp ← sp - 2 ; {Flag, ACC} ← [sp] ; 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 pushaf popaf 7.2. 算数运算类指令 add a, I add a, M add M, a addc a, M addc M, a 将立即数据与累加器相加,然后把结果放入累加器。 例如: add a, 0x0f ; 结果: a ← a + 0fh 『受影响』, C: 『受影响』 , AC:『受影响』, 受影响的标志位: Z: 将 RAM 与累加器相加,然后把结果放入累加器。 例如: add a, MEM ; 结果: a ← a + MEM 『受影响』, C: 『受影响』 , AC:『受影响』, 受影响的标志位: Z: 将 RAM 与累加器相加,然后把结果放入 RAM。 例如: add MEM, a; 结果: MEM ← a + MEM 『受影响』, C: 『受影响』 , AC:『受影响』, 受影响的标志位: Z: 将 RAM、累加器以及进位相加,然后把结果放入累加器。 例如: addc a, MEM ; 结果: a ← a + MEM + C 『受影响』, C: 『受影响』 , AC:『受影响』, 受影响的标志位: Z: 将 RAM、累加器以及进位相加,然后把结果放入 RAM。 例如: addc MEM, a ; 结果: MEM ← a + MEM + C 『受影响』, C: 『受影响』 , AC:『受影响』, 受影响的标志位: Z: ©Copyright 2018, PADAUK Technology Co. Ltd Page 70 of 85 OV:『受影响』 OV:『受影响』 OV:『受影响』 OV:『受影响』 OV:『受影响』 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC addc a addc M sub a, I sub a, M sub M, a subc a, M subc M, a subc a subc M inc dec clear M M M 将累加器与进位相加,然后把结果放入累加器。 例如: addc a; 结果: a ← a + C 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: 将 RAM 与进位相加,然后把结果放入 RAM。 例如: addc MEM ; 结果: MEM ← MEM + C 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: 累加器减立即数据,然后把结果放入累加器。 例如: sub a, 0x0f; 结果: a ← a - 0fh ( a + [2’s complement of 0fh] ) 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: 累加器减 RAM,然后把结果放入累加器。 例如: sub a, MEM ; 结果: a ← a - MEM ( a + [2’s complement of M] ) 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: RAM 减累加器,然后把结果放入 RAM。 例如: sub MEM, a; 结果: MEM ← MEM - a ( MEM + [2’s complement of a] ) 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: 累加器减 RAM,再减进位,然后把结果放入累加器。 例如: subc a, MEM; 结果: a ← a – MEM - C 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: RAM 减累加器,再减进位,然后把结果放入 RAM。 例如: subc MEM, a ; 结果: MEM ← MEM – a - C 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: 累加器减进位,然后把结果放入累加器。 例如: subc a; 结果: a ← a - C 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: RAM 减进位,然后把结果放入 RAM。 例如: subc MEM; 结果: MEM ← MEM - C 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: RAM 加 1。 例如: inc MEM ; 结果: MEM ← MEM + 1 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: RAM 减 1。 例如: dec MEM; 结果: MEM ← MEM - 1 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 受影响的标志位: Z: 清除 RAM 为 0。 例如: clear MEM ; 结果: MEM ← 0 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: ©Copyright 2018, PADAUK Technology Co. Ltd Page 71 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7.3. 移位运算类指令 sr a 累加器的位右移,位 7 移入值为 0。 例如: sr a; 结果: a (0,b7,b6,b5,b4,b3,b2,b1) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 src a 累加器的位右移,位 7 移入进位标志位。 例如: src a; 结果: a (c,b7,b6,b5,b4,b3,b2,b1) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 sr M RAM 的位右移,位 7 移入值为 0。 例如: sr MEM ; 结果: MEM(0,b7,b6,b5,b4,b3,b2,b1) ← MEM(b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 src M RAM 的位右移,位 7 移入进位标志位。 例如: src MEM ; 结果: MEM(c,b7,b6,b5,b4,b3,b2,b1) ← MEM (b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 sl a 累加器的位左移,位 0 移入值为 0。 例如: sl a; 结果: a (b6,b5,b4,b3,b2,b1,b0,0) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a (b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 slc a 累加器的位左移,位 0 移入进位标志位。 例如: slc a; 结果: a (b6,b5,b4,b3,b2,b1,b0,c) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a(b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 sl M RAM 的位左移,位 0 移入值为 0。 例如: sl MEM ; 结果: MEM (b6,b5,b4,b3,b2,b1,b0,0) ← MEM (b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM(b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 slc M RAM 的位左移,位 0 移入进位标志位。 例如: slc MEM ; 结果: MEM (b6,b5,b4,b3,b2,b1,b0,C) ← MEM (b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM (b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 swap a 累加器的高 4 位与低 4 位互换。 例如: swap a; 结果: a (b3,b2,b1,b0,b7,b6,b5,b4) ← a (b7,b6,b5,b4,b3,b2,b1,b0) 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 ©Copyright 2018, PADAUK Technology Co. Ltd Page 72 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7.4. 逻辑运算类指令 and a, I 累加器和立即数据执行逻辑 AND,然后把结果保存到累加器。 例如:and a, 0x0f ; 结果:a ← a & 0fh 受影响的标志位: Z: 『受影响』, and a, M and C: 『不变』 , C: 『不变』 , C: 『不变』 , AC: 『不变』 , OV:『不变』 C: 『不变』, AC:『不变』 , OV:『不变』 累加器和 RAM 执行逻辑 XOR,然后把结果保存到累加器。 例如: xor a, MEM ; 结果: a ← a ^ RAM10 受影响的标志位: Z: 『受影响』, M, a OV:『不变』 //PA 是端口 A 的数据寄存器 受影响的标志位: Z: 『不变』 , xor AC: 『不变』 , pa,a ; 结果: pa ← a ^ pa a, M C: 『不变』 , 累加器和 IO 数据执行逻辑 XOR,然后把结果保存到 IO 存器。 例如: xor xor OV:『不变』 a, 0x0f ; 结果: a ← a ^ 0fh 受影响的标志位: Z: 『受影响』, IO, a AC: 『不变』 , 累加器和立即数据执行逻辑 XOR,然后把结果保存到累加器。 例如: xor xor OV:『不变』 MEM, a ; 结果: MEM ← a | MEM 受影响的标志位: Z: 『受影响』, a, I AC: 『不变』 , 累加器和 RAM 执行逻辑 OR,然后把结果保存到 RAM。 例如: or xor C: 『不变』 , a, MEM ; 结果:a ← a | MEM 受影响的标志位: Z: 『受影响』, M, a OV:『不变』 累加器和 RAM 执行逻辑 OR,然后把结果保存到累加器。 例如:or or AC: 『不变』 , a, 0x0f ; 结果: a ← a | 0fh 受影响的标志位: Z: 『受影响』, a, M OV:『不变』 累加器和立即数据执行逻辑 OR,然后把结果保存到累加器。 例如: or or AC: 『不变』 , MEM, a ; 结果: MEM ← a & MEM 受影响的标志位: Z: 『受影响』, a, I C: 『不变』 , 累加器和 RAM 执行逻辑 AND,然后把结果保存到 RAM。 例如: or OV:『不变』 a, RAM10 ; 结果:a ← a & RAM10 受影响的标志位: Z: 『受影响』, M, a AC: 『不变』 , 累加器和 RAM 执行逻辑 AND,然后把结果保存到累加器。 例如:and and C: 『不变』 , C: 『不变』 , AC: 『不变』 , OV:『不变』 累加器和 RAM 执行逻辑 XOR,然后把结果保存到 RAM。 例如: xor MEM, a ; 结果: MEM ← a ^ MEM 受影响的标志位: Z: 『受影响』, ©Copyright 2018, PADAUK Technology Co. Ltd C: 『不变』 , Page 73 of 85 AC: 『不变』 , OV:『不变』 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC not a 累加器执行 1 补码运算,结果放在累加器。 例如: not a; 结果: a ← 〜a 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; // ACC=0X38 not a; // ACC=0XC7 -----------------------------------------------------------------------------------------------------------------------not M RAM 执行 1 补码运算,结果放在 RAM。 例如: not 结果: MEM ← 〜MEM MEM ; 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; mov mem, a ; // mem = 0x38 not mem ; // mem = 0xC7 -----------------------------------------------------------------------------------------------------------------------neg a 累加器执行 2 补码运算,结果放在累加器。 例如: neg a; 结果: a ←a 的 2 补码 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; // ACC=0X38 neg a; // ACC=0XC8 -----------------------------------------------------------------------------------------------------------------------neg M RAM 执行 2 补码运算,结果放在 RAM。 例如: neg MEM; 结果: MEM ← MEM 的 2 补码 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: ----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; mov mem, a ; // mem = 0x38 not mem ; // mem = 0xC8 ------------------------------------------------------------------------------------------------------------------------ ©Copyright 2018, PADAUK Technology Co. Ltd Page 74 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7.5. 位运算类指令 set0 IO.n IO 口的位 N 拉低电位。 例如: set0 pa.5 ; 结果: PA5=0 受影响的标志位: Z: 『不变』 , set1 IO.n C: 『不变』, AC:『不变』 , OV:『不变』 C: 『不变』, AC:『不变』 , OV:『不变』 IO 口的位 N 拉高电位。 例如:set1 pb.5 ; 结果: PB5=1 受影响的标志位: Z: 『不变』 , IO 口的位 N 与 C 位互换。 swapc IO.n 例如: swapc 结果: C ← IO.0 , IO.0 ← C IO.0; 当 IO.0 是输出端口,进位 C 数值给 IO.0; 当 IO.0 是输入端口,IO.0 数值给进位 C; 受影响的标志位: 『不变』Z 『受影响』C 『不变』AC 『不变』OV 应用范例 1(连续输出) : ... set1 pac.0 ; // 设置 PA.0 作为输出 flag.1 ; // C=0 ... set0 swapc set1 swapc pa.0 ; flag.1 ; pa.0 ; // 送 C 给 PA.0(位操作) ,PA.0=0 // C=1 // 送 C 给 PA.0(位操作) ,PA.0=1 ... 应用范例 2(连续输入) : ... set0 pac.0 ; // 设置 PA.0 作为输入 pa.0 ; // 读 PA.0 的值给 C(位操作) ... swapc src a; // 把 C 移位给 ACC 的位 7 swapc pa.0 ; // 读 PA.0 的值给 C(位操作) src a; // 把新进 C 移位给 ACC 的位 7,上一个 PA.0 的值给 ACC 的位 6 ... -----------------------------------------------------------------------------------------------------------------------set0 M.n RAM 的位 N 设为 0。 例如:set0 MEM.5 ; 结果: MEM 位 5 为 0 受影响的标志位: Z: 『不变』 , set1 M.n C: 『不变』, AC:『不变』 , OV:『不变』 C: 『不变』, AC:『不变』 , OV:『不变』 RAM 的位 N 设为 1。 例如: set1 MEM.5 ; 结果: MEM 位 5 为 1 受影响的标志位: Z: 『不变』 , ©Copyright 2018, PADAUK Technology Co. Ltd Page 75 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 7.6. 条件运算类指令 ceqsn a, I 比较累加器与立即数据,如果是相同的,即跳过下一指令。标志位的改变与 (a ← a - I)相同。 例如: ceqsn a, 0x55 ; inc MEM ; goto error ; 结果: 假如 a=0x55, then “goto error”; 否则, “inc MEM”. 受影响的标志位: Z: 『受影响』, ceqsn a, M C: 『受影响』 , AC:『受影响』, OV:『受影响』 比较累加器与 RAM,如果是相同的,即跳过下一指令。标志位改变与 (a ← a - M)相同。 例如:ceqsn a, MEM; 结果: 假如 a=MEM,跳过下一个指令 受影响的标志位: Z: 『受影响』, cneqsn a, M C: 『受影响』 , a, I 例如: cneqsn 结果: 如果 a≠MEM, 跳到下一条指令 a, MEM; C: 『受影响』 , cneqsn a,0x55 ; inc MEM ; goto 结果: OV:『受影响』 error ; 如果 a≠0x55, 然后 “goto error”; 否则, “inc MEM”. 受影响的标志位: Z: 『受影响』, IO.n AC:『受影响』, 比较累加器和立即数的值,如果不相等就跳到下一条指令。标志改变与(a ← a - I) 。 例如: t0sn OV:『受影响』 比较累加器和 RAM 的值,如果不相等就跳到下一条指令。 标志改变与(a ← a - M)相同。 受影响的标志位: Z: 『受影响』, cneqsn AC:『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 如果 IO 的指定位是 0,跳过下一个指令。 例如:t0sn pa.5; 结果: 如果 PA5 是 0,跳过下一个指令。 受影响的标志位: Z: 『不变』 , t1sn IO.n C: 『不变』, AC:『不变』 , OV:『不变』 AC:『不变』 , OV:『不变』 如果 IO 的指定位是 1,跳过下一个指令。 例如:t1sn pa.5 ; 结果:如果 PA5 是 1,跳过下一个指令。 『不变』 , 受影响的标志位: Z: t0sn M.n C: 『不变』, 如果 RAM 的指定位是 0,跳过下一个指令。 例如: t0sn MEM.5 ; 结果: 如果 MEM 的位 5 是 0,跳过下一个指令。 『不变』 , 受影响的标志位: Z: t1sn M.n C: 『不变』, AC:『不变』 , OV:『不变』 如果 RAM 的指定位是 1,跳过下一个指令。 例如: t1sn MEM.5 ; 结果: 如果 MEM 的位 5 是 1,跳过下一个指令。 『不变』 , 受影响的标志位: Z: izsn a C: 『不变』, AC:『不变』 , OV:『不变』 累加器加 1,若累加器新值是 0,跳过下一个指令。 例如: izsn a; 结果: a a + 1,若 a=0,跳过下一个指令。 ← 『受影响』, 受影响的标志位: Z: ©Copyright 2018, PADAUK Technology Co. Ltd C: 『受影响』 , Page 76 of 85 AC:『受影响』, OV:『受影响』 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC dzsn a 累加器减 1,若累加器新值是 0,跳过下一个指令。 例如: dzsn 结果: a ← a; a – 1,若 a=0,跳过下一个指令。 受影响的标志位: Z: 『受影响』, izsn M M AC:『受影响』, OV:『受影响』 RAM 加 1,若 RAM 新值是 0,跳过下一个指令。 例如: izsn 结果: MEM MEM; ← MEM + 1,若 MEM=0,跳过下一个指令。 受影响的标志位: Z: 『受影响』, dzsn C: 『受影响』 , C: 『受影响』 , AC:『受影响』, OV:『受影响』 RAM 减 1,若 RAM 新值是 0,跳过下一个指令。 例如: dzsn 结果: MEM MEM; ← MEM - 1,若 MEM=0,跳过下一个指令。 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 7.7. 系统控制类指令 call label goto label ret ret reti nop I 函数调用,地址可以是全部空间的任一地址。 例如: call function1; 结果: [sp] ← pc + 1 pc ← function1 sp ← sp + 2 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: 转到指定的地址,地址可以是全部空间的任一地址。 例如: goto error; 结果: 跳到 error 并继续执行程序 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: 将立即数据复制到累加器,然后返回。 例如: ret 0x55; 结果: A ← 55h ret ; 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: 从函数调用中返回原程序。 例如: ret; 结果: sp ← sp - 2 pc ← [sp] 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: 从中断服务程序返回到原程序。在这指令执行之后,全部中断将自动启用。 例如: reti; 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: 没任何动作。 例如: nop; 结果: 没任何改变 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 受影响的标志位: Z: ©Copyright 2018, PADAUK Technology Co. Ltd Page 77 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC pcadd engint a 目前的程序计数器加累加器是下一个程序计数器。 例如: pcadd a; 结果: pc ← pc + a 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------… mov a, 0x02 ; pcadd a; // PC 33Ω。  应尽量避免使用 PA5 作为输入。 (6) PA7 和 PA6 作为外部晶体振荡器  PA7 和 PA6 设定为输入。  PA7 和 PA6 内部上拉电阻设为关闭。  用 PADIER 寄存器将 PA6 和 PA7 设为模拟输入。  EOSCR 寄存器位[6:5]选择对应的晶体振荡器频率:  01:低频,例如:32KHz  10:中频,例如:455KHz,1MHz  11:高频,例如:4MHz  设置 EOSCR.7 =1 启用晶体振荡器。  在将系统时钟从 IHRC 或者 ILRC 切换到 EOSC 前,确保 EOSC 已起振。 注意:请务必仔细阅读 PMC-APN013 之内容,并据此合理使用晶体振荡器。如因用户的晶体振荡器的质量不佳、 使用条件不合理、PCB 清洁剂残留漏电、或是 PCB 板布局不合理等等用户原因,造成的慢起振或不起振情况, 我司不对此负责。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 81 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 9.2.2 中断 (1) 使用中断功能的一般步骤如下: 步骤 1:设定 INTEN 寄存器,开启需要的中断的控制位 步骤 2:清除 INTRQ 寄存器 步骤 3:主程序中,使用 ENGINT 指令允许 CPU 的中断功能 步骤 4:等待中断。中断发生后,跳入中断子程序 步骤 5:当中断子程序执行完毕,返回主程序 * 在主程序中,可使用 DISGINT 指令关闭所有中断 * 跳入中断子程序处理时,可使用 PUSHAF 指令来保存 ALU 和 FLAG 寄存器数据,并在 RETI 之前,使用 POPAF 指令复原,步骤如下: void Interrupt (void) // 中断发生后,跳入中断子程序 { // 自动进入 DISGINT 的状态,CPU 不会再接受中断 PUSHAF; … POPAF; // 系统自动填入 RETI, 直到执行 RETI 完毕才自动恢复到 ENGINT 的状态。 } (2) INTEN,INTRQ 没有初始值,所以要使用中断前,一定要根据需要设定数值。 (3) 有两组 IO 口外部中断源,每组由程序选项(code option)中的 Interrupt Src0 和 Interrupt Src1 决定对应的中断 引脚。请根据寄存器 inten / intrq / integs 来选择 IO 引脚。 9.2.3 系统时钟选择 (1) 利用 CLKMD 寄存器可切换系统时钟源。请注意,不可在切换系统时钟源的同时把原时钟源关闭。 例如:从 A 时钟源切换到 B 时钟源时,应该先用 CLKMD 寄存器将系统时钟源切换至 B 时钟,然后再通过 CLKMD 寄存 器关闭 A 时钟振荡源。  例:系统时钟从 ILRC 切换到 IHRC/2 CLKMD = CLKMD.2 =  0x36; 0; // 切到 IHRC,但 ILRC 不要 disable // 此时才可关闭 ILRC 错误的写法:ILRC 切换到 IHRC,同时关闭 ILRC CLKMD = 0x50; // MCU 会死机 (2) 要确认系统时钟从 ILRC 或 IHRC 切换到 EOSC 时,EOSC 已经稳定振荡,因为 MCU 并不会检查这个状态。 所以在启用 EOSC 后请等待一段时间,EOSC 稳定振荡之后才可以将系统时钟切换到 EOSC,否则,MCU 会死机。举个例子,开机后系统时钟从 ILRC 切换到 4MHz EOSC,如下: ©Copyright 2018, PADAUK Technology Co. Ltd Page 82 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC .ADJUST_IC DISABLE // 关闭 WDT,让后面 delay 指令不会超时溢出 CLKMD.1 = 0; $ EOSCR Enable, 4MHz; // 4MHz EOSC 开始振荡 // 延迟 (Delay)一段时间等待 EOSC 稳定 $ T16M EOSC, /1, BIT10 Word Count = 0; Stt16 Count; Intrq.T16 = 0; while(!Intrq.T16) NULL; CLKMD = 0xA4; // ILRC -> EOSC; // 关闭 ILRC,但不一定需要 CLKMD.2 = 0; 延迟(Delay)等待时间需依照晶体震荡器以及板子的特性调整。如使用示波器测量晶体震荡器信号,请把示波 器探头调到 x10 档,并从 PA6(X2)测量,避免影响震荡器。 9.2.4 看门狗 当 ILRC 关闭时,看门狗也会失效。 9.2.5 TIMER 溢出 当设定 $ INTEGS BIT_R 时(这是 IC 默认值),且设定 T16M 计数器 BIT8 产生中断,若 T16 计数从 0 开 始 ,则第一次中断是在计数到 0x100 时发生(BIT8 从 0 到 1),第二次中断在计数到 0x300 时发生(BIT8 从 0 到 1)。所以设定 BIT8 是计数 512 次才中断。请注意,如果在中断中重新给 T16M 计数器设值,则下一次中断也 将在 BIT8 从 0 变 1 时发生。 如果设定 $ INTEGS BIT_F(BIT 从 1 到 0 触发)而且设定 T16M 计数器 BIT8 产生中断,则 T16 计数改 为每次数到 0x200/0x400/0x600/…时发生中断。两种设定 INTEGS 的方法各有好处,也请注意其中差异。 9.2.6 IHRC (1) IHRC 的校正操作是于使用 writer 烧录时进行的。 (2) 因为 IC 的塑封材料(不论是封装用的或 COB 用的黑胶)的特牲,是会对 IHRC 的频率有一定影响。所以如 果用户是在 IC 盖上塑封材料前,就对 IC 进行烧录,及后再封上盖上塑封材料的,则可能造成 IHRC 的特性 偏移超出规格的情况。正常情况是频率会变慢一些。 (3) 此种情况通常发生在用户是使用 COB 封装,或者是委托我司进行晶圆代烧 (QTP)时。此情况下我司将不对 频率的超出规格的情况负责。 (4) 用户可按自身经验进行一些补偿性调整,例如把 IHRC 的目标频率调高 0.5%-1%左右,令封装后 IC 的 IHRC 频率更接近目标值。 9.2.7 LVR 可以设定寄存器 MISC.2 为 1 将 LVR 关闭,但此时应确保 VDD 在 IC 的最低工作电压以上,否则 IC 可能工 作不正常。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 83 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 9.2.8 PMS171B 的烧录方法 烧录引脚为:PA3,PA4,PA5,PA6,VDD,GND。 如用 PDK3S-P-002 烧录器,请把背后 Jumper 插在 CN39 的位置,同时:16 PIN 封装的 IC,请放在正面 IC 座的顶格;10 PIN 封装的 IC(如 MSOP10) ,请放在正面 IC 座的顶格下移三行;8 PIN 封装的 IC,请放在 正面 IC 座的顶格下移 4 行。其他封装客户自己根据情况处理,所有 Jumper 位的左边都是一样的脚位排列,从 ,PA3,PA4,PA5,PA6,PA7(不需要用到),GND。 上到下为 VDD,PA0(不需要用到) 如果用 PDK5S-P-003 或者更高型号烧录器,请参考烧录软件的提示选择 Jumper 跳法。  合封(MCP)或在板烧录(On-Board Writing)时的有关电压和电流的注意事项 (1) PA5 (VPP)可能高于 11V。 (2) VDD 可能高于 6.5V,而最大供给电流最高可达约 20mA。 (3) 其他烧录引脚(GND 除外)的电位与 VDD 相同。 请用户自行确认在使用本产品于合封或在板烧录时,周边电路及元件不会被上述电压破坏,也不会限制上述电 压。 ©Copyright 2018, PADAUK Technology Co. Ltd Page 84 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018 PMS171B 8 位 OTP 型单片机带 8 位 ADC 9.3 使用 ICE (1) 请使用 PDK5S-I-S01/2(B)仿真器。仿真时请注意以下几点:  PDK5S-I-S01/2(B)不支持 PMS171B 的系统时钟为 ILRC/16 的仿真  PDK5S-I-S01/2(B)不支持 PMS171B 的 TM2C.PB0 功能  PDK5S-I-S01/2(B)不支持程序选项:GPC_PWM,TMx_source,TMx_bit,TM2_Out1  PDK5S-I-S01/2(B)不支持 PBPL(PB 下拉)  比较器唤醒功能无效。在比较器使能时,可能唤醒,否则不能唤醒  在 ADCRGC 里选择使用 PB1 时,PA1 必须设置成 float  当 GPCC 输出时,PA3 会受到影响  仿真时的快速唤醒时间和 IC 不一样。仿真器:128 个系统时钟,IC:45 ILRC 时钟  看门狗溢出时间仿真器和 IC 不一样,如下: 看门狗溢出设置 PDK5S-I-S01/2(B) PMS171B misc[1:0]=00 2048 * TILRC 8192 * TILRC misc[1:0]=01 4096 * TILRC 16384 * TILRC misc[1:0]=10 16384 * TILRC 65536 * TILRC misc[1:0]=11 256 * TILRC 262144 * TILRC ©Copyright 2018, PADAUK Technology Co. Ltd Page 85 of 85 PDK-DS-PMS171B_CN_V100 – Nov. 7, 2018
PMS171B 价格&库存

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

免费人工找货