اخ حسن كما تعلم ان الاطراف TX ,RX هي اختصار ل RECIVE PIN,TRANSMITE PIN وهي اطراف الاستقبال والارسال في بروتوكلات الاتصالات بانواعها RS232 ,RS48 I2C الخ
بخصوص بروتوكول RS232,,RS485 فهما من ناحيه الهاردوير مختلفون بقيم الفولتيه .
ولكن لمدا تريد اضافه بفر مع ان العزل متوفر داخل MAX 232 او MAX 487 متلا؟؟؟ وغالبا ما يوفر المصمم برتوكول واحد بحيت يتناسب مع البروتوكلات للمجال المستخدم فيه ويتوم باضافه بورد او CONVERTER للتحويل من بروتوكول الى البروتوكول لجهازه
|
السلام عليكم
أخي العزيز شكر لك على أهتمامك بموضوع
غايتي من موضوع هو أنني أستخدم البيك مثلا 16f877a وهذا البيك يحتوي على هاردوير داخلي لــ للبرتوكول (uart (RX, TX وفي أي مشروع نريد أستخدام أكثر من وسيله ربط بين أجهزه مثلا أريد أستخدم كمبيوتر RS232 واريد أيضا RS485 و RF model و GSM هذه وسائل مشكله كلها تعمل وفق البرتوكول uart
يعني بأختصار اريد أضافتهما الى مشروع واحد مستخدم بيك واحد أكيد ربطهما معا يسبب مشاكل كهاردوير
لذا لابد من عمليه عزل كل واحده هن أخرى وبالطبع بأستخدام دوائر logic او أي هاردوير وهذا دائره مهمتها تختار وسيله أتصال واحده وحسب مستخدم او اتوماتيكيا لربط الى RX , TX
ارجو أني وضحت قصدي من موضوع
انا وجدت حلا لربط بين RS232 و RS485
حيث في بدايه كنت قد ربطت مخارج معا لكي نحصل على RX واحده وهذه اما قادمه من RS232 او RS485
ولماذا أستخدمت مخارج لانك كما تعلم ان RX تمثل البيانات الداخله الى مايكرو وبتالي هنا ربطت مدخل البيانات من rs232 الى 2A1 ومدخل البيانات من rs485 الى 1A1 وبتالي لابد من أن نحصل على مخرج واحد لكي تربط بRX للمايكروكنترولر
في البدايه ربط مخارج معا وسبب في ذلك ان كلا مخرجين لايعملان معا أطلاقا لكون خط enable ومتحكم بمخارج 1Yx قد ربط مع مع خط enable ومتحكم بمخارج 2Yx وهذا enable أحدهما يعمل عكس اخر
يعني بأختصار اذا وضعت على enable=0 معناها مخارج 1Yx وتصبح مخارج 2Yx بــ high impedance واذا اصبح enable=1 معناها مخارج 2Yx وتصبح مخارج 1Yx بــ high impedance وبتالي مفروض هنا أستطيع ربط مخراج معا ولكن في محاكاه أخبرني عندك شورت في نقط ربط مخارج لربما في مجال عملي يختلف ولكن لم أجربها عمليا
على عموم انا نحليت هذه مشكله بوضع دايودات ولكن هنا أيضا توجد مشكله وهو دايود يسمح بمرور 5 فولت ولكن هذا اذا كانت بيانات=0 فكيف سنعبر 0 وهنا وضعت مقاومه 100k وربطتها مع الارضي ومهمه هذه مقاومه تمرير 0 الى مايكرو وفي حاله جاءت بيانات=1 فلاتؤثر قيمه مقاومه على نتيجه
وعندما أستخدمت هذه طريقه اعملت دائره( في بروتيس) بشكل ممتاز
للعلم لكي أجعل ايسي buffer يحول اتوماتيكيا بين RS232 , RS485 اخذت من RX لــ RS232 وربطها مع RB0_bit وفعلت الانتربت عن طريق RB0
وحسب مالاحظت انه في حاله عدم وجود بياتات (( طبعا كل كلام في بروتيس فقط)) يكون مخرج RX لــ RS232 =1 وبتالي أخبرته اذا تغيرت قيمه من 1 الى 0 قم بجعل enable=1 وعندها سوف تتحول ربط الى منفذ RS232 لنقرا البيانات وبعد أنتهاء من القراءه او كانت قراءه خاطئه للبيانات عندها أخبرته اجعل enable=0 لكي يحول هاردوير الى منفذ RS485 بأعتبار ان RS485 هي اساس وكمبيوتر منفذ ثانوي
ارجو أخي شرحت لك مقصدي
ولكم كل الشكر والتقدير
وكل عام وجميع اخوه بألف خير