之前大家都疯狂撸了pos机,但是大部分人都是拆了电池然后吃灰,但是也有部分坛友利用起了单片机。现在玩的比较多的是stm/gd32f103系列的,而也有另外几款单片机,用的是stm32f401ccu6,主要是一些音频机(如飞钱)和帐帐通之类的,这种单片机其实性能更好,但是因为封装比较蛋疼,没风枪玩不不了,而且这款单片机因为比较小众,玩的人不多,所以网上资料也不多,更是增加了他被堆灰的可能性。但是,今天我给大家带来两种思路,不用怕没有各种link下载器,不用怕没有usb转串口模块,不用怕不会编程,焊工不好不要紧,嫌飞线麻烦,引脚复杂的的这次不用飞,只有你买了这款pos机,有一台电脑,其他的通通可以不用。 首先准备: 1、pos机一台,核心是stm32f401ccu6 2、usb数据线一根,ps:这款pos机配的usb线是带数据的,可以用,不用另准备 3、选配,非必需:烙铁一把 软件方面: 1、keil-uVision5-mdk(下载安装和谐注册问题自行解决,百度一搜教程一大把) 2、STM32CubeMX软件,可以去官网下载也可以百度一大把 3、STSW-STM32080软件(stdfuse),下载:http://www.stmcu.org/document/detail/index/id-215480 行,准备好了,我们正式开始。 先分析硬件,我们需要把芯片的boot0拉高,其他接口均不用管,以飞钱pos机为例演示 拆机演示贴: 拆个和之前拆的不一样的飞钱音频pos机,价值不低但是可玩性不高,有stm32哦|http://bbs.mydigit.cn/read.php?tid=1560033 账帐通的看这里(我没有这款),这位坛友写得很好: http://bbs.mydigit.cn/read.php?tid=1599594 http://bbs.mydigit.cn/read.php?tid=1588699 boot0接口在晶振旁边,如图所示红圈的地方 那有两个焊盘,都是设置boot用的,原始的状态是下面的焊盘接了10k的电阻到地 ![]() ,但在下载的时候我们需要把他上拉到vcc,就可以想这样,吧电阻移到上面 ![]() 但是这样移动来移动去的是不是太麻烦,每次下载都要先移到vcc,下载完又移动回来,烙铁一直开着太麻烦 所以我搞了根线, ![]() 在另外一头焊了个排针,排针一边接vcc,一边接刚才的焊盘,要用的时候接上短路帽就好 ![]() 热熔胶增加强度 ![]() 没有烙铁的同学,或者不会用的同学,可以在下载前用金属物,比如镊子,鳄鱼夹吧刚才提到的焊盘短接 也就是图中红圈里没有焊电阻的焊盘,靠晶振的那个焊盘 ![]() ,插上usb线到电脑就可以取下金属物 好的硬件改造已完成,其他地方,包括串口,sw口均不用管 然后打开我们之前安装好的软件STM32CubeMX ![]() 依次点击左上角菜单,help-install new libraries,进入一下界面 寻找并选中图中选项(stm32f4最新版),单击右下角install now开始下载附件包,如果你对自己网速自信的话,可以这样下载并安装。 如果网速不行的,自行百度,有不少上传到网盘的,下载好后选择左下角 from local安装 ![]() 下载完成后,回到这界面点new project选项 ![]() 弹出选项,找到如图的芯片,就是pos机上的单片机型号 ![]() 点ok后,加入主界面 ![]() 左侧点击rcc选项栏,设置如图,意思是选用外部高速晶振 ![]() 然后在图片上点击引脚pb7和pb4,选择gpio_output选项 ![]() 这两个io就是pos机上的led灯控制引脚,选完后引脚变绿 ![]() 点击左上选项卡进入第二选项,时钟树设置 ![]() 调整参数如下,最好不要差太多 ![]() 然后选择第三个选项 ![]() 图放不下了,楼下继续,稍安勿躁,这段等待时间可以先去下载上面说的软件了(手动卖萌) 其他选项不用管,软件左侧的黄色警告无视 之选gpio选项,双击进入 ![]() 双击后这样 ![]() 点击每个引脚,下面的配置都设置成这样,ok ![]() 软件左上方,点红圈圈住的齿轮状图标 ![]() 生成工程,名字自己写,保存路径什么的不用说吧,下面的ide根据自己的选,我让你们下载的的是keil-mdk v5版本,其他的也行,选对就好 ![]() 点ok后,完工,关闭软件 这款软件还不会玩的,这里有更详细的教程:http://www.openedv.com/thread-46381-1-1.html 打开刚才的文件保存路径,在mdk-arm文件夹下,用keil打开工程 ![]() 不用看代码是啥,不用管,第一步选魔术棒按钮 ![]() 选项卡调到output,勾选红圈内选项,输出hex ![]() 第二步,点全部编译按钮,编译完成关闭keil,代码看都不用看一眼,更不用写 ![]() 这时打开第三个软件的安装目录,在bin文件夹下,我们用到红圈的两个软件 ![]() 先开第一个,选项默认,点确定 ![]() 点击按钮,选择刚才keil中生成的hex文件,hex在 工程文件夹/mdk-aarm/工程名 文件夹下面 点击generate按钮,保存dfu文件后关闭软件 ![]() 打开第二个软件 #p#分页标题#e# ![]() 这时回到pos机,吧boot0短接到vcc,也就是我们刚才改造好的方法,然后通过usb接口用数据线吧pos机接入到电脑 ![]() 软件检测到了pos芯片的接入,选择红圈按钮,打开刚才保存的dfu文件 ![]() 在打开文件瞬间,已经被下载到pos机了,时间是00;00;00,闪电般,比串口下载或者stlink下载都快 ![]() 拔下pos机,取下短接帽,让boot0恢复到低电平,再次上电 ![]() 灯亮了,因为两个灯是连体的,其实都亮了,只是不明显 看吧,整个过程没有任何技术难度,教程自认为很详细,只是操作有点繁琐,我认为只有有心,都能吊打这款pos机单片机 说几点额外的话 1、如果显示下载失败什么的,可以尝试先解锁单片机 就是点右边的按钮,upgrade,会提示单片机已经被锁住,一路确定下去,单片机就被解锁了 ![]() 2、原理是usb的dfu升级功能,不是原来pos机固件里面的,是单片机的官方bootloader内置的高级玩意,也就是说在boot0拉高后,可以通过除了串口,usb等等有用的方法下载,具体可以看数据手册。不过这个玩法只支持stm32f4系列,心里想着stm32f103系列的也这样的,两个选择:自己移植,官方提供了例程,改改可用;另外一种方法比较推荐,洗洗睡吧,该用串口下载还是用串口吧,有stlink的老老实实的用吧。 原来pos机的固件可以dfu更新但是不是通过这种方法,因为不用拉boot0就能下,是开发者自己写的。 3、简单学习单片机,要不 就成体系学习,或者像我这样走捷径,都行,学一点技能,能提升b格不少,以后不会在拆机乐园发个帖又说:哎,这次撸的pos机电池小了,亏了;或者在创意diy发:拆了电池改台灯,改万用表,改手电,剩余的墙角堆灰或者垃圾桶。而是一个贴出来,今天我用pos机的单片机做了个什么什么玩意,你看,实用吧,一下子b格提升多少啊。 之前还看到那带12864屏幕和stm2f2xx系列单片机的按键pos机改个小灯的贴,看这样暴露天珍,心疼啊,好想说,楼主你不要付邮送我把,至少能拿来搞个计算器吧,高级点,带蓝牙功能的计算器。 我发的相关研究pos的帖子,欢迎围观,欢迎探讨进步。另外我爱单片机板块也有不少大神在研究,大家可以看看 飞线大法好 - 利用一元米刷pos机内部单片机|http://bbs.mydigit.cn/read.php?tid=1547587 交重磅作业-成功利用一元即付宝pos刷卡器蓝牙模块bm77|http://bbs.mydigit.cn/read.php?tid=1567205 (这个是精品贴,推荐)贫民级的法拉利--历时两月从零开始精心自制stm32开发板(附翔实资料)重发|http://bbs.mydigit.cn/read.php?tid=1578422 拆个目前价值最高,用料最足的蓝牙pos刷卡机|http://bbs.mydigit.cn/read.php?tid=1581935 关于东芝蓝牙TC35661模块初始化的一点简单探索|http://bbs.mydigit.cn/read.php?tid=1595508 【征求意见】贫民自制stm32开发板v2.0团购项目--第一帖|http://bbs.mydigit.cn/read.php?tid=1625258 无关内容:单片机的一个精品贴,昨天被斑竹加的 谈谈stc15系列单片机adc第九通道BandGap(内部带隙电压基准)使用问题|http://bbs.mydigit.cn/read.php?tid=1635508 stm32f401的一些例程研究 谈谈stc15系列单片机adc第九通道BandGap(内部带隙电压基准)使用问题|http://bbs.mydigit.cn/read.php?tid=1635508 最后,欢迎m币砸死 5月12日更新 感谢@cao57508坛友的验证和提出的一些细节 详情看:验证一根数据线吊打POS机的一些感悟|http://bbs.mydigit.cn/read.php?tid=1655229&ds=1 1、可以用于这个实验的POS机,有飞钱支付蓝牙及音频版,账账通,火付通,蓝天星等。 2、实验证明无需焊下任何电阻,只需在BOOT0(STM32F401的44脚)的位置和VDD之间焊上一个跳线引脚或拨动开关。见图。 3、软件DFUSEDOME 的使用上,应当先选*.dfu文件,虽然显示文件已经引入了,事实上并没有引入,而是需要在此基础上按Upgrade 键,直到提示成功载入程序才行。[color=#ff0000 ]实验证明多个版本的POS机无论是否解锁都需要这个步骤。 4、本次实验的USB引脚是PA11和PA12(STM32F401的32和33脚) ,应当是利用了这对管脚的OTG-FS_DM及OTG-FS_DP功能见图。 ![]() |