stm8封装互补输出是什么

STM8S的简介
从十一月份开始要学习STM8单片机了,在接下来的日子里我会把我的学习心得记录下来,希望可以帮到有需要的人!呵呵!下面进入正题首先介绍一下STM8的一些特性(介绍针对STM8S105C6):
&&&&一、内核
&&&&1.高级STM8内核,具有3级流水线的哈佛结构&
&&&&2.扩展指令集&
&&& 二、存储器
1.中等密度程序和数据存储器:
最多32K字节Flash;10K次擦写后在55°C环境下数据可保存20年&
&&&&2.数据存储器:多达1K字节真正的数据EEPROM;可达30万次擦写&
&&&&3.&RAM:多达2K字节
三、时钟、复位和电源管理&
1.3.0~5.5V工作电压
2.灵活的时钟控制,4个主时钟源
&& 低功率晶体振荡器
&& 外部时钟输入&
用户可调整的内部16MHz RC
&& 内部低功耗128kHz RC
&& 3.带有时钟监控的时钟安全保障系统
&& 4.电源管理:
低功耗模式(等待、活跃停机、停机)
外设的时钟可单独关闭
&& 5.永远打开的低功耗上电和掉电复位
四、中断管理&
& &1.带有32个中断的嵌套中断控制器
&& 2.6个外部中断向量,最多37个外部中断
五、定时器&
1.2个16位通用定时器,带有2+3个CAPCOM通道(IC、OC 或 PWM)
2.高级控制定时器:16位,4个CAPCOM通道,3个互补输出,死区插入和灵活的同步
&& 3.带有8位预分频器的8位基本定时器
&& 4.自动唤醒定时器
&& 5.2个看门狗定时器:窗口看门狗和独立看门狗
&& 六、通信接口
&& 1.带有同步时钟输出的UART
,智能卡,红外IrDA,LIN接口
2.SPI接口最高到8Mbit/s&
&&&3.I2C接口最高到400Kbit/s
七、模数转换器(ADC)&
1.10位,±1LSB的ADC,最多有10路通道,扫描模式和模拟看门狗功能
八、I/O端口&
1.48脚封装芯片上最多有38个I/O,包括16个高吸收电流输出&
2.非常强健的I/O设计,对倒灌电流有非常强的承受能力&
&& 九、开发支持&
1.单线接口模块(SWIM)和调试模块(DM),可以方便地进行在线编程和非侵入式调试
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。STM8单片机GPIO口_百度知道
STM8单片机GPIO口
1、上拉输入:上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分。2、下拉输入:就是把电压拉低,拉到GND。与上拉原理相似。3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。 通俗讲就是让管脚什么都不接,浮空着。4、模拟输入:模拟输入是指传统方式的输入.数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。5、推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。6、开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).7、复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。在STM32中选用IO模式,下面是参考网上的总结一下。(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX(2)带上拉输入_IPU——IO内部上拉电阻输入(3)带下拉输入_IPD—— IO内部下拉电阻输入(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)引用:
其他类似问题
为您推荐:
stm8的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁STM8S学习笔记之四(STM8&time1)
日修正程序错误。。
这几天一直纠结于使用STM8库还是用底层寄存器写程序,用了用IAR和库的搭配,方便时肯定的,但是呢,鉴于我现在工作使用的就是STM32的单片机+STM32库,考虑再三,我还是用底层吧,这样两个就可以互补了,既不会太依赖于库,又对寄存器的操作有更深的了解。。只是都是相通的,是的,相通的。。
以下是从技术手册上粘贴的:
TIM1由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。
本章中使用i来代表1、2、3、4,分别对应于四个不同的捕获/比较通道。
高级控制定时器适用于许多不同的用途:
&&& ●基本的定时
●测量输入信号的脉冲宽度(输入捕获)
●产生输出波形(输出比较,PWM和单脉冲模式)
●对应与不同事件(捕获,比较,溢出,刹车,触发)的中断
●与TIM5/TIM6或者外部信号(外部时钟,复位信号,触发和使能信号)同步
高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM的应用,该模式支持互补输出和死区时间控制。
高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。
这个定时器对我的第一印象就是想到STM32的定时器1,也是高级定时器,记得当初用32的某个单片机做的项目,要出各种互补对称的脉冲,而且还必须多少多少的死区时间。。虽然很头疼,但是还是用定时器1轻松实现。看似这个定时器和STM32的高级定时器差不多,那就肯定很强大。。
//Time1定时器
Timer1Init(void)
asm("sim");& // 关全局中断
TIM1_PSCRH=0;
TIM1_PSCRL=15;&&&
//(fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)。
TIM1_CNTRH=0xc3;
TIM1_CNTRL=0x50;//自动装载寄存器的值
&&&&&&&&&TIM1_IER=0x01;//允许更新中断
TIM1_RCR=20;//重复计数寄存器值&
TIM1_CR1=0x01;//打开自动装载,打开计数器&
&asm("rim");& // 开全局中断
以上是定时器的初始化,第一句不解释。TIM1_PSCRH
TIM1_PSCRL为单片机的预分频器。和STM32差不多。取值貌似都是u16.&
然后是TIM1_ARRH&
TIM1_ARRL,自动装在寄存器的值,也就是说,一旦计数到65535,寄存器溢出并触发中断,然后定时器的计数器自动装载为此值。。原来是这样,呵呵,所有单片机都一样。。允许更新中断,定时时间到进中断,地球人都知道。。重复计数器很好,他需要溢出N次才可以进中断。。呵呵。。开自动装载,开定时器。差不多就OK了。。但是哥那个晚上调了N长时间都没调通,郁闷的要死,最后的最后的最后,终于找到了,&asm("sim");
// 关全局中断&&&
asm("rim"); // 开全局中断。。哥突然想起当初的51.。不解释。。
中断函数也粘过来吧、、、
#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVF_IRQHandler(void)
&if(TIM1_SR1&0x01)
&&&&&&&&&&
&TIM1_SR1&=~0x01;//清除中断标志
&&&&&&&&&&
&if(i%2)& PD_ODR=0x00;
看到这个日志的同志们就偷笑吧,这个代码复制粘贴,肯定能用。。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。STM8S103F制作正弦波逆变器的研究-电源网
当前位置:
STM8S103F制作正弦波逆变器的研究
阅读: 4095
楼层直达:
本人今天才接触STM8单片机 不过之前有别的单片机开发经验 因此上手比较快 现在写出了正弦波发生程序 明天搞了AD和PI算法就能做逆变了 慢慢搞
1和20输出SPWM波 11输出50Hz方波
STM8S这个片子,PWM自带死区和互补输出,还能生成中心对称的PWM。不使用的话,有点暴殄天物哟。
最好使用内部rc震荡。不要使用外部晶振。外部晶振受干扰容易复位
目前这么设计的 SPWM1 2和它们的反向直接驱动全桥
Shutdown脚用于实现过流保护超功率保护等功能
Shutdown Logic悬空时 Shutdown被拉地时锁定SPWMx的输出
Shutdown Logic接地后&Shutdown被拉低时关闭输出 当取消下拉时恢复输出
FrequencyDetermine 悬空时 输出50Hz正弦波 接地后输出60Hz正弦波&
这次修改为TIM1产生SPWM波形 而且一次4个单极性波形都产生 带死区 直接驱动全桥无压力
但是为了方便使用还是保留了50Hz Sync即同步方波
Beep用于连接蜂鸣器 在逆变器发生故障时(被从Shutdown脚关机或者电池电压过低等)出声
OutputFeedback用于反馈输出电压 稳定输出电压
Battert Low用于反馈蓄电池电压 外部需要电阻分压 来检测电瓶欠电 当这个脚电压低于1V时亮低电压灯 当低于0.8V时锁定逆变器&
不错,赞一个!这动手能力都赶上许多研究生,翠师傅上大学几年级了?想我本科时都去体验生活了,浪费时间啊!
窝没上大学呢 明年才上
哦哦,那就更了不得啦,理解力达到了本科水平!我高中时时间用在做题上面了,楼主把时间花在这些地方,对考大学有很大的影响哟!
成绩确实受了点影响 不过依旧可以接受
再补充一个 今天写的 带PID的 应该能稳压了
下面的复制下来存为Htm就是正弦表计算软件!
&TITLE&半波正弦表发生器&/TITLE&&FORM name="form1"&&步数&&INPUT name="step" size="5"
&value="10"&&峰值&&INPUT name="peak" size="5" value="255"&&&INPUT name="cal" onclick="calculate()"
&type="button" size="5" value=" 计算 "&&结果&&INPUT name="result" size="100" value=""&&/FORM&
&Script&function calculate(){&var step=document.form1.step.&var
peak=document.form1.peak.&document.form1.result.value="0"&for(var t=1;t&t++)
{& document.form1.result.value+=","+parseInt(peak*Math.sin(t*Math.PI/step));&}}&/Script&
有木有实际波形?
楼主目前在哪儿上大学?对你好像有所耳闻。
楼主水平很高!可以加大一点难度,一是尝试着使用单极性倍频的调制方式,这可为你单片机处理指令省下不少时间。二是控制可以弄复杂些,最好能弄成电压电流瞬时双环的。
瞬时双环 就怕AD速度不够啊
单极性倍频那种考虑过 也可以做的
又更新了 增加了保护和电池低电压智能锁定功能
现在还有两个IO口空余 不知道增加什么功能好呢
单片机的5v和mos管12v驱动是怎样转化的?
SPWM1 SPWM2等通过光藕隔离驱动全桥 光藕另一侧是15V的mos驱动电压
单片机是3.3V的
最新的程序
增加1个Disable PID脚 接地时输出的正弦波的峰值从0-100%随着Output Feedback(0-单片机供电电压 通常3.3V) 变化 用于内部PID稳压无法满足需求时 外接运放实现稳压
现在程序功能应该完善了 可以试试驱动全桥了 这次争取来个12V300W逆变 带短路保护
尤老师辛苦了,我们这些菜鸟才有机会学习软件
一个高中生有如此能力,佩服。STM8我也在用,性价比很高。
程序看过了,提点建议
1、系统开启了至少2个定时器中断,使用了3个定时器,在这样的系统中中断冲突导致的延迟必须考虑,建议改成只使用tim1中断,每次中断更新下一个占空比,spwm表可以更细一些,比如用20k的载频,直接用400的spwm表,这个对于stm8来说没有问题。
2、只用一个定时器的情况下,50hz可以使用软件计数来输出的,不是问题,没有必要单独搞一个定时器来做更新
3、你的刹车信号使用了,但是没看到相应的中断服务,也就是说刹车中断只是硬关闭,不恢复的,这个在产品中是有问题的。刹车的恢复一般是延时一段时间后重新启动。
4、需要加上软启动部分否则还是挺危险的。
再补充一点,建议增加电流采样通道,硬件驱动刹车的用于保护危险的过流信号,比如负载短路,软件检测的电流信号用于控制过载,最好是有几秒甚至几分钟的过载允许范围
典型设计一般是
允许w的120秒过载
允许1500w到2000w的3-5秒过载
超过1500或者2000w的话立即保护
一般商用的选前一组参数,工业的选后一种
一般来说选择的功率管都能短时间承受100%的过载的,但是散热系统通常不能容忍持续过载,否则体积和成本难以接受。所以实用的角度来看加上软件电流检测是有必要的,而且用于显示的话有电流采样就能显示功率(视在功率)信息了,对于应用价值相对较大
adc采样结果的反馈和pid计算的系数都存在问题,另外积分项的最大值也没有意义,不可能那么大,另外你这个计算出来的pid结果有可能是负数,会导致失控的情况出现。
一般说pid的计算结果是用来进行调整的,也是对调制度进行加操作,并且对调制度上下都要做限制,你当前的调制度出现负数是不能工作的
PID 部分求指导 这部分窝也觉得程序可能会有一点问题...
ADC的部分应该没有问题的说
你要先换算adc的采样值到你目标值相同的比例上再做pid,pid要考虑输入,计算过程,和输出来制定相关系数
对于逆变器来说一般做pi就好了
明白咯 谢咯
几年前我也用这颗做过300W纯正弦波逆变器,加油,这IC可以实现的。
我最近也想用STM8做款300-500W的SPWM逆变器吗,STM8的抗干扰怎么样?
不错啊,加精鼓励下。
最近也在学STM8,请教下COSMIC里添加头文件不能用怎么回事,而且你的程序在IAR里不兼容,初学菜鸟,请教!
这是电源网水平最高的SPWM帖子,特来顶一个,不过使用内部RC时钟据说不稳定,建议还是外接晶振
内部rc误差1%左右,用作一般的逆变足够了
窝用STVD写的程序 和IAR确实不兼容....而且窝没使用STM8的库函数...
我用STVD来写,老是提示头文件错误,编译不了,感觉STVD不能像keil C51一样头文件可以随意添加。。。不过程序我也在IAR里完成了,带死区就是好,省了好些电路,但又怕单片机受干扰跑飞让后级MOS直通。。。纠结好多天后还是感觉硬件加死区最安全,STM8的死区功能做前级开环驱动信号。
IRA比较好用,
对楼主的程序做了一些修改,TIM2用于DC-DC升压(这一个功还没实现,TIM2也有可能实现不了推挽PWM输出),TIM4产生中断用于更新SPWM值,效果看图,空载时还行,带载的波形有问题,试过SPWM值80等份与160等份都无改善,使用STM8S003+IR2101+IRF740
这。。。。
一个STM8负责两个事估计跑不起来吧
有一种方法是 增加正弦表的点数
估计乃的问题还素输出滤波器那的
最近学业比较忙 而且还得陪妹子 所以很久没上线 哎
挺久没鼓捣电源了呢
不过年底准备把12V100A的坑填了
带APFC 就是今年年初制作的那个无桥PFC
加上UC3846+同步整流的DC-DC
关于电源网
我们的服务
服务时间:周一至周五9:00-18:00
电源网版权
增值电信业务经营许可证:津B2-
网博互动旗下网站:

我要回帖

更多关于 iar for stm8 的文章

 

随机推荐