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

查看: 1463|回复: 1

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

[复制链接]

8

主题

2

回帖

0

蝴蝶豆

初级会员

最后登录
2020-11-19
发表于 2017-2-14 17:33:05 | 显示全部楼层 |阅读模式
本帖最后由 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超强大的性能跑这个复杂软件,用一句古诗结尾:落霞与孤鹜齐飞 秋水共长天一色!





回复

使用道具 举报

1182

主题

3785

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-3-17
发表于 2017-2-15 11:24:11 | 显示全部楼层
讲的很好,谢谢支持~
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版