pos机 电脑配置

pos机 电脑配置

本来半年前就做好的东西了,因为各种各样的原因拖到现在才得闲发出来,算是让大伙久等了

相信大家之前都撸了不少一元pos机吧。

上面有款蓝牙模块tc35661,因为需要协议栈才能使用,所以困扰了不少人,大家基本的处理方法都是弃之堆灰。

直到论坛大神@yht7891984 给出了初始化和协议转接的方法,见:

stm32驱动蓝牙pos机里面的蓝牙模块 tc35661:http://bbs.mydigit.cn/read.php?tid=1682908

于是这个芯片得以能玩转。然而因为需要一些编程水平,所以大家的选择还是继续让这个模块继续堆灰。

于是我就有了个想法,做个透传模块,于是有了这个帖子:

不用拆芯片,不用调程序,直接在pos机板上玩TC35661蓝牙模块|http://bbs.mydigit.cn/read.php?tid=1690088

但是这样离方便使用,可以零基础玩转还有一些距离,为了达到最终完美,于是就有了本贴

首先需要找一款有两个串口的MCU,而且要体积小,成本低,于是选择了efm32tg110这个芯片(具体为什么成本低,楼下细说)

这款芯片的手册截图

arm cortex m3内核 运行在32mhz(强大运算足够处理大数据量下的协议栈)

32k flash+4kram

两个串口(这是最关键的)

有一路12位dac,两路12位adc(麻雀虽小,五脏俱全),方便和蓝牙搭配做便携式小设备

体积小,qfn封装

功耗低

等等

原理图

pcb

pcb的面积很小,就是一个正常蓝牙模块大小+天线+排针占用的面积

30mm*16mm

没有用上的引脚全部引出,其中包括完整的dac和adc,这样的好处是,以后如果有余力开发,可以直接用这个最小蓝牙板做一个无线的测量仪器,或者无线小控制器

打好的pcb

焊接完成的模块正面

焊接完成的模块背面

上电以后,可以在手机或者带蓝牙的电脑上搜搜到蓝牙模块 默认名称是 POSYSTORAGE_TC35661

设备地址码是唯一的,防止冲突(使用了单片机的唯一uid)

连接成功,正常通讯中

电脑通过串口发送mydigit

手机通过蓝牙发送2545889167 posystorage

正常联机的各种状态指示信息

第一行提示当前波特率

第二行提示已经初始化成功啦

第三行提示蓝牙已连接

第四号提示蓝牙已断开

板子正面有个LED

在初始化过程中快速闪烁。当初始化成功后,转为慢闪

当连接后,变成常亮。断开连接则为慢闪

板子有6个排针孔。

vcc和gnd是电源,不多说

rx tx为透传串口

swd和sck为板载mcu调试和程序下载接口。也可做普通io使用

BT指令的详细解释

为了方便使用,实现一键零基础操作,我就搞了个BT指令集(参考市面上的某些无线模块的AT指令集)。这样一些简单的配置,比如模块改名或者更改波特率什么的就不需要程序编译程序,直接BT指令操作就行。

BT指令的使用方法:首先连接串口,给蓝牙模块上电,等待初始化完成(指示灯由快闪变为慢闪为初始化成功,或者串口提示初始化成功)

不用连接蓝牙(即在非连接状态下)

输入BT和BT+xxx指令来实现操作。

注意,所有的指令均不需要换行,不需要加回车

比如说,输入BT

回复BT OK!

表示串口正常,指令正确,工作正常

输入BT_ABOUT 显示关于信息,版本信息,设备mac,固件版本,作者信息

1.0版本的消息

1.1版本的消息

输入BT_LIST

将罗列 BT指令集支持的所有指令

BT_MSG_ON打开提示信息

如果打开了提示信息,会提示初始化状态,是否联机得到信息

BT_MSG_OFF关闭提示信息

所有提示信息均不显示

这样的好处是,如果是外接MCU使用,就可以真正透传消息,而不受提示信息的干扰

BT_RES_FAC 恢复原始出厂状态,没啥好讲的

蓝牙名称恢复TC35661_POSYSTORAGE

波特率恢复115200

默认消息提示打开

BT_HELP 帮助信息,提示有些BT指令怎么使用,比如说,怎么设置串口波特率和结束符,奇偶校验什么的

BT_RENAME 更改蓝牙的名称。更改后下次上电生效

BT_UART_BPS 更改波特率。更改后下次上电生效

如果输入了错误指令,会这样提示。比如说输了小写什么的

开始讲述制作心路历程

之前楼上不是说了,一直在苦苦寻觅 “两个串口,而且要体积小,成本低的MCU”

找了一久,突然一日在某论坛商家看见一款拆机的板子,价格便宜(为了避免打广告嫌疑,就不说商家明和价格了)

卖家的图

这个板子,上面有一个似MCU的芯片,没有主丝印,数了下24脚,封装应该是QFN24

然后就开始脑洞了

以下几个条件判断出了大概80%的概率是efm32的MCU

如图

1、封装是QFN24,能对应上

2、芯片侧面所有脚都是io或者电源,没有gnd脚,说明gnd只有中间大焊盘有

