15 August 2010

这篇文章属于《梦之栖居》系列,写于2010年。

7月9日,周五:

7月8日晚火车离京,9日早到达徐州车站。公司派车前来接站,我们于九点左右到达精创公司办公室。公司座落在徐州市郊县(铜山?),离市区有一定距离,周边均为工业区,颇为冷清。十点左右,HR的人员办了实习手续,后勤人员给我们安排了宿舍。我们去见了李经理,李经理给我们谈了民族企业的发展问题,希望我们能够将来以自己的技术为之作贡献。她让我们先在生产岗位工作十天,然后再进入研发部门。我们上午先到宿舍休息,下午便到生产中心开始工作。

今日主要在探头组帮助制作探头。我们了解到了测温探头的构造。很简单,将一个热敏电阻置于金属探头内,引出两根导线即可。我们负责将导线端部剥皮、镀锡,为下一步的焊接作准备。导线截短用机器,但这些细活需要人工。我们发现,外购的热敏电阻引脚不够长,因此专门有一道工序是在引脚上接一段导线(并对其进行绝缘处理)。疑问:难道不能向热敏电阻的生产者反映,定制较长引脚的吗?

7月10日,周六:

今天上午安排我们到温度计一组工作。我们了解了整个温度计生产流程。这里所说的“温度计”指温度测量和显示设备。其结构不是很复杂,核心部件是一个电路板。测温探头连接到电路板上,把采集到的传感器信号传给单片机,单片机把得到的、温度值送给数码管或液晶屏显示出来。这里的产品一般都支持摄氏和华氏温度的转换,有的还附加有时间显示、侧湿度等功能。生产流水线上大部分都是人工操作,主要有补焊、各部件连接、包装等工序,当然成品还要经过检验、老化处理等,最后就打包作为产品外销了。

这天我们还得以在生产中心自由的参观。整个生产中心除去仓库只有两层,分为不同的班组。生产的产品除我们详细了解过的温度计,还有温控箱、卤素检漏仪。精创的产品主要销给海尔、三阳等空调冰箱制冷设备厂家,还有部分出口。

7月13日,周二:

从7月11号到今天我们都在生产中心做苦工,即在生产一线进行锻炼。这样也好,可以感受一下劳动者的生活。由于班组长没有接到上级允许我们随意转移的通知,因此我们这几天一直在探头组。我们把这里的几乎所有工序都做了,包括缠线、涂胶、穿热缩管、剪多余的引脚,等等。这里的工人师傅们都很有经验,业务熟练且平易近人。工作并不是很累,但需要细心和耐心,感觉有点枯燥。

直到今天下午,我们接到李经理的通知,可以去研发部了。

7月14日,周三:

自今天起我们从生产中心转入研发部。

昨天下午,我们到研发部这边了解情况。负责技术管理的人把我们带到公司CTO郑总的办公室,等其为我们安排实习内容。但郑总一直在开会,我们在等待期间找这里的工程师与之聊天。其中一位在看电路图,并且一直在参考其上学时的模电课本。同时这位年轻的工作者还透露说他在准备考研,并告诫我们,社会上对学历还是很看重的。我对此感到一些失落,可能我自己不是重视读研的缘故吧(但其实自己很想读研,因为随着对社会职位的了解,越来越感觉学校里生活真好!)

今天早上八点半上班时我们直接来研发部办公室,公司为我们配备了电脑。我们自己把电脑组装好。随后,我们跟随指示去生产车间调试产品。可能这是研发部实习的初始工作吧。我们在那里工作直到上午下班。中午休息一个半小时,下午上班后继续上午的工作。

7月17日,周六:

从今天起我们开始进行被分配的项目。

前面几天,我们对公司的一款温控器产品ETC-H6(用于医用冷柜的温度测控)进行了研究。最终读懂了电路原理图和PCB板图,理解了其各部分电路的原理和芯片的运用。通过电原理图和PCB板图或实物的对照,我们还发现了电原理图中一些标注或绘制错误的地方,反映给了相关工程师。

该款产品所用单片机中的程序代码公司不能透漏给我们,说是工程师自己需保密的知识产权。于是,在做完硬件电路的研究后,我准备根据功能需求自己试着写单片机程序。现在已经准备好了开发环境。但郑总突然给我们分配了三个公司正在或将要进行研发的项目,我们只能先投入到这些项目中去。三个项目依次是:开关电源模块开发,用单片机控制对U盘数据的写入,触控显示屏模块的开发;我们三个人中,闫传博负责第一个,余博城负责第二个,我负责第三个。

我们在昨天下午上网进行调研之后做的分工。之前我们的Internet访问权限被限制在下午四点以后,郑总说从今天开始将给我们开放全天上网的权限。对我们来说,这些新项目的探索研发离不开网络资源。

7月19日,周一:

经过周日的休息,今天开始新一周的工作。我负责的是触摸屏的开发项目。经过上网查找大量的资料,我基本确定了项目方案。所谓触控显示屏其实是在显示屏的表面(或底层?)加上一层触摸信号传感器屏(这层传感屏被称为“触摸屏”)。触摸屏有多种,其原理和成本都不同,我决定选择技术比较成熟的常用的四线电阻式触摸屏。其基本原理为:触摸压力使得两层导体膜接触;若在矩形对边加上一定电压,则随着触点位置不同,触点处与屏相应边缘之间的分压就不同。通过测量这个分压值,可推算相应的触点位置坐标。该矩形触摸屏四个边共引出四条线,故名。

