相信大家之前都撸了不少一元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的面积很小,便是一个正常蓝牙模块大小+天线+排针占用的面积
30mm16mm
没有用上的引脚全部引出,个中包括完全的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
本文来源:数码之家