首页 > IT数码 > GPS授时时钟
2015
01-29

GPS授时时钟

 

看到最近有些人在弄GPS时钟,于是手痒痒也做个来玩玩。

    利用中午午休的一些零星时间制作了一款1.8寸GPS授时时钟,现将自己的制作过程和经验教训写下来和大家分享和共同学习。
    本时钟选用了价格便宜的Ublox LEA-4A GPS模块,还有GPS天线。

  



   本作一物多用的原则,制作前考虑到使用4个1.8寸数码管共阳红(外型尺寸38x56MM),使用5V电源不能够驱动点亮数码管,需要9V至12V的电源,但又不想使用专用的电源接口和电源,考虑到通用性,固将电源接口采用MicroUSB接口(也就是平时智能手机常用的充电和数据线接口),电源也可使用手机的充电电源,方便灵活又不需专门配备电源,由于Ublox LEA系列的GPS模块自带有USB接口,即可将模块中的USB引脚接入到这个MicroUSB电源接口上,这样就可以将本时钟作为具有USB接口的外部GPS模块和电脑PC想连接,使用专门的GPS驱动和软件,就可以在PC机上使用定位导航功能了,比如谷歌地球、高明的地图软件。另外可以将本时钟添加一些常用的单元部分进行功能扩展,让其成为一个多用途的1.8寸显示的C51单片机实验和学习板,增加了可玩性。

加入的单元部分有:
1.    C51-ISP编程接口(可以通过该接口方便的编程单片机程序);
2.    DS18B20温度集成(可以通过该探头获取环境温度)
3.    4个按键(可以根据需要编写具有按键功能的时钟)
4.    VS1838红外接收头(可以通过编程加入红外遥控功能)
5.    24C02存储芯片(可以编写一些具有存储功能的程序)
6.    DS1302时钟芯片(可以编写时钟程序)
7.    蜂鸣器(可以编写闹钟和一些声响的程序)
8.    XL6009升压模块(可以通过电位器调节数码管的亮度)
9.  GPS模块的MicroUSB接口(可以通过手机数据线作为电源或和PC机联机成为外部GPS模块)


电路图设计如下:

PCB板背面图
    


   PCB板正面图
   




   原理图和PCB板图均使用Altium Designer 14软件进行设计,在使用Altium Designer14设计时也是不断学习的一个过程,元件图库、PCB元件封装库、3D元件库、布局、排版等,有时一个元件的绘制都会花去你很多时间,很多元件都是我自己拿着元件测量尺寸和参照网上的封装图来手绘,还是很辛苦的。为了学习,这个PCB板特制作了3D效果图:PCB正面3D








PCB背面3D








PCB部分放大3D








设计好后拿去PCB打样几块,板子收到后,看似做工非常漂亮。





开始焊接第一块样板,焊接完后检查无误后通电测试,接下来就遇到了几个问题:
1.  通过ISP口写入程序后,单片机不运行程序,再次检查焊接没问题后,仔细查看原理图后发现,在设计原理图时忙于考虑各IO口的分配问题却忽略了29脚EA/VPP,将其悬空了,应将29脚接到5V电源上,让单片机执行内部程序。更改后单片机正常运行了。
2.  Q2工作不正常,经检查后发现,在设计时将NPN三极管和PNP三极管都用了相同的PCB封装库PNP,和原理图的NPN封装对应脚不一样,C、E脚刚好相反了,焊下Q2,将其反面安装焊接,问题得到解决。
3.  Q3、Q4、Q5、Q6,这4个位驱动不起作用,由于想省掉一个ULN2003的集成,借用了1.5寸的位驱动用4个3极管,没考虑到使用的是1.8寸的数码管将其位电压已经提高到9V至12V,致使这4个位驱动处于放大状态失去了开关的作用,将这4个位驱动加一级3极管,测试位驱动正常。
4.  由于错误的将购买的GPS天线认为是无源天线,设计的时候按无源天线的线路设计,导致GPS模块无法收到GPS信息,经反复的实验测试和查阅GPS模块参数资料,得知购买的是有源GPS天线,需要给天线加载电源天线才能有放大作用,根据有源天线原理,切断GPS模块12、24、19引脚的接地,将18(VCC_RF)、19(V_ANT)脚连接,使其16(RF_IN)脚天线输入端加载3.3V左右的电压,为有源天线提供电源。经过以上4步修改后接入GPS有源天线发现单片机还是没能正确的接收到需要的信息,将USB线连接到电脑安装驱动和GPS模块测试软件u-center7.0软件进行联机查看,单片机程序是来自于网友编制的,波特率设置为9600(TH1 = 0xFD;   //9600波特率的初值),而GPS模块查看为4800的波特率,通讯协议上不一致,看到LEA-4A资料上说可以修改波特率,在软件中将波特率修改为9600。

这次可以正常收到GPS信息并把时间显示出来了。但是将电源切断后从新加电,又无法收到信息了,再用软件查看模块波特率又回到了4800,也就是说没有保存起,再查看模块相关资料得知LEA-4A模块是ROM经济型产品并无flash存储器,无法保存设置,可以通过改变硬件方式改变波特率,为了减少硬件改动,固将单片机程序修改成波特率4800(TH1 = 0xFA; //4800波特率的初值)来适应模块的默认4800波特率。这下终于成功了。


测试中发现:接收到的日期和时间信息比较快,快时约12秒,慢时半分钟,这个天线摆放的位置和角度有一定关系。该天线下部带有吸铁,可以吸在金属物体上,发现吸在具有大面积金属板上接收到信息时间会缩短,也许是有反射面的缘故吧。


至于连接PC用软件定位和导航这里就不作更多的解释了。


最后完成








上电未接收到GPS卫星信号时,电压5V,电流0.25A





接收到GPS卫星信号并校准显示时间,电压5V,电流0.16A




总结:通过以上5点故障分析,在设计电路时应做到思路清晰,小到每个零件的校对,查看元件满足正常运行的条件,要做到每个元件、模块功能参数熟悉,最好是经过实验仿真后再制作PCB板,有串口通讯协议的应先考虑和确认协议的一致性,尽量少走弯路和犯低级性错。

作者:华城过客
华城过客