שְׁאֵלָה:
בעיות בלוח ממיר RS232-to-TTL תוצרת בית המבוסס על MAX232 של TI
Ricardo
2014-03-28 06:47:49 UTC
view on stackexchange narkive permalink

תכננתי לוח ממיר RS232 ל- TTL המבוסס על ה- ICX MAX232 של TI שבו אני מתכנן להשתמש כדי לתכנת כמה לוחות ארדואינו מותאמים אישית שיש לי. עם זאת, אני מתקשה בלוח ואני מקווה שמישהו יכול לעזור לי באגים.

ראשית, תן לי להראות לך את ההתקנה שלי למטה.

My setup

הנה תיאור קצר של מה בתמונה:

  • לוח יעד (A) : זהו לוח ATmega328P עצמאי בהתאמה אישית (שעון) שאני מתכוון לתכנת באמצעות תכנות סדרתי ו- IDE של Arduino. הוא מחובר ל לוח B באמצעות כבל דמוי FTD דרך מחבר (H) .

  • RS232 -לוח ממיר ל- TTL (B) : זהו לוח הממיר מבוסס ה- RS232 ל- TTL המבוסס על MAX232 שתכננתי ומנסה לנקות באגים. זה הנושא העיקרי של שאלה זו. הוא מחובר ל לוח היעד (A) באמצעות כבל דמוי FTDI דרך מחבר (G) ול כבל USB-to-RS232 (C) דרך מחבר DB9 נקבה (F) .

  • כבל USB-to-RS232 (C) : אין לי יציאת COM תקינה במחשב שלי, אז זה מה שאני משתמש בכדי להשיג יציאה טורית במקום. הוא מחובר למחשב באמצעות מחבר USB (D) ו לוח B באמצעות מחבר DB9 זכר (E) .

הסכימות של לוח B הן למטה.

RS232-to-TTL converter board (B)

סכימות כותרת התכנות ב- לוח היעד (A) מוצג להלן.

ATmega328P serial programming header on Target Board (A)

הדבר הראשון שהבנתי הוא ש כבל USB-to-RS232 (C) הוא מסוג ה זול . במקום לספק רמות אות RS232 סטנדרטיות בתחום -12 וולט / 12 וולט, הוא מספק 0 וולט / 5 וולט במקום. הבנתי שבאמצעות הבדיקה הבאה חיברתי את ה כבל USB-to-RS232 (C) למחשב האישי וניתקתי את ה מחבר DB9 זכר (E) מ- לוח ממיר (B) וסיכה 3 נבדקת מ מחבר DB9 זכר (E) בזמן ששלחתי סדרה של ASCII char 'A' דרך הסדרה לפקח. להלן זריקת ההיקף הנובעת ממבחן זה.

Characterization of USB to RS232 cable signal

אגב, שמתי לב שהמכשירים השונים של MAX232 המיוצרים על ידי ספקים שונים נועדו להתמודד עם הפרה זו של רמות האות RS232 ולקבל אותות 0V / 5V כ נו. להלן שתי צילומי היקף שהשתמשתי בהם כדי להוכיח זאת. בצילום הראשון החלתי גל מרובע 0 וולט / 5 וולט לתוך סיכה 13 של MAX232 (כשהוא מוכנס ומופעל על ידי לוח הממיר שלי) עם מחולל הפונקציות הביתי שלי (רועש, כן) - זה העקוב הצהוב - ובדקתי את הפלט של סיכה 12 ( רמת TTL RX - עקבות ירוקים). להפתעתי, ה- MAX232 של TI מגיב באותות ה- TTL הנכונים. הזריקה השנייה היא אות RS232 -6V / + 6V נכון המדומה על ידי גל מרובע שהכנסתי לאותו סיכה. שתיהן מניבות את אותן תוצאות.

enter image description here enter image description here

