做热敏打印机的起因是捡垃圾捡了一些下图这个东西,毕索龙的SMP640

没错,就是普普通通的58热敏打印头。

在接下来的时间里,我将通过几篇文章来讲述一个热敏打印机从无到有的故事,深入(x)剖析所给的数据手册内容(笑

当时因为年轻不懂事,只买了三个,现在一想真是亏炸了(


热敏打印头

总体概述

一般来说,市面上的58打印头大差不差,横向分辨率为384dot,大都由以下几部分组成:

文档中提供的爆炸视图
零件序号说明
1加热打印部分的加热片(或称热敏片)
用于缺纸检测的光电二极管
用于温度传感的热敏电阻
2,3,6-10传动部分的步进电机、齿轮组与滚轴
核心零件

唠一唠热敏片

热敏片的简要框图

通过文档中的框图可以看出打印片的结构十分简单:一个简单的串入串出移位寄存器存储打印像素点,通过一个LATCH锁存、六个STROBE控制加热丝的开启和关闭。

时序图

有了框图的铺垫,数据传输的方式基本也可以猜的八九不离十了:数据在时钟的某个边沿从输入进行移位锁存,在寄存器满后将最先输入的数据移出。

文档中的框图也证实了这个猜想:SI在上升沿时锁存,同时SO在上升沿后移出;LATCH低电平有效,将数据从移位寄存器送入LATCH锁存,STROBE高电平有效,控制对应组的像素点进行加热,完成一行的打印。

在程序编写上,该协议基本上可以看成一个单工的SPI协议进行操作,选用片上带有SPI的控制器可以免去自己写驱动的烦恼。


唠一唠步进电机

这个步进电机嗷,文档说是叫 “PM 20 Steps type stepping motor”,所以是PM型的二十步/圈步进电机

一个步进电机相关的文档:链接

PM型步进电机

文档中给出了该电机的驱动方式:2-2 PHASE excitation Bipolar method(2-2相励磁双极法)通过A,B以及A-,B-相的顺序激励,即可驱动步进电机进行旋转。

文档给出的激励顺序

所以,只要按照给出的顺序控制四个相即可。直接接到控制器IO上肯定不现实,倒是可以采用各种的电机驱动芯片和H桥来进行驱动。


唠一唠热敏电阻

热敏电阻

文档给出了热敏电阻的详细参数与普通的负温热敏电阻无异:30KΩ@25℃的NTC集成在了加热片上用于检测加热片的温度。

热敏电阻的温度计算也不是很复杂,先经过分压确定热敏电阻当前的阻值,之后通过查表或计算便可得到当前的温度值。

经过整理后的热敏电阻计算公式

唠一唠光电管

文档给出的参考电路

原理很简单,VCC通过R2给发光管供电,发光管发出的光线经过纸张反射后被光电管接收,光强度控制光电管的导通程度。当没有光入射时(也就是没有纸来反射光),光电管截止,R3回路没有电流,输出为高;当有光入射时(也就是有纸来反射光),光电管导通,当光强足够大时,光电管完全导通,达到TTL电路的逻辑低电平。

文档给出的电路,不行!当我照着电路搭好测试电路后发现根本没有输出!还得自己测试之后改了改电阻才能用。

  • 之前被文档局限住了,这个电路只能检测纸张是否存在,但无法检测标签之类的边界,和群友讨论以后发现可以用ADC来检测电压达到检测边界的效果。

热敏头的基本组成已经唠的差不多了,下一篇,咱们来唠唠硬件驱动部分。

摸了好长时间,dbq