8096|35

1453

帖子

18

TA的资源

纯净的硅(高级)

楼主
 

【DIY手机】sacq:我的手机我做主(最新更新到11楼) [复制链接]

 
本帖最后由 sacq 于 2014-5-26 19:22 编辑

我的手机我做主(1):开篇啦

考虑了好些天,看过了一些资料,现在终于开篇啦。

方案:STM32F429I开发板 + GSM
这在早先的讨论帖子中就已经表达过的,现在更加坚定了,当时的意见可参见下贴中的7楼和9楼:
https://bbs.eeworld.com.cn/forum. ... ght=DIY%CA%D6%BB%FA

材料:

STM32F429I开发板——这在论坛活动中枪到一块,并已在使用 ;

GSM模块——SIM900A模块带PCB及所有引脚插针引出(已订购);

耳机及话筒、电源(2A)、锂电池(旧的)。

准备实现基本功能:

(1)拨打电话
(2)发送短信(如可能,就先来英文数字的吧)

问题:
玩手机,确实是梦寐以求,却从未动手,主要感觉是无从下手。
现在好多了,有GSM模块,价格可以接受。但毕竟没接触过,后面问题可能不可预料。
STM32F429I开发板上带有LCD触摸屏,可作为显示和输入,在编程方面,触摸屏的数字输入等需要磨合一段时间,算作难点之一吧。
对了GSM模块是通过串口通讯来控制的,STM32F429I开发板的串口开发软件有“先天不足”,好在已有大神解决了,但也需要自己再做些工作。

基本功能实现也许会很快,但完善起来需要更多的时间。

这次我的DIY手机,并不是实用的手机,先是学习、了解为主要目的,而后才会在这个基础上可能会有一点有趣的应用。

已在用的开发板:

已定购的模块:




重要备忘,串口问题必看!
qinkaiabc  《关于STM32F429i所使用的V1.3版本固件库的问题修正即串口乱码问题》
https://bbs.eeworld.com.cn/forum. ... ighlight=STM32F429I

其余各篇在楼下 ——
我的手机我做主(2):SIM900A模块的简单测试             10楼

我的手机我做主(3):准备工作之——串口及触摸屏      11楼








最新回复

楼主高人啊 收不收徒弟啊  详情 回复 发表于 2014-8-27 16:15

赞赏

1

查看全部赞赏

点赞 关注(1)
 

回复
举报

1119

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
过来看看~~~
 
 

回复

9176

帖子

5

TA的资源

管理员

板凳
 
支持楼主来了
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

1059

帖子

0

TA的资源

纯净的硅(高级)

4
 
其实我一直想做一块板子集成sim900,MCU和板载天线,这种终端在物联网快速发展的时代应该是有点前途的.

楼主你上一下sim900背面的PCB呗...
个人签名博客:http://www.ysgh.net/
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

5
 
astwyg 发表于 2014-5-21 16:36
其实我一直想做一块板子集成sim900,MCU和板载天线,这种终端在物联网快速发展的时代应该是有点前途的.

楼 ...


背面——PCB内置天线,SIM卡座,耳机/话筒插座位
个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

6
 

感谢管管捧场

个人签名http://weibo.com/u/1391449055
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

7
 
我们在一家买的模块,呵呵
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

8
 
shower.xu 发表于 2014-5-22 14:32
我们在一家买的模块,呵呵

缘分呀
个人签名http://weibo.com/u/1391449055
 
 
 

回复

1059

帖子

0

TA的资源

纯净的硅(高级)

9
 
sacq 发表于 2014-5-22 10:57
背面——PCB内置天线,SIM卡座,耳机/话筒插座位

thx

个人签名博客:http://www.ysgh.net/
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

10
 
本帖最后由 sacq 于 2014-5-23 15:29 编辑

我的手机我做主(2):SIM900A模块的简单测试

SIM900A模块收到了,借助PC机做一些测试,同时也可以对模块有更多的感性认识。




