ajoe 发表于 2009-9-23 14:47:10

请大家看看这个UART口的驱动电路~~~

http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_484441.JPG
(原文件名:UART.JPG)

别人的板子上的,两块通讯,两块用的是一样的电路,D1我不清楚是什么,有点像3.5V的稳压管。
别人电路板上看到的是相当于图中TX---RX对接,当然是上下两块的电路板的,然后M16_RX,M16_TX分别接两块电路板单片机的UART口,可以实现通许。但是我这样做就不能通许,不知道为什么,请大家解释一下,或者有什么好的方案,谢谢。

注: 当用一套这样的电路时,uart是可以正常通许的,大概是电平转换的问题吧,不明白。

szgr 发表于 2009-9-23 15:26:57

D1不应该是3.5V的稳压管,应该是7V左右的稳压管,否则Q1始终处于关闭状态

ajoe 发表于 2009-9-23 16:39:09

D1上有3V5的字样,自己顶一下

R28FA 发表于 2009-9-23 17:03:33

qianhng 发表于 2009-9-23 17:43:27

你说:"但是我这样做就不能通许,不知道为什么"
又说:"注: 当用一套这样的电路时,uart是可以正常通许的"
不能理解你要说什么

ajoe 发表于 2009-9-24 09:04:50

是我没有说明白?

如果把两块单片机的UART口分别接在图中的J1的TX,RX 和 M16_TX,M16_RX就是我说的一套这样的电路,这样UART是可以正常通讯的。
别人的两块电路板相当于两份图中的电路两块单片机都接M16_RX,M16_TX而J1对接也可以通讯,这是不明白的地方。

请知道的解释一下,或者有没有更好的uart通讯的驱动方案,谢谢!

holycat 发表于 2009-9-24 10:10:34

D1只是个普通二极管,图上画反了。

qianhng 发表于 2009-9-24 11:21:07

原电路采用12V电压及稳压管D1应该是为了长距离通讯对抗干扰,D1应该没画反。

miraclever 发表于 2009-9-24 11:34:54

看样子串口数据直接接到12V上了?CON4左边的电路是什么样的?12V难道是为了增加通信距离?

holycat 发表于 2009-9-24 11:52:02

【7楼】 qianhng:“原电路采用12V电压及稳压管D1应该是为了长距离通讯对抗干扰,D1应该没画反。”

——接插件信号是CPU信号的反相,且加12V,估计原来的意图是与PC直连,那么就要考虑-12V输入时的电路防护。如果说是为了提高输入阈值插入D1稳压管,那么至少在R3上还要反向并联一个二极管提供反压时的通路,否则容易打坏晶体管。(晶体管的BVebo通常只有4~6V。)

ajoe 发表于 2009-9-24 12:07:24

D1没有反,二极管4148的样子,不过上面有3V5和BZX字样,所以我认为是3.5V的稳压管。
采用+12v电压和稳压管D1我也认为是为了长距离通讯对抗干扰。两个设备的距离还是有点长的,具体不清楚,但是应该大于10M.

CON4的另一边是一样的电路,只是M16_RX,M16_TX接在另一块电路板的单片机uart口,我想上面已经说的比较明白了。
谢谢大家,请继续找出问题的真正原因。

holycat 发表于 2009-9-24 12:14:38

既如此,让两边都反复发同一个字符,看下TX和RX上的波形不就知道了吗?

ajoe 发表于 2009-9-24 13:52:22

示波器很老的,不好用。
串口监视,接收数据时D1处是对的,通过Q1,M16_RX电平发生了变化,数据不对,接收到的高电平很多。好像串口不通过MAX232的转换接收的数据一样,很郁闷

仔细看了原电路板,没有别的附加部分,难道那个单片机可以直接接收RS232电平的数据,单片机是MB89F202

qianhng 发表于 2009-9-24 15:12:01

【10楼】 holycat 仙猫 " ——接插件信号是CPU信号的反相,且加12V,估计原来的意图是与PC直连,"

接收电路也是反相的,负负得正,所以应该可以用作MCU间的通讯

qianhng 发表于 2009-9-24 15:24:23

【5楼】 ajoe “如果把两块单片机的UART口分别接在图中的J1的TX,RX 和 M16_TX,M16_RX就是我说的一套这样的电路,这样UART是可以正常通讯的。”

