tag 标签: stm8

相关帖子
相关博文
  • 热度 20
    2016-2-10 20:33
    2595 次阅读|
    0 个评论
    STM8L152介绍 8位超低功耗单片机,高达64 + 2字节数据的闪存EE PROM,EEPROM (Electrically Erasable Programmable Read-Only Memory), 实时时钟,液晶显示器,定时器,USART,C,SPI,模数转换器,数模转换器,比较器 特点: 操作条件:工作电源:1.65v~ 3.6v    温度范围:40 to 85, 105 or 125 低功耗的特点:5个低功耗模式:等,低功率运行 (5.9¦Ì一),低功耗等(3¦Ì一),active-halt 全实时时钟(1.4¦Ì一),停止(400) 动态功率消耗:200UA/兆赫+ 330UA,快速唤醒从停止模式(4.7us) 超低漏  I/ O:50nA 先进的stm8核心: 哈佛结构和三级流水线 最大频率:16条16mhz,相关峰 最多40个外部中断源 复位和供应管理: 低功率,超安全欠压复位5可编程阈值 超低功率POR /PDR(通电复位/Protection(保护)、Detection(检测)、Response(响应)) 可编程电压检测器(Programmable voltage detector (PVD)) 时钟管理 32kHz和1-16MHz晶体振荡器 工厂校准的内部16MHz RC和 38kHz的低功耗RC 时钟安全系统 低功耗RTC BCD日历,闹钟中断, 数字校准+ / - 0.5ppm的准确度 先进的防篡改检测 DMA 4个通道。 ADC,DAC的,SPIS,我 2C,USART接口,定时器,1路。存储器到存储器的 LCD:8x40或4x44瓦特/升压转换器 12位ADC1 Msps/28渠道 温度。传感器和内部参考。电压 记忆 高达64 KB的快闪记忆体高达2KB的数据EEPROM,ECC和RWW 灵活的读/写保护模式 高达4 KB的RAM 2x12位DAC(双模式)与输出缓冲器 2个超低功耗比较器 1个固定阈值和1个轨到轨 唤醒功能 定时器 3个16位定时器,2个通道(IC,OC,PWM),正交编码器 一个16位高级控制定时器,3个信道,支持电机控制 1个7位预分频器的8位定时器 1个窗口和1个独立的看门狗 蜂鸣器定时器1,2或4kHz的频率 通讯接口 两个同步串行接口(SPI) 快速I2C 400千赫SMBus和PMBus 三个USART(ISO7816接口+红外线) 最多67个I /o中断向量,所有可映射 多达16个电容检测通道,免费固件 快速片上编程和非侵入性调试与游泳,Bootloader的使用USART 独特的96位ID   描述: stm8l超低功耗的8位家庭福利 设备概述 超低功率连续 简介: 本文描述的特点,因此,机械数据和订购信息: 高密度stm8l15xxx装置: stm8l151x8和stm8l152x8微控制器 与闪速存储器密度64字节。 介质密度stm8l15xxx装置 :stm8l151r6和stm8l152r6 微控制器的快闪存储器密度32字节。 进一步的细节上的stmicroelectroni 政务司司长低家庭请参阅 section2.3:超低功率连续页1 2。 详细信息设备的操作和寄存器,参考参考手册 (rm0031)。 信息的闪存程序存储器和数据存储器,指 编程手册(pm0054)。 信息的调试模块和游泳(单线接口模块),指 stm8游泳和通信协议调试模块用户手册(um0470)。 信息的stm8核心,指stm8处理器编程手册(pm0044)。     2、描述 高密度、中密度stm8l15xx超低功耗器件的功能增强stm8处理器核心提供更多的处理能力(高达16mips在16mhz)同时保持优势的一种架构,提高代码密度,一个24线性寻址空间和低功率操作的优化结构。 家庭成员包括一个集成的调试模块的硬件接口(游)允许非侵入性的应用调试和超快闪存编程。 所有的高密度和介质密度特征stm8l15xx微控制器嵌入式数据EE PROM和低功耗低电压电源快闪存储器。 该设备包括一个范围广泛的增强我/操作系统及周边设备,一个12位模数转换器,数模转换器,比较器,一个实时时钟,四个16位定时器,一个8位定时器,以及标准的通信接口等二语,一个接口,和三个USART。一个8x 40或4x44-segment液晶可在stm8l152x8装置。模块化设计的周边设置允许相同的外围设备中可以找到不同的圣家庭包括32位微控制器的家庭。这使得任何过渡到一个不同的家庭很容易,和简化,更通过使用一个共同的一套开发工具。 2.1 stm8l低8位家庭福利 高密度、中密度stm8l15xx设备的一部分,stm8l超低的家庭提供下列好处: 集成系统: 1. 高达64 KB的高密度嵌入式快闪程序存储器 2. 高达2kbytes数据存储器 3. 高达4Kbytes的随机存储器 4. 内部高速低功耗低速度区。 5. 嵌入式复位 超低功率消耗 1ua在主动停止模式 2. 时钟门控系统和优化电源管理 3  有能力执行从内存低功率等模式和低功率运行模式 先进的功能 1    高达16mips在16mhz处理器时钟频率 2   直接内存访问(存取)的内存到内存或外存储器到内存的访问。 开发周期短 1  应用程序在一个普通的家庭产品架构兼容的引脚,内存映射和模块化设备。 2  广泛的开发工具选择 stm8l超低功耗微控制器的操作也可以从1.8到3.6v(1.65v以下断电)或从1.65v到3.6v。他们可在-40 到+ 85和-40到+ 125℃温度范围。 这些特点使stm8l超低功耗单片机的家庭适用范围宽: 1 医疗和手持设备 2. 应用控制和用户界面 3. 电脑周边产品,游戏,全球定位系统和运动设备 4. 报警系统,有线和无线传感器 5. 计量 该装置是在四个不同的包装从48针到80针。套不同的外设包括不同的装置。指section3for概述完整的外设提出在这个家庭。 所有stm8l超低的产品是基于同样架构以内存映射和一个连贯的引脚。 图1 显示框图的高密度、中密度stm8l15xx家庭的。                   设备概述 1 超低功率连续 超低功率stm8l151xx和stm8l152xx完全引脚到引脚,软件和功能。除了完全兼容家庭内的设备部分,意法半导体微控制器超低功耗策略,其中也包括stm8l101xx和stm32l15xxx。该stm8l和stm32l家庭允许一个连续的业绩,外设,系统结构,功能。 它们都是以0.13米超低泄漏过程µ意法半导体。 这是stm8l151xx和stm8l152xx引脚到引脚兼容stm8l101xx装置。 家庭的stm32l引脚到引脚兼容通用了家庭。请参考stm32l15xx文件的更多信息,这些设备。 2  性能 所有的家庭将高节能的核心与哈佛结构和流水线执行:先进的stm8核心stm8l家庭和手臂皮质™- 3核心stm32l家庭。此外,具体的护理的设计架构已经采取优化硕士/能力高达和马/兆赫比率。 这使得超低功耗性能范围从5到33.3的能力高达。 3 共享外设 stm8l151xx / 152xx和stm32l15xx共享相同的外围设备,确保一个很容易从一个家庭到另一个: 模拟外设:ADC 1,dac1 / dac2,和比较器comp1 / Comp 2 数码外设:实时时钟和一些通信接口 常见的系统策略 提供灵活性和性能的优化,stm8l15xx和stm32l15xx装置使用一个共同的架构: 同一供电范围从1.65到3.6五stm8l101xx和中密度stm8l15xx,电力供应必须高于1.8伏电源,并低于1.65伏电源。 结构优化,达到超低消费在低功率模式 运行模式:快速启动的策略从低功耗模式 灵活的系统时钟 超安全复位:相同的复位策略为stm8l15xx和stm32l15xx包括上电复位,掉电复位,欠压复位和电压检测器。 特点 STutralow功率连续也在于特征相容: ●超过10封装引脚数从20到100针,尺寸为3×3毫米 ●存储密度范围从4到128字节 低功率模式 高密度、中密度stm8l15xxdevices支持五个低功耗模式达到最佳的折衷低功率消耗,启动时间短,可唤醒源: ●等待模式:处理器时钟停止,但选定的外围设备继续运行。内部或外部中断或复位可用于出口微控制器从等待模式(妻子或注射用水模式)。 ●低功率运行模式:中央处理器和选定的外围设备运行。执行完成从内存和低速度振荡器(大规模集成电路或伦敦)。快闪存储器和数据存储器是停止和电压调节器被配置在超低功率模式。微控制器进入低功率运行模式的软件,可以退出此模式的软件或通过一个复位。 所有中断必须蒙面。它们不能被用来出口的微控制器从该模式。 ●低功耗等模式:这种模式时输入执行等待事件,在低功耗运行模式。这是类似的低功率运行模式,时钟停止。唤醒这种模式是触发复位或由内部或外部事件(周边事件所产生的定时器,串行接口,控制器(dma1),比较器和输入/输出端口)。当唤醒事件触发,系统返回到低功率运行模式。 所有中断必须蒙面。它们不能被用来出口的微控制器从该模式。 ●active-halt模式:中央处理器和外设时钟停止,除了时钟。唤醒可以触发时钟中断,外部中断或重置。 ●暂停模式:中央处理器和外设时钟停止,该装置保持动力。 唤醒触发一个外部中断或重置。一些周边也唤醒从停止能力。开关的内部参考电压降低功率消耗。通过软件配置也有可能唤醒了设备无需等待内部参考电压的唤醒时间有一个快速唤醒时间为5µs。 中央处理单元stm8 先进的stm8核心 8位stm8核心是专为编码效率和性能与哈佛结构和三级流水线。 它包含6个内部寄存器直接寻址在每次执行方面,20种寻址方式包括索引间接和相对寻址,和80指令。 建筑和寄存器 ●哈佛结构 ●三级流水线 ●32位的程序存储器取指令总线周期最 ●与16位元索引寄存器-使索引寻址模式或无偏移和读修改写数据操作 ●8位累加器 ●24位程序计数器16字节的线性内存空间 ●16位堆栈指针访问一个64字节的堆栈 ●8位条件码寄存器- 7条件的标志为结果的最后指令 寻址 ●20寻址模式 ●索引间接寻址模式查找表的地址空间中的任何位置 ●堆栈指针相对寻址模式的局部变量和参数传递 指令集 ●指令字节的平均大小80 ●标准数据和逻辑运算功能 ●8位8位的乘法 ●16位的8位和16位16位分部 ●位操作 ●之间传输数据的栈和蓄电池(推/流行)直接栈存取 ●数据传输使用与注册或直接内存到内存的传输 中断控制器 高密度、中密度stm8l15xxdevices特征嵌套中断向量控制器: ●嵌套中断优先级别3软件 ●32个中断向量与硬件优先级 ●多达40个外部中断源于11个向量 ●陷阱和复位中断 复位和供应管理 3供电方案 该设备需要一个1.65伏至3.6伏工作电压(电源)。外部电源引脚必须连接如下: ●vss1,vdd1,vss2,电路,vss3,vdd3,vss4,vdd4 = 1.65至3.6伏:外部电源供应我/操作系统和内部稳压器。通过提供外部电源引脚,相应的接地引脚号。vss1 / vss2 / vss3 / vss4和vdd1 /电路/ vdd3 / vdd4不能悬空。 ●vssa,vdda = 1.65至3.6伏:外部电源供应器模拟外设(最低电压被应用到vdda是1.8伏时ADC 1用)。vdda和vssa必须连接到电源及技术,分别。 ●基准参考电压(+,-为ADC 1):外部参考电压的ADC 1。必须通过提供外部参考电压+和-针。 ●基准+(为dac1 / 2):外部的参考电压dac1和dac2必须通过外部提供的参考电压+。 电力供应主管 该器件集成了一个zeropower上电复位(葡萄牙)/断电复位(**共和国)。该设备的销售类型没有“丁”选项(见11节:订购信息方案),它是加上欠压复位(博尔)电路。它的情况下装置运行在1.8和3.6伏,博尔始终是积极的,以确保适当的操作开始从1.8五后,1.8波达到阈值,选择字节加载过程的开始,可以确认或修改默认阈值,或永久禁用博尔(在这种情况下,最小值在断电的电源是1.65伏)。 五波阈值可通过选择字节,从1.8至3降低功耗在暂停模式,它可以自动关闭的内部参考电压(和因此,博尔)在暂停模式。该设备仍然在复位状态,当电压低于指定的阈值,vpor /共和国或vbor,不需要任何外部复位电路。 注意:设备销售类型的“丁”选项(见11节:订购信息方案)博尔是永久性残疾和设备运行1.65至3.6五,在这种情况下是不可能使博尔通过选择字节。 该设备具有一个嵌入式可编程电压检测器(物理气相沉积)监测工作/ vdda供电和比较它的vpvd阈值。该法提供了7种不同的水平之间的1.85伏和3.05伏,选择的软件,一步步的约为200。一个可以产生中断,当电压/ vdda低于vpvd阈值和/或音频/ vdda高于vpvd阈值。中断服务程序,可以生成一个警告信息和/或单片机控制到安全状态。物理气相沉积是启用的软件。 电压调节器 高密度、中密度stm8l15xxdevices嵌入一个内部电压调节器产生1.8伏电源为核心,外围设备。 这种调节方式: ●调压主模式(术)的运行,等待中断(注射用水)等事件 (妻子)模式。 ●低电源电压调节器模式(lpvr)停机,active-halt,低功率运行和低功耗等模式。 当进入停止或active-halt模式,系统会自动切换的二尖瓣置换术 到lpvr以减少电流消耗。 时钟管理 时钟控制器分发的系统时钟(系统时钟)来自不同的振荡器的核心和外围设备。它还管理时钟门控时钟低功耗模式,确保鲁棒性。 特点 ●时钟分频器:得到最好的折衷的速度和电流消耗的时钟频率的处理器和外设可以通过调整可编程分频器 ●安全时钟切换:时钟源是可以改变的,安全的飞行运行方式通过配置寄存器。 ●时钟管理:降低功耗,时钟控制器可以停止时钟为核心,外围设备或个人的记忆。 ●系统时钟源:4个不同的时钟源,可以用于驱动系统时钟: –16高速外部晶体(安全) –16兆赫的高速度的内部振荡器(恒指) –32.768低速外部晶体(伦敦) –38千赫的低转速的内部(大规模集成电路) ●实时时钟和液晶显示时钟源:上述四个来源可以选择时钟的时钟 和液晶显示,无论系统时钟。 ●启动时钟:复位后,微控制器启动默认的内部 2兆赫的时钟(恒指/ 8)。分频器和时钟源可以改变的应用程序一旦开始执行的代码。 ●时钟安全系统(上):此功能可以启用的软件。如果一个安全时钟故障发生时,系统自动切换到时钟。 ●配置的主时钟输出(酶):这个输出外部时钟由应用程序使用。 低功耗实时时钟 实时时钟(时钟)是一个独立的二进制编码的十进制(十进制)的定时器/计数器。六字节的位置包含秒,分钟,小时(12 / 24小时)一天,周,日,月, 年,在二进制编码的十进制(十进制)格式。修正为28(闰年),29,30,和31天的月份是自动进行。这一秒的领域也可以读取二进制格式。 日历可以纠正从1至32767时钟的时钟脉冲。这可以使同步到主时钟。 实时时钟提供了一个数字校准,精确度为+ / -0.5ppm。 它提供了一个可编程报警和可编程周期中断唤醒从 中断能力。 ●定期唤醒时间使用32.768千赫脉冲的最低分辨率(61µ县)是从至少122µ的最大3.9号与不同的分辨率,唤醒时间可达到 36小时 ●周期警报器日历上也可以产生脉冲期间的每一年 时钟安全系统检测到一个失败的伦敦,并可以提供一个中断唤醒能力。实时时钟的时钟可以自动切换到在伦敦失败案例。 这个机构还提供了3个防篡改检测引脚。这种检测嵌入可编程滤波器可以唤醒单片机。 液晶显示器(液晶显示器)LCD (Liquid crystal display) 液晶是仅适用于stm8l152xx装置。 液晶显示驱动器的8共同端和40段终端驱动320像素。它也可以被配置为驱动4个常见的44部分(176像素)。 ●内部升压转换器保证控制电压对比。 ●静态1 / 2,1 / 3,1 / 4,1 / 8支持。 ●静态1 / 2,1 / 3,1 / 4偏见的支持。 ●相反转降低功耗和电磁干扰。 ●高达8像素,可编程瞬。 ●液晶控制器可以在暂停模式。 注意:不必要的部分和共同引脚可以作为通用输入/输出引脚。 存储器 高密度、中密度stm8l15xxdevices有以下主要特点: ●多达4个字节的内存 ●非易失性存储器分成三个数组: –多达64个字节中密度嵌入式快闪程序存储器 –多达2个字节的数据存储器 –选择字节。 EE PROM嵌入纠错代码(密码)特征。它支持read-while写(读写网):可执行代码的程序矩阵而编程/擦除数据矩阵。 选项字节保护部分闪存程序存储器的写入和读出盗版。   直接存储器存取 一个通道直接存储器存取控制器(dma1)提供了一个内存到内存和peripherals-from /内存传输能力。4通道之间共享以下与动态能力:ADC 1,dac1,dac2,i2c1,SPI 1,SPI 2,usart1,usart2,usart3,和5个定时器。   模拟数字转换器 ●12位模数转换器(ADC 1)与28通道(包括4个快速通道),温度传感器和内部参考电压 ●转换的时间降到1µ与fsysclk = 16兆赫 ●分辨率可编程 ●可编程采样时间 ●单一和连续模式的转换 ●扫描能力:自动转换完成对选定的一组模拟输入 ●模拟看门狗:中断产生时,转换电压以外的编程阈值 ●触发定时器 注:可由dma1 ADC 1。   数字模拟转换器 ●12位转换器2缓冲输出(数字信号转换为模拟电压信号输出) ●同步更新的能力,使用定时器 ●直接存储器存取能力为每个通道 ●外部触发转换 ●noise-wave代 ●三角波的产生 ●双音频通道独立或同时转换 ●输入参考电压+更好的分辨率 注:它可以在dma1。 超低功耗比较器 高密度、中密度stm8l15xxdevices两只比较器(comp1和Comp 2)共享相同的偏置电流和电压参考。参考电压可以是内部或外部(从一个输入/输出)。 ●一比较器与固定阈值(comp1)。 ●一比较器轨到轨与快或慢模式(Comp 2)。阈值可以是下列之一: –输出 –外部输入/输出 –内部参考电压或参考电压约数(1 / 4,1 / 2,3 / 4) 该比较器可以一起使用,提供一个窗口的功能。他们可以唤醒从停止模式。   系统配置和路由接口控制器 系统配置控制器提供的能力,一些替代功能映射在不同的输入/输出端口。哮喘和ADC 1通道也可以映射。 高度灵活的路由接口允许应用软件来控制路由不同我/操作系统的tim1定时器输入捕捉。它也控制路由内部模拟信号ADC 1,comp1,dac1 Comp 2,和内部参考电压vrefint。最后,它提供了一个寄存器组的有效管理,设置专门的我/操作系统支持多达16个电容传感通道使用proxsensetm技术。   定时器 高密度、中密度stm8l15xxdevices包含一个先进控制定时器(tim1),三个16位通用定时器(tim2,tim3和tim5)和一个8位基本定时器(哮喘)。 所有的定时器可以由dma1。 表3比较了功能先进的控制,通用和基本定时器。 16位先进控制定时器(tim1) 这是一种高档计时器设计各种控制应用。其互补输出,死区时间控制和居中脉宽调制能力,应用领域扩展到电机控制,照明和半桥驱动器。 ●16位,并向上/向下计数器分频器autoreload 16 ●3独立捕获/比较渠道(游戏)可配置为输入捕获,输出比较,产生(边缘和中心对齐模式)和单脉冲输出模式 ●另外1个捕获/比较通道是连接到一个外部输入/输出 ●同步模块控制定时器,外部信号 ●突破输入迫使输出到一个定义的状态 ●3互补输出可调节死区时间 ●编码器模式 ●中断能力的各种活动(捕获,比较,溢出,打破,触发) 16位通用定时器(tim2,tim3,tim5) ●16位autoreload(受体)向上/向下计数器 ●7位分频器可调固定功率2(128比1……) ●2单独配置捕获/比较通道 ●脉宽调制方式 ●中断能力的各种活动(捕获,比较,溢出,打破,触发) ●同步与其他定时器或外部信号(外部时钟,复位,触发,使) 8位基本定时器(TIM4) 8位定时器由一个8位自动重载计数器上由一个可编程分频器。它可用于时基产生中断产生的定时器溢出或D触发器。 看门狗计时器 看门狗系统是基于2个独立的定时器提供最大的安全应用。 3.14.1窗口看门狗定时器 窗口看门狗(wwdg)是用来检测出现一个软件故障,通常由外部干扰或意想不到的逻辑条件,使应用程序放弃其正常顺序。 能够独立看门狗计时器 独立看门狗外周(独立看门狗)可以用来解决处理器故障由于硬件或软件故障。 它的时钟由内部时钟源和钢筋混凝土,从而保持活跃,甚至在案件一 时钟失败。 蜂鸣器 蜂鸣器功能输出信号的哔哔声销声代。信号在1,2或4千赫。 通信接口 3.16.1精神 串行外围接口(SPI 1和SPI 2)为半/全双工同步串行通信与外部设备。 ●最大速度:8兆位/秒(fsysclk / 2)为主人和** ●全双工同步传输 ●单纯同步传输2线与可能的双向数据线 ●主从操作可选的硬件或软件 ●硬件计算 ●从/主选择输入引脚 注:SPI 1和SPI 2可通过dma1控制器。 I2C I  2C总线接口(i2c1)提供多主的能力,并控制所有我²总线-特定的顺序,协议,仲裁和时间。 ●主人,**主能力 ●标准模式高达100千赫和快速模式高达400千赫。 ●7及10位寻址模式。 ●、2和pmbus支持 ●硬件计算 注:i2c1可通过dma1控制器。 异步串行通信 在异步串行通信接口(usart1,usart2和usart3)允许全双工,异步通信与外部设备需要一个行业标准型异步串行数据格式。它提供了范围很广的波特率。 ●1兆位/秒全双工的脊髓损伤 ●SPI 1仿真 ●精度高波特率发生器 ●智能卡仿真 ●红外接口编码器解码器 ●单线半双工模式 注:usart1,usart2和usart3可通过dma1控制器。 红外线(红外)接口 高密度、中密度stm8l15xxdevices包含一个红外接口,可用于红外遥控功能。2定时器输出比较通道是用来产生红外遥控信号。 开发支持 开发工具 开发工具为stm8微控制器包括: ●的公正性仿真系统提供跟踪代码分析 ●的stvd高级语言调试器包括编译器,汇编器和集成开发环境 ●的stvp闪存编程软件 该stm8还配备了入门套件,评估板和低成本的在线调试/编程工具。 单线数据接口(游泳)和调试模块 调试模块与单线数据接口(游)允许非侵入性的实时在线调试和快速存储器的编程。 单线接口用于直接进入调试模块和存储器编程。该接口可以被激活的所有设备的操作模式。 非侵入性的调试功能模块的性能接近一个全功能的仿真器。在内存和外围设备,操作也可以监测实时时间的影子寄存器。 引导程序 一个程序可以重新编程快闪记忆体使用usart1,usart2,usart3(USART异步模式),SPI 1和SPI 2接口。 引脚说明   在上电时,该领域/ nrst引脚复位输入引脚上拉。被用来作为一种通用针(领域),它可以被配置为输出漏极开路或推拉,不是作为一个通用输入。参见配置nrst / PA 1针通用输出的stm8l15xx和stm8l16xx参考手册(rm0031)。 2。 交替函数映射选项(如果相同的替代功能显示两次,这表明有一个唯一的选择而不是重复的函数)。 3。可在stm8l152xx设备。 4。上拉是适用于pb0和pb4在复位阶段。这些引脚输入浮动复位后释放。 5。在5伏/我/操作系统,保护二极管的电压是没有执行。 6。在开漏输出列,不能定义一个真正的开漏/(P缓存,弱上拉和保护二极管电压不执行)。 7。可在stm8l152xx设备。在stm8l151xx设备有保留,必须与内径。 8。该pa0引脚输入上拉在复位阶段和复位后释放。 9。高驱动能力可在pa0。 系统配置选项 如表5所示:高密度、中密度stm8l15x引脚说明,一些替代功能可以映射在不同的输入/输出端口的编程的一个映射寄存器描述在“路由接口(里)和系统配置控制器”一节中stm8l15xx和stm8l16xx参考手册(rm0031)。 5、内存和寄存器映射 6、中断向量映射 1。低功耗等模式时输入指令执行一个妻子在低功耗运行模式。 2。传输层接口的中断是逻辑或tim2溢出中断,和TIM 4溢出中断。 3。在妻子的模式,这种中断是如果以前已启用。加工后的中断,处理器回到妻子模式。当这个中断被配置为一个事件唤醒,醒来继续处理中央处理器。 4。中断从物理气相沉积在逻辑上是男女与港口和样品的中断。注册exti_conf允许选择之间的港口 和口中断(见外部中断端口选择寄存器(exti_conf)在rm0031)。 5。该装置被惊醒从停止或active-halt模式只有在收到的地址相匹配的接口地址。   7、选项字节 选项字节包含配置设备的硬件特点以及内存保护的装置。它们被存储在一个专用的内存块。 所有选项字节可以修改等离子体模式(游泳)通过访问存储器 地址。详细情况见表12上选择字节地址。 选项字节,也可以修改“即时”的应用在大气模式,除机械钻速,不列颠哥伦比亚大学和pcodesize值只能顾及时,改性的等离子体模式(与游泳)。 指stm8l15x / stm8l16x闪存编程手册(pm0054)和stm8游泳 调试手册(um0320)信息游泳编程程序。 8、独特的身份证 设备特征的96位独特的设备标识符提供了一个参考号码是独一无二的任何设备、任何背景。96位的标识符不能被用户改变。 唯一的设备标识符可以读取单字节,然后可以串联使用自定义算法。 唯一的设备标识符是理想的选择: ●使用序号 ●用作安全密钥提高代码安全程序中的内存使用和结合这一独特的软件加密原语和协议编程之前,内部存储器。 ●激活安全引导过程 9、电气参数 9.1参数条件 除非另有说明,所有的电压被称为变。 1最小和最大的价值 除非另有规定的最低和最高值,保证在最坏的条件下环境温度,电源电压和频率的试验生产 100%的设备与环境温度在打鼓= 25°和助教=助教最大(由选定的温度范围)。 数据为基础的表征结果,设计模拟和/或技术特点是显示在表的脚注和不在生产测试。特性的基础上,最低和最高值参考样本测试和代表的平均值加上或减去三倍的标准偏差(平均±3S)。 9.1.2包函典型值 除非另有说明,典型的数据是根据助教= 25°,内径= 3 V。他们只有设计准则并没有进行测试。 典型的模数转换器的精度值是确定的表征了一批样品从一个标准的扩散在整个温度范围内,其中95%的设备有一个误差小于或等于该值表示(平均±2S)。 9.1.3典型曲线 除非另有说明,所有的典型曲线只作为设计准则并没有进行测试。 9.1.4负载电容 加载条件用于引脚参数测量结果示于图10。 输入电压测量一个器件的引脚图11为。 9.2绝对最大额定值 以上这些列为“绝对最大额定值”可能造成永久性损坏的装置。这是一个压力等级和功能操作的设备在这些条件是不可取的。暴露在绝对最大额定条件下长时间可能影响器件的可靠性。 1。所有的权力(vdd1,电路,vdd3,vdd4,vdda)和地面(vss1,vss2,vss3,vss4,vssa)引脚都必须连接到外部电源供应器。 2。在最大必须始终尊重。参见表16。最大允许电流值。                                       操作条件 符合一般操作条件内径和钽。
  • 热度 19
    2015-12-2 11:27
    1310 次阅读|
    0 个评论
      IAR-STM8是1.41版,比较稳定。和ST LINK V2配合使用非常稳定。   链接:http://pan.baidu.com/s/1bnlyGwB 密码:hj2w      
  • 热度 20
    2015-11-30 11:36
    3028 次阅读|
    4 个评论
    帮同学写的简单的入门程序,基于STM8S105 课程:按下键就灯亮 环境:IAR for STM8 芯片:STM8S105 照惯例,分享附件 1,公司之前做的一块板的原理图 2,STM8从入门到精通 这是一本个人比较推荐的入门书籍,纯粹为了入门 ok,开始 1,配置好时钟,为16M晶振 Tip:这个函数可以直接拿去用 /********************************************* 函数功能:系统内部时钟配置 输入参数:SYS_CLK : 2、4、8、16 输出参数:无 备 注:系统启动默认内部2MHZ *********************************************/ void CLOCK_Config(unsigned char SYS_CLK) { //时钟配置为内部RC,16M CKDIVR &=~(BIT(4)|BIT(3)); switch(SYS_CLK) { CKDIVR |=((1<<4)|(1<<3)); break; CKDIVR |=(1<<4); break; CKDIVR |=(1<<3); break; } } 2,配置好IO口 Tip:这个请查看我分享的资料《stm8从入门到精通》的GPIO章节 void LED_INTI(void) //推挽输出 { PC_DDR |=(1<<3); //power 1-3 PC_CR1 |=(1<<3); PC_DDR |=(1<<4); PC_CR1 |=(1<<4); PC_DDR |=(1<<5); PC_CR1 |=(1<<5); } void KEY_INTI(void) //配置成悬浮输入 { PB_DDR &= ~((1<<1)+(1<<2)+(1<<3)); //按键1-3 PB_CR2 |= ((1<<1)+(1<<2)+(1<<3)); PB_CR1 &= ~((1<<1)+(1<<2)+(1<<3)); EXTI_CR1 |= (1<<2); //配置上升沿中断 } 3,添加头文件 #include "IOSTM8S105K4.h" #include "stm8s.h" //有时候我觉得没有必要添加这个 ....(你自己写的头文件添加进来) Tip : 请检查你的文件已经添加到工程项目中 4,按键解决方案 a,之前学C51的时候,我采用的方法是 Tip : 软件演示,"消抖" if(key1) { delay_us(20); //这个要看具体的延时 if(key1) { 执行程序; ........; ........; } } b,这里采用的方法是 Tip: a,自行查阅STM8从入门到精通 的 中断向量表; b, 如果用数字表示中断向量,请加2 c,这个程序请确保引脚平时处于低电平,按下处于高电平 #pragma vector = 6 //这个要根据具体的外部中断选择 PA:5 PB:6 PC:7 PD:8 ... __interrupt void PC_470Rx(void) { if(PB_ODR_ODR1==1) { LED1=!LED1; } if(PB_ODR_ODR2==1) { LED2=!LED2; } if(PB_ODR_ODR3==1) { LED3=!LED3; } } 5,编写主函数 #.....//需要的时候添加头文件 #.....//需要的时候添加头文件 #include "IOSTM8S105K4.h" //要自己查看芯片 #define LED1 PC_ODR_ODR3 #define LED2 PC_ODR_ODR4 #define LED3 PC_ODR_ODR5 #define KEY1 PCB_ODR_ODR1 #define KEY2 PCB_ODR_ODR2 #define KEY3 PCB_ODR_ODR3 unsigned char Key1Fg; unsigned char Key2Fg; unsigned char Key3Fg; void LED_INTI(void); //函数先声明 void KEY_INTI(void); //函数先声明 void CLOCK_Config(unsigned char SYS_CLK); //函数先声明 //Tip:可以试着把上面一段注释掉 看看什么错误 //Tip: 由于我是在记事本里面写的程序,可能有中文输入的问题 void main() { CLOCK_Config(16); LED_INTI(); KEY_INTI(); for(;;) { if(Key1Fg) { Key1Fg=0; // 试一下不加这一句 ....; //自己添加自己要增加的功能 ....; /自己添加自己要增加的功能 } if(Key2Fg) { Key2Fg=0; // 试一下不加这一句 ....; //自己添加自己要增加的功能 ....; /自己添加自己要增加的功能 } if(Key3Fg) { Key3Fg=0; // 试一下不加这一句 ....; //自己添加自己要增加的功能 ....; /自己添加自己要增加的功能 } } } void LED_INTI(void) { ........;在这里进行配置 如上 } void KEY_INTI(void) { 。。。。。;//配置按键 如上 } void CLOCK_Config(unsigned char SYS_CLK) { .......;//配置时钟 } 中断函数 #pragma vector = 6 //这个要根据具体的外部中断选择 PA:5 PB:6 PC:7 PD:8 ... { if(PB_ODR_ODR1==1) { Key1Fg =1; } if(PB_ODR_ODR2==1) { Key2Fg =1; } if(PB_ODR_ODR3==1) { Key3Fg =1; } }
  • 热度 18
    2014-1-15 15:49
    1179 次阅读|
    0 个评论
            STM8的C语言编程(10)-- 修改CPU的时钟   在有些单片机的应用系统中,并不需要CPU运行在多高的频率。在低频率下运行,芯片的功耗会大大下降。STM8单片机在运行过程中,可以随时修改CPU运行时钟频率,非常方便。实现这一功能,主要涉及到时钟分频寄存器(CLK_CKDIVR)。 时钟分频寄存器是一个8位的寄存器,高3位保留,位4和位3用于定义高速内部时钟的预分频,而位2到位0则用于CPU时钟的分频。这5位的详细定义如下: 位4   位3    高速内部时钟的分频系数 0      0      1 0      1      2 1      0      4 1      1      8   位2    位1    位0     CPU时钟的分频系数 0       0       0       1 0       0       1       2 0       1       0       4 0       1       1       8 1       0       0       16 1       0       1       32 1       1       0       64 1       1       1       128   假设我们使用内部的高速RC振荡器,其频率为16MHZ,当位4为0,位3为1时,则内部高速时钟的分频系数为2,因此输出的主时钟为8MHZ。当位2为0,位1为1,位0为0时,CPU时钟的分频系数为4,即CPU时钟=主时钟/4=2MHZ。 下面的实验程序首先将CPU的运行时钟设置在8MHZ,然后快速闪烁LED指示灯。接着,通过修改主时钟的分频系数和CPU时钟的分频系数,将CPU时钟频率设置在500KHZ,然后再慢速闪烁LED指示灯。通过观察LED指示灯的闪烁频率,可以看到,同样的循环代码,由于CPU时钟频率的改变,闪烁频率和时间长短都发生了变化。 同样还是利用ST的开发工具,生成一个C语言程序的框架,然后修改其中的main.c,修改后的代码如下。修改后的代码编译连接后,就可以下载到开发板上,运行后会看到LED的闪烁频率有明显的变化。   //  程序描述:通过修改CPU时钟的分频系数,来改变CPU的运行速度   #include "STM8S207C_S.h"   // 函数功能:延时函数 // 输入参数:ms -- 要延时的毫秒数,这里假设CPU的主频为2MHZ // 输出参数:无 // 返 回 值:无 // 备    注:无 void DelayMS(unsigned int ms) {   unsigned char i;   while(ms != 0)   {     for(i=0;i250;i++)     {     }     for(i=0;i75;i++)     {     }     ms--;    }     }   main() {   int i;     PD_DDR = 0x08;   PD_CR1 = 0x08;              // 将PD3设置成推挽输出   PD_CR2 = 0x00;     CLK_SWR = 0xE1;             // 选择芯片内部的16MHZ的RC振荡器为主时钟     for(;;)                     // 进入无限循环                                {     // 下面设置CPU时钟分频器,使得CPU时钟=主时钟     // 通过发光二极管,可以看出,程序运行的速度确实明显提高了     CLK_CKDIVR = 0x08;         // 主时钟 = 16MHZ / 2                                                // CPU时钟 = 主时钟 = 8MHZ     for(i=0;i10;i++)     {       PD_ODR = 0x08;       DelayMS(100);       PD_ODR = 0x00;       DelayMS(100);     }        // 下面设置CPU时钟分频器,使得CPU时钟=主时钟/4     // 通过发光二极管,可以看出,程序运行的速度确实明显下降了     CLK_CKDIVR = 0x1A;         // 主时钟 = 16MHZ / 8                                                 // CPU时钟 = 主时钟 / 4  = 500KHZ     for(i=0;i10;i++)     {       PD_ODR = 0x08;       DelayMS(100);       PD_ODR = 0x00;       DelayMS(100);     }   } }                    2010-8-11  
  • 热度 19
    2013-4-11 15:13
    1730 次阅读|
    0 个评论
    年年岁岁花相似,岁岁年年人不同。一样定时,不一样的处理器(STM8)… 时钟可以用默认的2Mz,当然可以和下文一样,设置成为外部晶振(我搭载的是8M). 不说了,贴一代码,留作纪念,不做学习用,因为没什么好学的,呵呵… #include "stm8s003f3.h" #include "sys.h" _Bool LED @PA_ODR:3; void SCLK_INIT(void); void TimerInit(void); main() {  SCLK_INIT();  PortInit();  TimerInit();  while (1); } void SCLK_INIT(void)     //系统时钟配置,外部时钟8MHZ {  CLK_ECKR = 0x01;                    // 使能外部高速晶振  while((CLK_ECKR 0x02) == 0x00); // 等待外部晶振稳定  CLK_SWCR |=0x02;        // SWEN - 1  CLK_SWR = 0xB4;      // 外部时钟为主时钟  while((CLK_SWCR 0x08) == 0);   // 等待切换成功  CLK_SWCR = 0xFD;        // 清除切换标志  CLK_CKDIVR = 0x00;     // CPU不分频 } void TimerInit(void) {  TIM4_PSCR = 0x07;    // 计数器时钟=主时钟/(2^7)128 = 8MHZ/128  TIM4_ARR  = 0xff;    // 设定重装载时的寄存器值255  TIM4_CR1 |= 0x01;    // 允许计数器工作  TIM4_IER |= 0x01;    // 允许更新中断  _asm("rim");         // 允许CPU全局中断  } @far @interrupt void TIM4_UPD_OVF_IRQHandler(void) {  unsigned char i_Count;  TIM4_SR = 0xFE;  i_Count++;  if(15 == i_Count)  {   i_Count = 0;   LED =~ LED;  } } 下面在附上简单的要死的端口配置子程序: void PortInit(void) {  /* 设置PA3为推挽输出模式 */  PA_DDR |= 0x08;    PA_CR1 |= 0x08; } 老大,我还有退路吗???
相关资源