3、电源引脚能对上三,其中两个104的电容颜色是一样的,另外一个是105,不是一个材质(颜色有微差异)

这样确定下来可能有三款芯片

efm32tg110

efm32zg110

和efm32hg110

三款是属于不同的产品系列线,但是引脚和封装都是一样的,看外观无法辨别。

犹豫许久,决定买来碰碰运气

因为便宜嘛,买少了邮费不划算,所以买了一小包

体积很小的pos机(又是pos机,摔~~~~

拆开,第一个拆的有点失败哈,太暴力了,不过主要元件没事

各部分拆开对照图

22合一友情上镜

后面的电池基本没电了

板子正面

板子背面

小6脚芯片特写。到现在我也不知道这是啥功能

反正不是猪脚,不重要,不管了

右上角有个双运放

注意到板子是4年前的老东西了,怪不得电池都没电了

继续排除走线,发现和efm32吻合度99%,所有电源脚都能对上,切引出来调试接口,就是图上上锡的那两个焊盘

掏出自制jlink(做个小巧漂亮的jlink调试器|http://bbs.mydigit.cn/read.php?tid=2037182)

按手册接线开始测试

配套好simplicity和jlink软件

一联机,果然大惊喜,啊hhhhhh

赚翻了赚翻了

果然赌对了

这样看不出来是吧,我圈圈重点

看到没 energy micro

energy micro被silion lab收购

这尼玛不就是efm32 哈哈哈哈哈哈

图上说芯片被锁住了,那就尝试解锁 使用unnlock efm32gxxxx指令

解锁成功 so easy

再次联机

看到没有 arm cortex m3内核,这样果断确定是efm32tg110

因为只有他是cortex m3内核,另外两个是cortex m0内核

继续来确定下芯片容量

使用jflash

先选该系列最大容量,尝试能不能读写成功

显然是可以的

没问题~

最终确定型号EFM32TG110F32

得到整个“赌”芯片中最好的结局,三个系列中配置最好的mcu,通型号中储存空间最大的,哈哈哈

继续玩,焊接个led上去,尝试成功点灯

吧外壳都拆掉,元件进行分拣,方便保存

这些是不要的垃圾

先说说怎么靠使用Simplicity Studio 来进行快速的,简单的,图形化傻瓜配置的点灯实验,以方便快速测试

首先下载安装并打开Simplicity Studio,新建工程

选择本贴的猪脚efm32tg110f32

选择Simplicity configurator program,图形化配置工程

名字随便写

选择led引脚

配置为推挽

main函数很简单

很简单,是不是

复制代码

  • #include “em_device.h”

  • #include “em_chip.h”

  • int main(void)

  • {

  • int i;

  • CHIP_Init();

  • enter_DefaultMode_from_RESET();

  • while (1)

  • {

  • for(i = 0; i < 200000; i++);//做延时作用

  • GPIO_PinOutToggle(gpioPortC, 15);//翻转LED

  • }

  • }

  • 然后,编译下载,就可以看见led开始卖力的闪烁了

    好了,说是制作心路历程,现在说的有点跑题了,拉回来哈

    拿出之前玩efm32tg剩下的转接板。反正引脚都一样,直接往上怼呗

    这里吐槽下垃圾板厂的v割工,都吧丝印割没了你知道么。精度这么差,哎

    拆下芯片

    焊接过程略过不表

    qfn总体不怎么好焊接,需要耐心和细心

    背面全是容阻元件。这MCU电源脚奇多

    日常成功点灯

    这里放下这个小核心板的原理图和pcb截图

    背面用丝印画了个mini小壁虎,结果实物出来,这都啥玩意啊?四不像?

    继续哈,拆完芯片的板子不能浪费

    来跑下走线,方便在板玩耍

    跑走线第一步,日常先上锉刀嘛

    最终标注出所有io的走线结果,这里还需要感谢坛友 @shi988

    好了,一个破板子研究了半天,终于要步入正题了

    开始研究蓝牙透传

    初期测试是这样的

    调通透传程序以后

    画了1.0版本的转接板

    打样归来如图

    开始焊接蓝牙转接板

    拆下芯片+转接板背面

    tc35661模块来自某pos板子

    焊接过程略过不表

    焊完才发现,疏忽大意阴沟里面翻船了

    引脚接错了,只能靠飞线补救了

    好吧,修改好再打一版,哎

    v1.1来了

    这次就不用飞线了嘛,舒服

    可以用直排针这样焊,能比弯排针显著减小体积,不过也牺牲了些许牢固程度

    因为板子位置有限。部分元件标注了参数值

    剩下没标的,都是104电容 100nF

    图中红圈圈中

    板子上的元件,除了106电容,基本都可以从原芯片的小板子上拆到

    为了保护元件,建议套个热缩管

    左边的板子是拆完有用元件后的样子

    最后来个大合影

    源代码,固件和原理图需至原帖中获取:http://bbs.mydigit.cn/read.php?tid=2281216

    谢谢观看!

    浏览更多精彩内容请登录数码之家网站

    技术交流请联系原作者

    作者:2545889167

    本文来源:数码之家

    本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。