有点奇怪,反相了还能正常通讯?道理上说不过去阿



又:检查发送方R1是否虚焊

holycat 发表于 2009-9-24 15:29:54

回【14楼】qianhng:
那个电路确实应该可以通信,我说的是如果直连PC,对负电压不设防的话可能会击穿三极管。

ajoe 发表于 2009-9-25 08:55:12

不会虚焊,元器件也不会有问题,我都做了这方面的检查。很简单的电路,大家也可以试一下,看看问题出在哪里,谢谢

ajoe 发表于 2009-9-25 08:58:00

用一套那样的电路与PC相连的确是没有问题的,可以正常收发数据

qianhng 发表于 2009-9-25 10:34:58

【18楼】 ajoe“用一套那样的电路与PC相连的确是没有问题的,可以正常收发数据 ”

两套电路各自与PC都能进行通讯,但是这两套的TX接到对方的RX反而无法通讯?实在奇怪!

ajoe 发表于 2009-9-25 13:29:35

试了好多遍结果都一样,真是晕了,期待有了解的出来讲讲,谢谢大家

Elex 发表于 2009-9-25 13:52:58

确实如10楼所说,我用过好多次这种简易RS-232转换电路,效果还不错。
这种电路的前提是系统有12V的电源。
D1是3.5V稳压管,为了提高Q1导通的阀值,减少干扰. 而最好在Q1的BE极反向并联一个二极管以保护Q1。

vilin_li 发表于 2009-9-25 14:32:25

在短距离时,这是一种变通简化的电路。
实际上,一个+5V也就可以了,没有绝对的必要12V的,这只是一个“简单的TTL反相器”;尽管按照标准RS232电平必须在-15~-3和+3~+15之间,在实际使用当中,类似使用74hc04的反相器也可以实现这种逻辑变换(不是电平变换)。
在上面的图中,3.5v的稳压管没错,目的是消除+3v以下的电压对Q1的导通,因为在-3~+3之间,RS232标准为“不确定电平”。
但在一定的兼容要求下,R1过大了。如果根据常用的232口输出+电压空载约12v,而短路电流在10ma(实测,232口允许任何线间短路不会引起损坏)估算,这个电阻应该在1K左右。

这种简易的电路已经存在多年了,实际上3.5v的稳压管没有多大的必要,直接去掉不要就可以了。
基极限流电阻可以适当取值大一点,比如10K~47K,而R3阻值适当取小,比如3K3~10K,确保+电压输入忽略Q1时电阻分压能到1v~1.2v就可以了;否则容易出现如仙猫说的输入反压问题。

这只是一个简易电路甚至说是测试调整电路更妥当,在需要较长距离和高速可靠通讯的时候,尤其是正式产品设计,不建议使用。任何对这个电路的细节改进(比如3.5v的稳压管、增加输入反压的通路的二极管、为提高速度而调整限流分压和导通深度、增加匹配阻抗等),远不如直接使用232接口芯片来得简单和可靠。

jackielau 发表于 2009-9-25 15:25:14

ls正解

qianhng 发表于 2009-9-25 19:07:38

RS232通讯距离不是很长(9600波特率下15m),见:
http://www.ehuahai.com/news/hydt/551.html


LZ的电路假如R1,R3,R6改取1K,并在Q2对地接个10K的R4,通讯距离绝对长得多.

ajoe 发表于 2009-9-29 10:19:25

谢谢大家的热心先,距离传输和稳定性大家讲的很好,学习了
现在想知道的是为什么两套电路对接不能进行通讯,而分别和PC机232口却能正常通行,这个才是真正郁闷的问题。
如果找不出问题,看来我只能用一套电路了,按照大家的建议通讯距离和稳定性估计也不是问题。

谢谢大家!

holycat 发表于 2009-9-29 10:49:24

再说一遍,你看下波形不就知道了吗?
 TX
 RX
 M16_TX
 M16_RX

如果是在没条件看波形,看看静态时的电平转换也成,估计就是个低级疏忽。
 分别给TX端加 0V 和 12V,看'M16_RX'的电平变化;
 用单片机分别置 M16_TX 为'0'和'1',看'RX'端的电平变化;

expressme 发表于 2012-11-21 11:18:54

uart 驱动电路
页: [1]
查看完整版本: 请大家看看这个UART口的驱动电路~~~