做一些准备工作:

把模块的电源线引出,



准备个电源(5V 2.5A)



找出MSP430开发板,用于客串USB232转换

串口线接法:

MSP430板      SIM9001板
RXD(P1.1) --- TXD (9)
TXD(P1.2) --- RXD (10)
GND       --- GND





电话卡可以先装好

找个串口助手之类的软件,

测试:
对照AT命令集,选择几个感兴趣的命令试一试





用模块演示测试程序也不错,也可在其中学习点东西





在拨打10086时,耳机接在 SPKP,GND 间,可以听到声音;
耳机接在 SPKP,SPKN 间,听到的声音似更佳,音量略大点,杂音小些。


个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

11
 

RE: 【DIY手机】sacq:我的手机我做主(更新到了11楼)

本帖最后由 sacq 于 2014-5-28 17:13 编辑

(持续更新中,主贴标题无法更改,最新更新见最低楼!)

我的手机我做主(3):准备工作之——串口及触摸屏
串口

SIM900A模块是通过串口接受AT指令和发送执行结果的,作为主控制的STM32F429I开发板的串口功能必须先搞定!




按说,串口并不是有多神秘。略显遗憾的是,这块STM32F429I开发板的现有的开发软件对串口的支持有点“先天不足”,在开发软件包(STM32F429I-Discovery_FW_V1.0.1)中也未找到有用的。

后来在官网找到适合的开发例程包(STM32F4xx_DSP_StdPeriph_Lib_V1.2.0),借用里面有USART部分,要是能跑通其中的 USART_Printf 例程,就算串口好了一大半了。

通过简单的移植,USART_Printf 可以从串口输出数据,可就是乱码。这就开始了一通无效的折腾,包括各种的波特率改变(特别是降低波特率)。

在一时着急之中,慢慢地隐约一想论坛里有人说过STM32F429I开发板的串口的事,于是找到该贴(具体地址链接在1楼),
照着该贴的指示办,OK了!(abc,大神也~ 大赞一个!)

实现的部分关键点可参见本篇最后的记录。

触摸屏

方案中准备用触摸屏作为输入,搞定“触摸”是必须的!
Touch_Panel 是官方提供的唯一的开发例程。
仿照例程其中语句,写些字,画个线,热热身。

在例程中同时也看到,程序中这些变量都是很有价值的,在后面的触摸程序开发中无疑是很有用处的:
TP_State->TouchDetected    (触摸?)
TP_State->Y                (位置X)  
TP_State->Y                (位置Y)

这个例程用起来还比较满意。
好了,就它啦,把Touch_Panel中全部代码拷贝到模板,并添加在现在看来是与之不相干的“串口”部分代码,特别要在串口初试化后,执行一次printf,测试一下。这些都是为下一步的计划做好准备。



部分记录

添加库文件 ~uart.c  (见下图中)




修改(在文件内增添)

stm32f429i_discovery.c 中增加串口部分的定义(参照ST某款评估板的)
stm32f429i_discovery.h 也相应添加



stm32f4xx.h 按ABC大神所说的修改 (下图)



其它修改(在编译时提示出错,视情再处理)


在修改好,编译无错后,下载执行后应该会在串口有输出。

串口在在这里:
TXD  (GPIOA9)
RXD  (GPIOA10)


用“串口助手”,仔细观察,发现一个以前没有注意到的小秘密......


......复位后,串口发送的首字节消失了......




个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

12
 

RE: 【DIY手机】sacq:我的手机我做主(4)

本帖最后由 sacq 于 2014-5-28 17:06 编辑

我的手机我做主(4):我的触摸拨号界面

看到一款手机的拨号界面比较简洁 (下图),于是乎也想照着来一份




下图就是我的触摸拨号界面在“进化”中的2个:





还在进化中。