上述“加一定电压”和“测量分压”,以及后续的将电压以数字量表示(即A/D转换),可由专门的触屏控制芯片完成。我决定选择TI公司的ADS7846。这是一种可用于多种测量的模数转换芯片,良好支持四线电阻式触屏的控制。触屏的四条线直接连至ADS7846的四个特定引脚,而ADS7846则以SPI协议(一种同步的串行通信方式)与单片机交换信息。其实可认为触屏控制芯片只起一个驱动作用(当然也有模数转换这一重要环节),真正的控制是由单片机进行的。有触摸的话,ADS7846给单片机一个中断信号;单片机通过向ADS7846写控制字节(Control Byte)决定何时测量及测量那个方向,而且负责将从ADS7846获得的数字量换算成位置坐标;当然,也包括使用这些位置坐标。

单片机我决定就选用公司已在使用的78F0361(来自日本NEC公司)。单片机中的程序很关键。这些程序应该将对触摸屏的信号采集和对显示屏的驱动一起,来实现触控和显示相结合的用户交互。显示就采用用液晶显示屏(LCD)。78F0361已集成了SPI通信模块(如果没有的话就要用一般IO口来模拟实现SPI)和LCD驱动模块,可满足上述要求。目前我已经通过看Data Sheet了解了所用单片机和触摸屏驱动芯片的使用,但对驱动LCD还未做深入了解,也没开始写程序。我设想先实现一个简单的demo,具体如下:在触屏四角上设置四个按键感应区,其中包括+、-、set,中间显示两位数字表示温度;按下set键则数字闪动,可通过按+/-键来增大和减小温度数字。系统电路图从原理上说比较简单,但画图、布线、制板过程可都需要。另外写程序也将是比较大的工作量。

现在我想先让公司帮忙购买材料,需要一个LCD屏和一个大小与之配合的触摸屏,还需要两个芯片。这些可能需要购买,其获得遇到了困难。但我这边已经配好了单片机编程的环境,可以先开始写程序。

7月25日,周日:

又一周过去了,这周对系统设计方案进行了不少折腾。首先是对LCD显示屏。这种屏幕有两种选择,一是笔段式的,一是点阵式的。前者整个屏幕上有预先制定的、有限的几个段,通过控制各段的亮灭以决定预先制定的图案是否显示出来,一般只能用于显示数字和定制的图案。点阵式的液晶则是按像素来显示,可以自行编程显示各种图案。我试图用点阵式的LCD。但点阵式的LCD一般需要一个特定的芯片驱动(功能较强的有Epson公司的sed1335),而且市场上大多将LCD及其驱动做在一起,成为一个液晶显示模块(LCM)。单片机与上述模块的通信其实就是与sed1335的通信。原有单片机78F0346集成的LCD驱动模块只是驱动笔段式,而且该驱动占用的24个端口又不能复用(看来这个单片机有点过于专一了!)。我看了一下,如果改用点阵式LCD的话,78F0361的端口不够用了。这就导致了我又试图重新选择单片机。从公司里已用的(即已有开发环境,我就不用自己搭了)单片机中找,最后发现ATmega16不错。于是我又画了用ATmega16作MCU的电路图。至此,因显示方面的因素,系统方案就有两种,一是直接用78F0361的集成模块驱动笔段式LCD;二是改用ATmega16和带sed1335的LCM实现点阵式显示。后者显示功能更强大,但也更贵,似乎也不符合公司的需要。但我个人显然更希望实现后者。而不管显示如何,触摸信号采集方面,都是需要一个四线电阻式触摸屏和一颗ADS7846芯片的。

其实系统设计比较纠结,如果设计好了,至于编程应该不成问题。我这周已经把程序结构和必要的通信代码搞定了,如果换单片机也只需稍作改动。可能做板子等硬件问题也会比较麻烦(起码对不善长这个的我来说)。

今天去了一趟徐州的电子市场,想看有没有显示屏和触摸屏可以直接买到。结果发现电子市场都是手机等电子产品的销售、维修等业务,卖元器件的不多(但也有)。这与中关村的中发电子市场大不相同。我没有买LCD屏;遇到一个12864的看起来不错,但太贵,要91大元。最后买了一个手机上的触摸屏。有四根线,但卖主也不懂这是不是通用的四线电阻式触摸屏(她只说随便找个屏幕大小一样的手机就能用;但问题是我并非要用在手机上啊)。不过买错了也无所谓啦,反正就花5块钱,比空手而归好。

下周得赶紧确定方案开始做实物了,时间不多,还不知道能做出什么样的呢。现在我觉得做出笔段式显示的可能性比较大,因公司有现成的屏幕;而做点阵的够呛,显示模块难以获得。

7月28日,周三:

今天终于把PCB板图交上去了,等待硬件出来之前可以专心写程序了。填过需要买的新芯片ADS7846的申请单和外包做板的申请单,上边说要等一周左右才能拿到PCB版,在这期间我争取把程序写好,等硬件到手之后调试通过。

最后还是决定用78F0361自带的驱动模块来驱动笔段式LCD,因为东西是现成的。布线花了两天的时间,布了一个庞大复杂的双面板。开始写程序的时候发现,原来单片机自带的LCD驱动模块那么不好使!它所谓自带,其实只是把一个LCD驱动模块与单片机封装在一起,之间以IIC(Inter-Integrated Circuit,一种两线式串行总线)协议进行通信而已。写程序的时候还要自己用IIC协议来读写LCD驱动的控制和笔段寄存器。这意味着我必须继SPI之后接触一种新的串口通信。程序的工作量比预想的要复杂,但好在写程序便于熬夜,实在不行就重蹈一次电设的覆辙。希望最后能成功地实现简单的触控显示。

此外,今天研发部发生了一件喜事和一件悲剧。喜事是一人要结婚了,到处发糖吃;悲剧是今天似乎发生了一起矛盾,一个人把东西摔了,把全研发部都震惊了。