分类: 嵌入式
2010-03-06 11:47:13
一直不知道怎么让我的无线龙的cc2430模块的UART与计算机串口连接进行通信,以为只要将UART的对应管脚(接受、发送、地)和计算机串口(9针,2、3、5管脚)对应连接起来即可。其实这是打错特错的,原因是电平不匹配。计算机串口的电压规定是:
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
因此必须要做一个板子,将电压提高。可选的片子有Max232,Max3232,等。前者需要给片子提供5v电源,后者只需要3v。我手上只有Max232和可调电源就选前者了。另外发现我的一个单片机用的是USB提供电源,发现它用的是红线和白线,一测量果然是5v,于是我也是用USB线来取电压。具体制作过程如下:
(1):画好电路图:
(2)左侧是连接计算机的RS232头,右侧是我的cc2430开发板的UART端,中间部分是我要做的转换板。RS232串口的管脚定义为:
1DCD 载波检测
2 RXD Receive Data 接收数据
3 TXD Transmit Data 发送数据
4 DTR Data Terminal Ready 数据终端准备
5 GND System Ground 接地
6 DSR Data Set Ready 数据准备完成
7 RTS Request to Send 请求发送
8 CTS Clear to Send 清除发送
9 RI Ring Indicator 振铃提示
只需要将2(接受)、3(发送)、5(地)与Max232连接即可。
(3)无线开发板上的UART定义如图右侧,其中的Vcc是电池提供的3v电压,因此不能用这个电源提供给RS232(RS232的Vcc输入要求是5v),因此该管脚不用理会;将UART的RxD、TxD与Max232对应管脚相连。底线最后共地。
(4)给RS232的其他管脚连上电容,如图。然后用USB线给RS232供电。USB连接线的定义为:
黑:GND
白:DDM
绿:DDP
红:VCC
插在电脑上 的一头的定义(画有线纹 一边向上,插口对着自已):
左 1:GND
左 2:DDP
右 2:DDM
右 3:VCC
这么看来应该用红线和黑线,但是我用的是红线和白线最后也能够正常通信。上图的+5v用USB的白线连接。最后是共地的问题,即计算机串口、转换板(RS232)、单片机UART的GND需要共地,即连接在一起(我理解的是:最后还是公用了单片机开发板上的GND)
插上USB给转换板供电,转换板一端与计算机串口连接,一端与cc2430开发板UART连接。当你写程序向UART写入数据后,打开串口调试助手设置正确的参数(根据你的程序),就可以收发数据了。我的例子演示程序,无线读取温度、光照数据并在串口中显示没有问题,呵呵!
附:
RS232简介:
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从 R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚DNG、16脚VCC(+5v)。