有了大致的界面后,下一步就是把触摸的数字(位置XY)“辨识”为ASCII码,
Touch_Panel例程中那种辨识方法还是先歇下,看多了头晕。(下图)



静下心来,一行代码,可以把触摸的1-9变为相应的ASCII码,其它的个别再处理:


aTextB = 0x30 + 3* (char)( (TP_State->Y -80 ) / 60  ) + (char)( TP_State->X / 80 +1) ;  
(.......可用指甲刮开......)

要点:
通过触摸,得到一串数字;
在“拨号”时,能把带有这串数字的电话号码,以AT命令格式,通过串口发出;
程序的调试过程是反复修改完善功能(比如加有“退位修改”功能),打补丁修补缺陷;
用串口助手测试过后,没有大问题,就可接上SIM900A模块实战了。


下一贴,不值得期待吗?

个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

13
 

RE: 【DIY手机】sacq:我的手机我做主(5)

我的手机我做主(5):真的开始拨号啦


拨号,10086免费的,但一定会涉及到“二次拨号”问题。
关于二次拨号,考虑了好些日子,昨在下班途中有了灵感,今早一试,基本可行。


拨号界面的“场地”分配:
如前贴所见的界面,再经小改进,0-9及*,#都已分配好了,
另留有2块触摸地块,分别用于“拨号/挂机”及“修改”
位于显示号码处的左侧半边及右侧半边。




出场:
“猪脚”——SIM900A模块、STM32F429I
配角——耳机、电源、各种连线
友情客串——MSP430G2板







以SIM900A模块为中心,接线安排:

9:TXD  --->  MSP430G2 (RXD) P1.1
10:RXD <---  STM32F429I PA9 (TXD)
17: GND  ----    STM32F429I GND
21,22: 耳机

29:GND ---   MSP430G2 GND

电源:5V


以上准备好了,这就开始“拨号”----

主要情节:
SIM900A模块接收由STM32F429I发出的指令
在PC上,通过串口助手,观测SIM900A模块从串口返回信息

热身:
待SIM900A模块上电正常后,给个指令“AT”,返回“OK”;


剧情1:
拨打10086
AT命令:"ATD10086;\r"

接通后,耳机传来提示语音,需要二次拨号