עשיתי כמה מדידות אחרות ב לוח הממיר שלי (B) עד לנקודה בה הייתי מרוצה מזה. לדוגמא, סיכה 2 ב- MAX232 מראה + 9.5 וולט ואילו סיכה 6 מראה -9.5 וולט. ההיקף מראה שמכפיל המתח והמהפך עובדים בסדר גם כן, עם גל מרובע נחמד ויציב של 40kHz בכל מקרה. יישמתי גם גל מרובע 0 / 5V של כ 68kHz על סיכה 10 של MAX232 וסיכה 7 של MAX232. קיבלתי אות -23 V / + 6 V הפוך נחמד ונקי (תמונות לא מוצגות כאן).

ואז בדקתי הד צג סדרתי מקצר את פינים TX / RX בנקודות שונות. התוצאות היו:

  1. בלי MAX232 IC בשקע שלו, קצרתי את הפינים 2 ו- 3 ב- DB9. הד בסדר.
  2. הצבתי את MAX232 IC על הלוח וקצר את הסיכות 11 ו 12. הד בסדר.
  3. כש- ATmega328P מחוץ לשקע, קצרתי את הפינים 2 ו- 3. הד בסדר.

ואז חיברתי את ההתקנה כדי לתכנת את ה לוח היעד ATmega328P (A) . פלט ה- avr-dude מוצג בסוף פוסט זה. להלן סיכום עם הודעת השגיאה בלבד:

  ... avrdude: stk500_getparm (): (a) שגיאת פרוטוקול, צפו = 0x14, resp = 0x90 ... avrdude: stk500_cmd () : שגיאת פרוטוקול  

במהלך ניסיון תכנות זה מדדתי את האותות שלהלן. המעקב הצהוב הוא נתונים שנשלחים ל- MCU ואילו המעקב הירוק הוא נתונים שמתקבלים על ידיו:

enter image description here

כאשר אני מקבל את השגיאה, יש הפרעה פתאומית ב תִקשׁוֹרֶת. מניסיון אחד למשנהו, הבעיה מתרחשת בנקודות שונות במהלך התקשורת.

לבסוף החלפתי את לוח ה- MAX232 שלי בלוח ישן יותר שיש לי, המשתמש בטריק הטרנזיסטור במקום IC ה- MAX232, ו הכל מתחיל לעבוד כמו שצריך. עם הלוח הישן אני יכול לתכנת את לוח היעד. להלן תצלום היקף המציג את התקשורת המוצלחת במהלך תכנות לוח היעד במקרה זה.

enter image description here

אני בהחלט משקיף על משהו, אבל אני לא יכול לדעת מה זה. . אז השאלה שלי היא: מה לא בסדר בהגדרה שלי? מה עוד אוכל לבדוק או למדוד כדי להבין את הבעיה?

הנה פלט ה- IDE של Arduino ו- avr-dude:

  גודל סקיצה בינארי: 9.946 בתים (של מקסימום 32.256 בתים) C: \ Users \ Ricardo \ Documents \ arduino-1.0.5 \ hardware / tools / avr / bin / avrdude -CC: \ Users \ Ricardo \ Documents \ arduino-1.0.5 \ hardware / tools / avr / etc / avrdude.conf -v -v -v -v -patmega328p -carduino -P \\. \ COM5 -b115200 -D -Uflash: w: C: \ Users \ Ricardo \ AppData \ Local \ Temp \ build2465731745810216807.tmp \ DefusableClock_v2.cpp.hex: i avrdude: גרסה 5.11, הורכבה ב -2 בספטמבר 2011 בשעה 19:38:36
