你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【我与STM32共成长】+我的STM32开发之路—绚丽多彩的VFD

[复制链接]
马晓天 提问时间:2017-2-14 17:33 /
本帖最后由 mameng 于 2017-2-15 16:36 编辑

       非常感谢社区举办这场活动。下面我将与大家分享过去和STM32共成长的点点滴滴。
       ST公司依托最新的ARM Cortex架构开发出STM32 F0~F7系列芯片。彻底颠覆传统的51架构,给电子信息产业插上腾飞翅膀。使得过去8位,16位单片机很难开发或者不能开发的课题编程显示。ST半导体与时俱进,不断提高芯片的ROM,主频,降低功耗。不断丰富的接口,性能。与现代传感器技术,物联网WIFI技术,低功耗蓝牙,ZIGBEE等技术无缝结合,不断丰富的GUI和算法DSP革新.STM32开发板支持ARM  Mbed 。大大推动科技进步,丰富人类生活。
      我是做VFD技术开发的,下面介绍什么是VFD:
      VFD:真空荧光显示器,Vacuum Fluorescent Display),是从真空电子管发展而来的显示器件,由发射电子的阴极(直热式,统称灯丝)、加速控制电子流的栅极、玻璃基板上印有配线和荧光粉的阳极及玻盖构成。发光原理为:在透明的真空容器中由直热式阴极发射出热电子,经过栅极加速撞击至阳极,利用阳极上的荧光体受电子的撞击而发光,属于自发光显示器件VFD以发光亮度高、多彩色显示、图案显示灵活、视角大、可靠性高和寿命长、自发光、驱动电压低等优点而被广泛应用在家用电器(微波炉、冰箱、空调、洗衣机、消毒柜等),音响/视频设备(影碟机、功放、录影机等),仪器仪表(加油机、计价器、工业仪表等),POS机(包括税控收银机)、电子衡器、汽车及公共显示装置等各种领域中。上海璞丰光电有限公司可以生产各种的VFD,性能和销量全球最佳。


VFD.jpg

应用举例:
1)超市收银台;POS机
V2.jpg


2)大上海地铁站  客户端显示
V1.jpg

3)各种科学企业 如数字万用表啊,机顶盒 就不一一列举了。

STM32项目实践。

1) 先介绍下成果:

驱动点阵VFD比较复杂,需要精确算法。下面先展示下我用STM32开发VFD驱动板的实物图。
核心芯片是STM32 F1家族中一员,这颗IC flash够大,以前没有STM32,只能用单片机+存储芯片构建。成本高,架构复杂。
架构.png

展示下显示内容:哈哈 不错吧,可以显示字母,韩文,中文。
V3.jpg


2)开发之路

   首先解决解决是的电源问题。由于VFD驱动需要高压源(正负10~60V不等),电流也较高。
  电源电路,我才用STM32 PWM生成了一个小型开断电源。配置定时器4
  Time4_Config(void)
{


    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);        // 使能TIMER4时钟

    TIM_DeInit(TIM4);                                          // 复位时钟TIM4,恢复到初始状态

    TIM_TimeBaseStructure.TIM_Period = 100;

    TIM_TimeBaseStructure.TIM_Prescaler = 63;                                         //时钟72分频1MHz

    TIM_TimeBaseStructure.TIM_ClockDivision=0x0;      // TIM4时钟1分割

    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;  // 计数方式 向上

    /*--定时时间T计算公式

      T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK=(35999+1)*(9+1)/72MHz=5ms

    --*/
                                 TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);

                                TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;   //PWM模式2

                    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道有效        

                                TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道无效

                                TIM_OCInitStructure.TIM_OCPolarity = TIM_OCNPolarity_High;    //输出极性

                        //TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;    //互补端的极性
                        //        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
                        //        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;

                  /*****设置通道1****************/


                                TIM_OCInitStructure.TIM_Pulse = 1;        //占空时间
                                TIM_OC1Init(TIM4,&TIM_OCInitStructure);        //通道1
                                TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);                        
                        //        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Disable);



//         TIM_ITConfig(TIM4, TIM_IT_CC1 , ENABLE);        //开中断

                                TIM_CtrlPWMOutputs(TIM4,ENABLE);                        //PWM使能

                                TIM_Cmd(TIM4,ENABLE);

}  

驱动点阵VFD驱动实时扫面每个点阵。STM32驱动一次传输128bit到VFD,动态扫描。根据上位机传来并口或者串口数据,分清是命令还是现实数据。
下图是扫面时序。
开发过程中,最难得是扫描时序的算法实现。本质是STM32控制驱动芯片,形成电场,精确控制电子的流动方向,电子撞击荧光屏才发光。
软件复杂大很高,数组,结构体,共用体,指针,指向指针的指针。内存优化。
发图上限了。意犹未尽。STM32丰富的生态系统,尤其是STM32CubeMX的图形化编程,为广大开发者带来福音。
STM32超强大的性能跑这个复杂软件,用一句古诗结尾:落霞与孤鹜齐飞 秋水共长天一色!





收藏 1 评论1 发布时间:2017-2-14 17:33

举报

1个回答
zero99 回答时间:2017-2-15 11:24:11
讲的很好,谢谢支持~

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版