通过二次拨号,继续“调戏”10086
AT命令:“AT+VTS=N\r” (其中N=0~9,*,#)

挂机
AT命令:"ATH\r"

部分截图:





(按下了“拨号”)



(二次拨号,按下了“1”)



(又按下了一个“1”)


剧情2:

拨打自己的另一个电话,那边电话响起,就不接,这边耳机里听到是铃声(歌曲)。
挂机。



收工。
下步准备MIC。



个人签名http://weibo.com/u/1391449055
 
 
 

回复

15

帖子

3

TA的资源

一粒金砂(中级)

14
 
太牛了,膜拜啊
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

15
 

我的手机我做主(6) :来电话了,是接还是不接

一切出场的,包括连线,界面同前次。


上电开机后,等待自己拨打的电话。
来电话了,耳机里传出“铃声”(类似于“滴-嘟-”的声音),串口出现“RING”等消息。


要接电话,AT命令:“ATA\r” (应答)
不接电话:AT命令:“ATH\r” (挂机,前面用过)


还要在现有的触摸界面上实现这两个功能,






初定:触摸左边是“应答”(已有拨号、挂机功能)
触摸右边是“挂机”(已有修改功能)


一个触摸键实现多个功能,程序上容易出乱子。
小心翼翼选好标志,在拨号的界面上打个小补丁,为的是添加2个新的命令。


程序下载,运行,等电话。


电话来了,先来个拒绝,(AT命令:ATH),拨打方话筒里的拨号音变为“你拨打的电话正在通话中”;


电话又来了,这回接听(AT命令:ATA);接通后,拨打方话筒里听到的是:一片沙沙的噪声。
(下次可以再试,接听方的耳机里应该可以听到拨打方特意播放的音乐什么的)


逻辑大概是通了,程序估计还有BUG,还要细调整;
噪声啊,想直接用现有模块通话,恐怕有点难。

个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

16
 
我的手机我做主(7) :总的界面
随着功能的增加,光在一个拨号界面显然是不够的,先做个总界面吧。
可以直接在总界面处选择 :接听电话/挂断电话,准备拨打电话,准备发消息等。
也减轻前面所说的在拨号界面接听电话的潜在的BUG。






这只是界面出来了,接下来后面工作量还是有的。
个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

17
 
我的手机我做主(8):总界面里的秘密

其实,就一“菜单”里面没什么太多的奥秘。
按照“拨号界面”的办法,划出8个区域(编号1-8),目前“征用”了其中的4块,编号为:1,4,5,8,分别用于:打电话、发短信、接电话、挂机。



触摸到相应的区域,就进入相关的程序,执行对应的功能。
对接电话、挂机2项,相对简单,执行对应的AT命令(ATA,ATH)即可。
如果“打电话”则进入“拨号界面”。
以上基本调通了。

现还缺“短信”部分,择日继续,同时还有些不安分的想法,到时再呈现。

在界面调试过程中,发现了一个BUG,现已消除,自己的低级错误,记录再此(本用“与 &&” 误用了“或 ||”)。
也确认了现有触摸屏程序,确实存在X位置有时出现异常的问题(参照触摸板例程的相关语句)。不知道是硬件问题还是软件问题,反正现在打个补丁能使用。



个人签名http://weibo.com/u/1391449055
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

18
 

RE: 【DIY手机】sacq:我的手机我做主(9)


我的手机我做主(9):实战“来电显示”

在进程(6)里已经提到了:
来电话时,除了耳机里传出“铃声”外,串口出现“RING”等信息,在信息里包括了来电的电话号码,如下图:




准备把这个来电号码提取出来予以显示。

准备:

1)串口的接收部分,主要软件部分的修补,严重参照例程USART_HyperTerminalInterrupt,采用中断。发送部分不改
动(不采用中断,参考例程USART_Printf)。
例程中的USART2_IRQHandler,移植过来后要改成USART1_IRQHandler。

2)来电号码的提取程序,应该不算复杂呀,头脑一时短路,磨叽了大半天才勉强搞出来。
要点:来电号码在RING后的第1组的双引号之间。

3)连线:
F4:PA9 (TXD) --> SIM900A:10(RXD)   (黄线)
F4:PA10(RXD) <-- SIM900A: 9(TXD)   (橙线)
         GND  --- GND               (紫线)  


经过奋战,基本成功。拨个电话留个影:




换个电话再打个:



换个电信的号码再打个:



基本搞定了。

能够“抓”到来电号码,充分利用这个功能,应用就会比较有趣了,比如:本电话只接听哪些个号码的电话,其它号码
拒接(电话的白名单功能?);或者,某些电话号码的来电绝对不接(黑名单功能?)。

备忘:串口例程包(5个)。只找到这个比较接近的,经过移植应该可以用的。移植要小心,为防滥用误事,提高门槛
,整个高价。如找到更合适的串口例程,再来个免费的也不迟。
(文件名 USART.rar)
USART.rar (78.13 KB, 下载次数: 0, 售价: 5 分芯积分)





USART.rar

78.13 KB, 下载次数: 10

个人签名http://weibo.com/u/1391449055
 
 
 

回复

9176

帖子

5

TA的资源

管理员

19
 
这是要获奖的节奏啊
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

20
 
eric_wang 发表于 2014-6-17 13:42
这是要获奖的节奏啊


还在继续努力中,马上就要:实战“黑白名单”,还有短信还想弄呢。
开搞了,有点刹不住;能做到什么程度,还要看运气啦。
奖?那是你考虑的事,不是俺唯一的目标。
个人签名http://weibo.com/u/1391449055
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表