嵌入式
    早在大学的时候就买过一套电烙铁。大概二三十块吧。有一个电烙铁、烙铁架、松香、海绵、一小卷焊锡丝。当时也没怎么用过,后来小焊锡丝找不到了。于是又买过3块钱的一小管焊锡。前几年试图在洞洞板上焊接一个51最小系统,焊接的很痛苦。感觉焊锡丝很难溶化,并且化了也不往电路板上沾,都堆在烙铁头上。当时以为是因为操作技术问题。后来由于树莓派、arduino的兴起,很多传感器都有焊接好的最小系统板卖了。只需要杜邦线插一下就能完成连接,焊接这事就放下了。

    前段时间买了一块tm7705,排针没有焊,于是又把尘封很久的设备翻了出来。依然难用,搞了很久也不行,上了助焊剂也毫无作用。思考了一下,既然焊锡丝不好化,是不是烙铁温度不够?于是上京东搞了一个宝工的206焊台,心想这下换了高级设备是不是就可以搞定了。。。买回来后发现依然如故。温度调到350以下焊锡丝不化,400度以上能化但是不沾板,并且烙铁头很容易就烧死了。上网仔细搜了下教程。发现问题主要有两个:一个是手法问题,即应该是烙铁头加热引脚几秒后,焊锡丝接触烙铁头和引脚溶化焊接。而不是先把焊锡丝化到烙铁头上往引脚涂,因为这么操作焊盘温度不够,就会不沾锡,并且焊锡沾到引脚就凝固,会虚焊,焊点形状也不好控制;第二个就是焊锡丝质量很可能有问题,有人提到焊锡丝不容易化或者焊点呈豆腐渣样有一个原因是铅和杂质比例太高。由于大部分情况下我的焊锡丝直接按到烙铁头上都不能融化,那么手法问题就是其次的了,焊锡丝质量的问题更大一些。于是决定重新买一些焊锡丝。


    调研了一下,出于健康考虑,现在工业生产用的焊锡已经不允许含铅了。但是卖的焊锡丝很多还是传统的铅锡合金。这种焊锡丝熔点低,焊点亮,所以在diy市场里还是很受欢迎。我倾向于健康一些的无铅焊锡。于是调研了一下。

    目前无铅焊锡主要是锡铜合金,99.3%的锡和0.7%的铜,熔点227度。比传统的63%锡铅合金的183度要高了四十多度。还有比较小众的锡银合金,主要是音乐发烧友使用(个人对于那零点几个点的银能否发挥什么作用持保留态度,不过b格是够了,可以号称焊出来的板子比小米的还nb了,不但含黄金,还含白银),熔点221度。还有黄花的锡银铜铈合金,含稀土不知道有什么特性。

    这次不敢随便买了,准备还是选择大品牌产品。首先还是考虑和焊台同品牌的宝工,宝工的无铅焊锡只有锡铜合金,含银的那款是含铅的。于是转向考虑其他品牌,发现广州黄花在烙铁和焊锡市场上也比较受欢迎,于是选择了黄花的锡银焊锡。为了不把鸡蛋放到同一个篮子里,还选了友邦的锡铜焊锡。前两天收到了。做工比较精致,今天打开试了一把。刚开始心情还是比较忐忑的,毕竟无铅焊锡焊接难度要高一点。先尝试黄花锡银,打开焊台调到325度,十几秒后温度稳定。烙铁加热焊点->加焊锡,很快焊锡就融化了,向上抬起烙铁头,一个焊点就焊好了。。果然不是一个世界的体验,换用友邦,也很顺利。。。原来问题的根源在于几块钱的焊锡丝。。



    终于掌握了焊接技术,以后diy的自由度又高了一些,不用再忍受乱糟糟的线了。没想到的是问题居然一直出在最不起眼的几块钱的焊锡丝上。。。搞diy还是不能马虎啊,新手更应该用好东西。否则出了问题都不知道是啥原因。



stm32之串口