זכויות יוצרים (c) 2000-2005 בריאן דין, http://www.bdmicro.com/ זכויות יוצרים (c) 2007-2009 Joerg Wunsch קובץ התצורה הרחב של המערכת הוא "C: \ Users \ Ricardo \ Documents \ arduino-1.0.5 \ חומרה / כלים / avr / etc / avrdude.conf "באמצעות יציאה: \\. \ COM5 באמצעות מתכנת: arduino עקיפת קצב שידור: 115200avrdude: שלח: 0 [30] [20] avrdude: שלח: 0 [30] [20] avrdude: שלח: 0 [30] [20] avrdude: Recv:. [14] avrdude: Recv:. [10] חלק AVR: ATMEGA328P עיכוב מחיקת שבב: 9000 us PAGEL: PD7 BS2: PC2 RESET disposition: RETRY dedicated pulse: SCK program program program mode: yes mode mode parallel: yes Timeout: 200 StabDelay: 100 Cmdexe Delay: 25 SyncLoops: 32 ByteDay : 0 PollIndex: 3 PollValue: 0x53 פרטי זיכרון: חסום עמוד הסקר סוג זיכרון מצב מצב עיכוב גודל Indx עמוד גודל גודל # דפים MinW MaxW ReadBack ----------- ---- ----- - ---- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff חסום עמוד סקר סוג זיכרון מצב מצב עיכוב גודל Indx עמוד גודל גודל # דפים MinW MaxW Readback ----------- ---- ---- - ----- ---- ------ ------ ---- ------ ----- ----- -------- - פלאש 65 6 128 0 כן 32768 128 256 4500 4500 0xff 0xff
חסום עמוד הסקר סוג זיכרון מצב מצב עיכוב גודל אינדקס עמוד גודל גודל # דפים MinW MaxW Readback ----------- ---- ----- ----- ---- --- --- ------ ---- ------ ----- ----- --------- lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 חסום עמוד סקר סוג זיכרון מצב מצב עיכוב גודל אינדקס עמוד גודל גודל # דפים MinW MaxW Readback ----------- ---- ----- ----- ---- - ---- ------ ---- ------ ----- ----- --------- hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 חסום עמוד הסקר סוג זיכרון מצב מצב עיכוב גודל Indx עמוד גודל גודל # דפים MinW MaxW Readback ----------- ---- ----- ----- ---- - ----- ------ ---- ------ ----- ----- --------- efuse 0 0 0 0 לא 1 0 0 4500 4500 0x00 0x00 חסימת עמוד הסקר סוג זיכרון מצב עיכוב גודל אינדקס עמוד גודל גודל # דפים MinW MaxW Readback ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- נעילה 0 0 0 0 לא 1 0 0 4500 4500 0x00 0x00 חסום עמוד סקר סוג זיכרון מצב עיכוב גודל אינדקס עמוד גודל גודל # דפים MinW מקסימום W החזר ----------- ---- ---- - ----- ---- ------ ------ ---- ------ ----- ----- -------- - כיול 0 0 0 0 לא 1 0 0 0 0 0x00 0x00 חסימת דף הסקר
סוג זיכרון מצב עיכוב גודל אינדקס עמוד גודל גודל # דפים MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ - ----- ---- ------ ----- ----- --------- חתימה 0 0 0 0 לא 3 0 0 0 0 0x00 0x00 סוג מתכנת: תיאור Arduino: Arduinoavrdude: שלח: A [41]. [80] [20] avrdude: Recv:. [14] avrdude: Recv:. [83] avrdude: Recv:. [10] avrdude: שלח: A [41]. [81] [20] avrdude: Recv:. [14] avrdude: Recv:. [84] avrdude: Recv:. [10] avrdude: שלח: A [41]. [82] [20] avrdude: Recv:. [14] avrdude: Recv:. [04] avrdude: Recv:. [90] avrdude: stk500_getparm (): (א) שגיאת פרוטוקול, מצפה = 0x14, resp = 0x90avrdude: שלח: A [41]. [98] [20] avrdude: Recv:. [14] avrdude: Recv:. [03] avrdude: Recv:. [10] גרסת חומרה: 131 גרסת קושחה: 132.1077487570avrdude: שלח: A [41]. [84] [20] avrdude: Recv:. [14] avrdude: Recv:. [03] avrdude: Recv:. [10] avrdude: שלח: A [41]. [85] [20] avrdude: Recv:. [14] avrdude: Recv:. [03] avrdude: Recv:. [10] avrdude: שלח: A [41]. [86] [20] avrdude: Recv:. [14] avrdude: Recv:. [03] avrdude: Recv:. [90] avrdude: stk500_getparm (): (א) שגיאת פרוטוקול, מצפה = 0x14, resp = 0x90avrdude: שלח: A [41]. [87] [20] avrdude: Recv:. [14] avrdude: Recv:. [03] avrdude: Recv:. [10] avrdude: שלח: A [41]. [89] [20] avrdude: Recv:. [14] avrdude: Recv:. [83] avrdude: Recv:. [10] מטרה: 0.3 V Varef: 0.3 V מתנד: 921.600 קילוהרץ תקופת SCK: 142.2 usavrdude: שלח: A [41]. [81] [20] avrdude: Recv:. [14] avrdude: Recv:. [04] avrdude: Recv:. [10] avrdude: שלח: A [41]. [82] [20] avrdude: Recv:. [14] avrdude: Recv:. [04] avrdude: Recv:. [10] avrdude: שלח: B [42]. [86]. [00]. [00]. [01]. [01]. [01]. [01]. [03]. [ff]. [ff]. [ff]. [ff]. [00]. [80]. [04]. [00]. [00]. [00]. [80]. [00] [20]
avrdude: Recv:. [14] avrdude: Recv:. [10] avrdude: שלח: E [45]. [05]. [04]. [d7]. [c2]. [00] [20] avrdude: Recv:. [14] avrdude: Recv:. [10] avrdude: שלח: P [50] [20] avrdude: Recv:. [14] avrdude: Recv:. [10] avrdude: מכשיר AVR מאותחל ומוכן לקבל הוראות קריאה | avrdude: שלח: u [75] [20] avrdude: Recv:. [14]. [1e]. [95]. [0f]. [10] ################################################################## ### | 100% 0.00savrdude: חתימת מכשיר = 0x1e950favrdude: שלח: V [56]. [a0]. [03]. [fc]. [00] [20] avrdude: Recv:. [14] avrdude: Recv:. [00] avrdude: Recv:. [10] avrdude: שלח: V [56]. [a0]. [03]. [fd]. [00] [20] avrdude: Recv:. [14] avrdude: Recv:. [00] avrdude: Recv:. [10] avrdude: שלח: V [56]. [a0]. [03]. [fe]. [00] [20] avrdude: Recv:. [14] avrdude: Recv:. [00] avrdude: Recv:. [10] avrdude: שלח: V [56]. [a0]. [03]. [ff]. [00] [20] avrdude: Recv:. [14] avrdude: Recv:. [00] avrdude: Recv:. [90] avrdude: stk500_cmd (): שגיאת פרוטוקול  
מתועד יפה.
@tcrosley תודה! ניסיתי כמיטב יכולתי, אך עדיין היו כמה נקודות לא ברורות שניסיתי להבהיר עם העריכה האחרונה שלי.
האם יש סיבה שקו ה"איפוס "נמצא במתחי RS232 ולא עובר דרך הממיר? האם הארדואינו זקוק למתח גבוה יותר כדי לתכנת או משהו כזה?
@markrages - זו נקודה טובה. אני לא יודע. התגעגעתי לזה לגמרי. אנסה לחפור מהיכן העיצוב הזה מגיע, או אם זה * היצירתיות * שלי.
בעוד שמעגל האיפוס שיש לך * עשוי * להיות מסוגל לספוג את המתח של מנהל ההתקן RS232 ללא נזק, אך הבעיה שאולי מתעלמים ממנו היא שמנהלי ומקלטי RS232 באופן מסורתי ** הופכים **. כך שההיגיון של קו האיפוס עשוי להיות אחורה ממה שהתוכנה מצפה לו. יש לך ערוץ מקלט שאינו בשימוש, אולי כדאי שתשתמש בזה. ודא גם שהתוכנה מביאה את אחת האפשרויות RTS או DTR שאתה מחובר אליה. אם אתה יכול לתכנת מראש סקיצה שתתקשר בסידרה, תוכל לבצע אימות נוסף.
@ChrisStratton - מכל הדברים בלוח שלי, האיפוס הוא היחיד שעובד (לפחות כנראה). נראה ש- IDE של Arduino איפס בהצלחה את הלוח לפני העלאת הקושחה ואחריה. אבל כן, לא שקלתי את העובדה שמתח האיפוס RS232 עלול לפגוע ב- MCU שלי. אני אבדוק את זה. שימוש במנהל ההתקן השני הוא רעיון טוב לשם כך! תודה!
עם אות הפוך, הייתי מצפה שהוא עדיין יתאפס, אך בזמן הלא נכון (כמה שגוי יהיה תלוי כאשר האות מונע בדרך כלל בכיוון הלא פעיל, אשר עם היפוך יהפוך להיות הפעיל).
@ChrisStratton - על פי [מאמר זה בוויקיפדיה ב- RS232] (http://en.wikipedia.org/wiki/RS-232#Voltage_levels), לאותות הבקרה יש קוטביות הפוכה של אותות הנתונים, ולכן איפוס (DTR) אינו הפוך . אבל הרמות עדיין עשויות לפגוע ב- MCU.
@Ricardo - הם עדיין הפוכים חשמלית כאשר הם עוברים דרך מנהל ההתקן או המקלט, רק שהחוש הפעיל שלהם מנוגד לקווי הנתונים. אברודוד כבר יודע שיש לו חוש הפוך, אבל הוא מצפה שהוא יהפוך במתרגם הרמה כמו האחרים.
@ChrisStratton - נקודה נלקחה. אבל לא ראיתי את קו האיפוס עובר דרך המהפך על העיצובים השונים של MAX232 שמצאתי. אני אעשה קצת יותר מחקר מכיוון שאני חושש ממתח האיפוס שאני מחיל על ה- MCU שלי.
ראה למשל http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_UC232R.pdf שם הנתונים ושורות המצב עוברים בערוצים זהים של ממיר הרמות. אני מאמין שכשאנשים משתמשים בשבב USB הסדרתי הזה עם ארדואינו וללא שינוי ברמה, הם לא הופכים את האיפוס, כך שכאשר הוא עובר מהפך אחד בממתח המפלס של הכבל שלך, הוא יצטרך לעבור אחר במעגל שלך. אחרת זה בסופו של דבר מנוגד לחוש הרגיל שלו.
שתיים תשובות:
John R. Strohm
2014-03-28 07:06:38 UTC
view on stackexchange narkive permalink

אתה אומר שסקרת סיכה 3 של ה- DB9 וראית 0-5V. סיכה 3 היא קבלת נתונים מהעולם החיצון ומונעת על ידי הכבל הטורי USB-to-TTL שלך.

MAX232 מקבל רמות RS-232 על פינים 8 ו -13, וממיר אותם לרמות TTL על פינים 9 ו -12 בהתאמה. ה- MAX232 מקבל רמות TTL בסיכות 10 ו -11, ומניע רמות RS-232 בסיכות 7 ו -14 בהתאמה. סיכות שגויות.

הפעל מחולל רכבת דופק 555 פשוט מעל +5, החל אותו על סיכה 10 של MAX232 (לא מחובר בתרשים שלך), סיכת היקף 7 של MAX232, ותראה מה אתה מקבל .

מצטער, יכול להיות שלא הייתי מספיק ברור. אין לי כבל טורי USB-to_TTL. אני מנסה לדמות אחת באמצעות כבל USB ל- RS232 המחובר לממיר RS232 ל- TTL שהכנתי.
בבדיקה שציינת בפסקה הראשונה שלך, חיברתי את כבל ה- USB ל- RS232 למחשב שלי והשאירתי את ה- DB2 לא מחובר. ואז בדקתי סיכה 3 בזמן שליחת נתונים דרך המסוף. ואז קיבלתי את האות 0V / 5V והגעתי למסקנה שהכבל אינו עומד בתקני RS232. על פי [תמונה זו] (http://www.usconverters.com/images/rs232-pinout.jpg), סיכה 3 היא TXD במחבר DB9 הגברי. או שאני פשוט מבולבל?
אז, סיכה 3 ב- DB9 זכר היא להעביר נתונים מהמחשב ומעביר נתונים לממיר RS232-to-TTL, נכון? זה ההפך ממה שאמרת בפסקה הראשונה שלך.
כמו כן, עשיתי את מה שהצעת בפסקה האחרונה של תשובתך. החלתי גל מרובע 0 / 5V של כ 68kHz על סיכה 10 של MAX232 ו- pin 7 של MAX232. קיבלתי אות הפוך נחמד ונקי -6V / + 6V RS232.
@Ricardo, בסדר, זה אומר שצד השידור עובד. כעת עליך להחיל גל מרובע + 12V / -12V (סמלי: + 6V / -6V אמור לעבוד) על סיכה 3 של ה- DB9 או סיכה 13 של MAX232, ואמת את גל הריבוע TTL על סיכה 12. הדרך הקלה ביותר כדי לעשות זאת זה להשאיר את גל הריבוע TTL על סיכה 10 של MAX232, סיכות קצרות 2 ו- 3 של מחבר DB9, וסיכת היקף 12.
סיכה 3 של מחבר ה- DB9, באופן שחיווט אותו, מצפה לקבל אות + 12 / -12 RS-232 ממקום אחר ביקום, משהו שלא מוצג בסכמה שלך. זה נכנס לכל העניין של DCE / DTE שהפך את ממשק ה- RS-232 לסיוט ויצר את השוק עבור gazillions של תיבות פריצה של RS-232, מודמים אפסים ומגדלי מגדר. העניינים השתפרו כאשר המחשב האישי של יבמ סטנדרטי יעיל את המחברים לכולם.
הבעיה עם אותה תמונה היא שהיא לא אומרת לך את הדבר החשוב ביותר שאתה חייב להבין לגבי RS-232. ישנם שני (2) מחברים המעורבים בכל חיבור RS-232, זכר ונקבה. באחת מהן (ואני לא זוכר איזה), כונני סיכה 2 וסיכה 3 מקבל. על השני, המחובר למכשיר השני, סיכה 2 מקבלת כונני סיכה 3. בדרך זו, כאשר אתה מחבר את שני המכשירים יחד, אתה תמיד מחבר סיכת דרייבר לסיכת מקלט, ולהיפך. חיבור סיכת נהג לסיכת הנהג היא דרך טובה לשרוף נהג.
@JohnR.Strohm אולם ה- OP אמר כי הוא מסוגל לקצר את הפינים 11 ו- 12 ב- MAX232, ולחבר את MAX232 לכבל שמגיע ממחשב באמצעות ה- DB9. כלומר, צריך לחבר כראוי את ה- DB9 *, או שהמשדר / מקלט ב- MAX232 לא יחוברו כראוי לסיכות TX / RX ב- DB9.
@JohnR.Strohm אני מסכים עם טרוסלי שחיבור ה- DB9 שלי נכון, אבל נראה שלא הצגתי את ההתקנה שלי בצורה ברורה ככל האפשר. אז ניסיתי להבהיר כמה נקודות עם העריכה האחרונה שלי. בבקשה תבדוק את זה.
האם חסר לי כאן משהו? הכבל שיש לך עושה פרוטוקול RS232, אבל עם 0v / 5v במקום +/- 12v, נכון? זה מה שאנחנו מכנים 'TTL' וזה בדיוק מה שאתה אמור להיות מסוגל להתחבר ישירות ל- ATMega. לא נדרש MAX 232 ... MAX 232 ממיר מ- 0/5 ל- -12 / + 12, אך ה- ATMega זקוק ל- 0/5 (אלא אם כן מדובר במכשיר 3.3 v, אבל אני חושב שגם אז 0/5 v עדיין יהיה בסדר) . אז הייתי מתחיל לחבר את RX ל- TX ו- TX ל- RX, היישר מה- DB9 למחבר ATMega / FTDI (אל תשכח גם את הקרקע) ואנסה שוב.
@RJR - הכבל אמור להוציא RS232 אך יציאות 0v / 5V במקום +/- 12V. זה לא TTL כי הפלט שלו הפוך. לא ידעתי שקיים דבר כזה עד שקראתי את [התשובה הזו] (http://electronics.stackexchange.com/a/24194/29792). ככל הנראה, כבלים זולים משתמשים באספקת החשמל USB 5V ישירות להפקת פלט וה- MAX232 ושיבוטיו השונים מקבלים זאת. בדקתי את MAX232 של מקסים כמו גם את המשובטים ICL232 ו- HIN232 וכולם אומרים שהם מקבלים את קלט ה- RS232 הלא נכון של 0 וולט / 5 וולט. נראה כי גליון הנתונים של TI תואם למגבלות של +/- 3V, אך תחת התחום שלי, הוא גם מקבל את 0V / 5V.
@RJR - לכן, אני לא יכול להשתמש בכבל הזה כדי לתכנת את ה- ATmega328P שלי ישירות (מכיוון שה- 0V / 5V הוא הפוך), אלא אם כן אני הופך את האות בדרך אחרת, ולא משתמש ב- MAX232.
אה, כן, זו תהיה בעיה. אתה יכול להפוך את ה- TTL עם כמה טרנזיסטורים בקלות אם כי (או להשתמש ב- IC של מהפך). פשוט חפשו בגוגל 'מהפך טרנזיסטור TTL' לסקמה.
אם בכבל שלך יש שבב FTDI, אתה אמור להיות מסוגל להפעיל עבורו תוכנית תצורה.שם אתה יכול להפוך כל שורה, אני מאמין.
@Maple, אלא אם כן בכבל שלך יש שבב FTDI אותנטי ידוע בתוכו, בניגוד לזיוף זול, יהיה לך כל מיני כאבי ראש עם דרייברים לכבל.ל- FTDI נמאס מהזייפים שגנבו את עסקיהם, ולימדו את הנהגים שלהם לזהות את השבבים האמיתיים ולסרב לעבוד עם זיופים.זה לא גרם לסיום צרות ללקוחות הסי-טוק הסיניים, מכיוון שיצרני כבלים התכנתיים קנו את השבבים המזויפים.(אני אחד הבחורים שהתקשו, כמו גם אחי!)
Olin Lathrop
2014-03-28 18:08:35 UTC
view on stackexchange narkive permalink

השאלה שלך הייתה הרבה זמן לקרוא, אך נראה שיש לך כמה בעיות במעגל ממיר מסוג MAX232. הכנתי מה שנראה כמעגל דומה מאוד באמצעות אחת מגרסאות ה- TI של השבב, ואפילו מוכר אותו כמוצר. עבור אל www.embedinc.com/products/rslink2 ותוכל לראות את כל התיעוד, מתמונה ועד פריסת הלוח ועד לסכמה. אולי אתה יכול לראות מה אתה עושה אחרת.

דבר אחד ששמתי לב אליו כשדילגתי על שאלתך הוא שאתה משתמש בכובעים אלקטרוליטיים. בדוק שוב כי הקוטביות של כל אחת מהן נכונה. בעיה נוספת היא שחלק מיציאות ה- COM, במיוחד ממירי USB ל- RS-232, לא יעבדו ללא RTS / CTS, בין אם זה מופעל בתוכנה ובין אם לא. שים לב כיצד יש לי סיכות 7 ו -8 מחוברות זו לזו על מחבר DB9-F.

לא ידעתי לקצר את השאלה מכיוון שאני לא יודע איפה הבעיה. אז החלטתי להציג את כל מה שיש לי בפירוט.
כמו כן, תוך כדי לימוד הנושא נתקלתי בדף המוצר שלך ובסכימות המקושרות משם. נחמד מאוד! אבל לא למדתי את זה בפירוט רב יותר מכיוון שה- IC שהשתמשת בו לא נראה לי תואם לסיכה. אבל אני אסתכל מקרוב. תודה על עזרתך! +1
זה הכי קרוב לתשובה שקיבלתי על זה, אז אני מקבל את זה. תודה!! צמצמתי את הבעיה: זה מתייחס לעלייה בשגיאות (בגלל רעש או סנכרון גבישים) ב 115200 bps, שאינן מתרחשות ב 57600 bps. ראה [השאלה האחרת שלי לפרטים] (http://electronics.stackexchange.com/q/104901/29792).


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...