[| 不指定 2011/12/02 00:53]
    在最基本的GPIO使用熟练后,开始下一步:调试。

    磨刀不误砍柴功。如果要写比较复杂的程序,调试是必需品。虽然jlink可以断点调试,但是效率低、查看变量值麻烦。程序比较大的时候相当复杂。对于普通程序,可以用日志的方式来进行调试,将日志打印到标准输出或者是文件,然后进行调试。在单片机开发中,可以通过串口通讯来完成这个事情,单片机将日志通过串口输出到开发机上,在开发机端使用串口工具进行查看。

    首先是串口的概念,在网上搜索资料相当恼火,大部分都是直接就说串口怎么怎么用,如何如何好,要么就是直接大段代码。很蛋疼的是,到底啥是串口?单片机上哪个引脚是串口?

    首先明确串口的概念,pc端串口分为25针和9针两种,9针为简化版,在台式机上一般都有,笔记本上已经绝迹了。
    对于单片机来说,如果要串口通讯,最简单的方式其实是两根线:rx,tx。

    一般要问了,为啥两根线就能干的活要9根甚至25根线呢?原来两根线只是最基本的串口通讯需要的。如果需要硬件流控等功能,还需要其他引脚的帮助。在这里简单起见,先使用最简单的。

    由于笔记本没有串口,手头有两块usb转串口板,一块是pl2303的,非常便宜,10块钱。但功能也最简单,只有4根线,rx,tx,vcc,gnd,兼容性一般,需要安装驱动才能使用。还有一块基于ft232的,将近50块,功能也比较强大,支持9针插头,兼容性好,插上后可使用windows update自动搜索驱动并安装。

    这次选用了p2303。

    下一步,就是怎么连接的问题,板上密密麻麻近百个引脚,应该如何连接呢?这时需要查询datasheet。

    stm32f103ze有5个串口通道。usart1最快。在这里我准备先拿2试试。datasheet上显示a2为tx,a3为rx。很快将线插好。vcc和gnd也接上。现在电路连通了(注意,插拔串口的时候需要断电操作,否则容易损坏串口)

    然后就是编程。至于程序网络上就大把了。随便找个文档就是大堆。挑个有注释的看。大致流程如下:(最简单的,不带中断)


    首先启用usart时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

    然后是初始化gpio引脚:a3设置为GPIO_Mode_IN_FLOATING,a2设置为GPIO_Mode_AF_PP

    然后是串口设置:

    
引用
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART2 , &USART_InitStructure);
USART_Cmd(USART2, ENABLE);


   波特率9600,字长8,停止位1,不校验,硬件流控无,开启信息收发,启用串口。

    然后就可以用USART_SendData发送数据了。

需要注意的地方:不要忘记开启时钟,这里要两次时钟操作,一次给串口,一次给io口,缺一不可。
Tags: , , ,

入手stm32最小系统板

[| 不指定 2011/11/28 13:50]
    之前在大学的时候弄过一段时间的嵌入式,后来因为小批量的制作电路板成本实在很高,后来没有继续搞了。最近看到有同事在用arduino,又激发了我的兴趣,准备搞一下。

    调研了一下,发现arduino虽然ide看起来很好玩,但是性能和价格都不靠谱。性能是8位mcu,20mhz主频,2ksram,128-2048k flash,总体性能差了不少。并且由于现在在国内属于小众,价格也很不给力。

    在调研的过程中发现了stm32,这是基于arm Cortex-M3内核的一个mcu,32位mcu,主频72mhz,应用的比较多,资料也不少,于是决定入手一个这个。

    先是看了开发板,发现附带的外设过多,很乱,不喜欢,决定买个最小系统版,然后自己买别的扩展板来扩展。为了扩展性考虑选择了flash和sram容量都比较大的一款:stm32f103ze的最小系统板,512k flash,64k sram。足够跑一个比较复杂的程序了,咨询了一下嵌入式的同学,这个配置跑ucos之类的系统也是足够了。

    除了买板,一些其他的配件也是必须的。jlink调试器、面包板、跳线、直插电阻、发光二级管,都买了一些。同时还买了红外感应模块、isp下载模块、光感应模块,用来练手。一共200出头,很便宜。

    为了时效性考虑,卖家选的是北京的,不过查快递信息的时候发现貌似卖家在上地八街。。。。这么近,还不如自取呢。



    周日晚上搞了一会,装了keil,jlink驱动等等,鼓捣了一下,发现比搞普通c程序麻烦不少,还要管时钟、中断之类的。不过很有意思,稍后会搞点有意思的东西出来。
    
Tags: , ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]