עבור לתוכן

למה רגל ה-DTR ב-Arduino Pro Mini מחוברת ל-Reset עם קבל?

Featured Replies

פורסם

שלום

ב-Arduino Pro Mini, יש לנו 2 רגלי Reset - הרגל הרביעית מלמעלה, בכל צד:

$(KGrHqZ,!p!FCwWOi+ILBR!BPhYzh!~~60_12.JPG

בנוסף, בפינה השמאלית העליונה יש לנו את רגל ה-DTR, שמחוברת ל-רגלי ה-Reset, אבל לא ישירות אלא בעזרת קבל.

למה?

תודה רבה

card

נערך על-ידי card

פורסם
שלום

ב-Arduino Pro Mini, יש לנו 2 רגלי Reset - הרגל הרביעית מלמעלה, בכל צד:

בנוסף, בפינה השמאלית העליונה יש לנו את רגל ה-DTR, שמחוברת ל-רגלי ה-Reset, אבל לא ישירות אלא בעזרת קבל.

למה?

תודה רבה

card

ה-Reset הוא לאתחול "רגיל" של המיקרו-בקר, ואפשר להחזיק בעזרתו את המיקרו-בקר במצב של איפוס כמה שרוצים.

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

לפרטים נוספים: http://www.idogendel.com/whitebyte/archives/1323

פורסם
  • מחבר

הי עידו

תודה רבה

אגב,

אם ה-DTR יורד ל-"0" ונשאר שם,

לכמה זמן הוא נשאר "0"? לכל זמן התקשורת של ה-Upload?

פורסם
הי עידו

תודה רבה

אגב,

אם ה-DTR יורד ל-"0" ונשאר שם,

לכמה זמן הוא נשאר "0"? לכל זמן התקשורת של ה-Upload?

אני לא בטוח. אות DTR המקורי (מפרוטוקול RS232) לא מתנהג כמו מה שמתואר בפוסט שלי, אז אני מניח שיש כאן עניין של התאמה נוספת, בתוכנה או בחומרה, למה שהארדואינו עובד איתו.

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

פורסם
  • מחבר

אוקיי אעשה את זה באמת..

דבר נוסף שמסקרן,

כתבתי בתרד אחר כבר, שיש לפעמים לוחות של Pro Mini,

שה-TX וה-RX שם הפוכים.

ואז במקום לחבר:

TX עם RX

ו-TX עם RX

צריך לחבר TX+TX, ו-RX+RX.

(זה יכול להגרם בגלל שהלוח מוזר, או בגלל שהמתאם FTDI מוזר)

האם יש דרך לדעת אם לוח Pro Mini שיש לי הוא כזה(כלומר הפוך)?

(עוד לפני שמנסים כמובן)

פורסם
אוקיי אעשה את זה באמת..

דבר נוסף שמסקרן,

כתבתי בתרד אחר כבר, שיש לפעמים לוחות של Pro Mini,

שה-TX וה-RX שם הפוכים.

האם יש דרך לדעת אם לוח Pro Mini שיש לי הוא כזה(כלומר הפוך)?

(עוד לפני שמנסים כמובן)

זה לא כל כך הגיוני שהבעיה תהיה בלוח. הרי TX ו-RX משמשים לעוד דברים חוץ מאשר תקשורת דרך FTDI, והם אמורים להיות מחווטים לפינים מאד ספציפיים של המיקרו-בקר.

אני אצטרך לבדוק את זה בפועל מאוחר יותר, אבל נדמה לי שבכל מקרה מחברים RX-RX ו-TX-TX עם מודול USB-to-UART, כי זה לא באמת רכיב שמתקשרים איתו אלא דרכו. יכול להיות שאני מקשקש, נצטרך לחכות ולראות כשאגיע לציוד בהמשך היום.

פורסם
  • מחבר

בוודאות התשובה היא לא..

המצב התקין הוא TX ל-RX

אני פשוט סקרן אם יש דרך לדעת מראש שלוח ארדואינו כלשהו(או שמתאם FTDI כלשהו) הוא "דפוק", כלומר שה-Labels שם הפוכים.

כנראה שאין דרך לדעת.

פורסם
בוודאות התשובה היא לא..

המצב התקין הוא TX ל-RX

אני פשוט סקרן אם יש דרך לדעת מראש שלוח ארדואינו כלשהו(או שמתאם FTDI כלשהו) הוא "דפוק", כלומר שה-Labels שם הפוכים.

כנראה שאין דרך לדעת.

אוקיי, ערכתי את הניסוי.

1. לוח Pro Mini תוצרת סין + מתאם USB-to-UART מבוסס CP2102

חיבורים: RX-RX, TX-TX

עובד.

2. אותו מתאם, לוח ארדואינו Duemilanove תוצרת סין

חיבורים: RX-RX, TX-TX

עובד.

מסקנה: או שלמתאם הספציפי הזה דווקא כן צריך לחבר RX-RX, TX-TX, או שגם לוחות ארדואינו אחרים מסומנים במקרה הפוך...

[עריכה: קודם כתבתי בטעות CP2101, המתאם שלי הוא למעשה CP2102 כמו שכתוב עכשיו]

- - - נערך: - - -

והנה, עוד מישהו שחיבר ככה וזה עבד לו:

http://blog.tarn-vedra.de/2011/09/using-cp2102-on-arduino.html

נערך על-ידי igendel

פורסם
  • מחבר

אם זה קרה לך עם שני לוחות שונים, ואותו מתאם,

סביר שזה המתאם.

יש גם דרך לבדוק שזה אכן המתאם..

אתה יכול לנסות לשלוח אליו נתונים מהמחשב, (ע"י כל תוכנת טרמינל פשוטה),

ואז לראות לאיזה רגל במתאם מגיעים הפולסים: ל-TX או ל-RX.

במצב התקין זה אמור להגיע לרגל ה-TX שלו.

אבל זה נראה שכאן הם יגיעו לרגל ה-RX.

מה שאומר שה-Labelling שלו לא טוב..

השיטה הזו שרשמתי עכשיו, טובה לבדיקת קיום הבעיה(הדפסה לא נכונה של שמות הרגליים) במתאם.

הבעיה היא שאין לי רעיון איך לבצע בדיקה כזו, בלוח ארדואינו.

לכאורה אפשר להגיד: "מה הבעיה? תנסה לשלוח מהלוח כמה מחרוזות דרך ה-Serial, ותבדוק אם זה יוצא ב-TX או RX שלו"..

הבעיה שכדי לגרום ללוח לשלוח משהו ל-Serial, אני צריך קודם לעשות אליו Upload עם תוכנית ששולחת משהו ל-Serial..

(הרי התוכנית ה-Default-ית של Blink, לא שולחת שום דבר ל-Serial).

וכדי לעשות Upload לתוכנית כזו, אני צריך לחבר אליו מתאם :)

ואמרנו שאנחנו רוצים לבדוק, בלי לחבר מתאם, כדי לא לחבר בטעות לא טוב, ואז לגרום לקצר..

אבל!

חשבתי עכשיו על רעיון..

כשיש לנו ג'וק חשמלי כלשהו,

אז אם רגל שלו היא רגל כניסה, בד"כ ההתנגדות הפנימית שלה תהיה גבוהה מאד.

מנגד אם היא רגל יציאה, ההתנגדות הפנימית אמורה להיות נמוכה מאד.

אני אנסה לראות עם מולטימטר יכול לעזור לי כאן.

אם כן, אז מצאנו שיטה טובה לבדוק, בלי לחבר ולנסות.

נערך על-ידי card

פורסם

ואיך תבדוק התנגדות פנימית בלי להעביר מתח דרך זה, מה שעלול לפגוע במעגלים? :-)

שוב, זה די מופרך שבלוח ארדואינו יהיה סימון לא נכון. נראה לי הרבה יותר סביר שאיזה ליצן לא סימן נכון את המתאם, ובגלל זה מוכרים אותם במחירי רצפה.

אם יש לך עיניים טובות או מיקרוסקופ נוח, אתה יכול לעקוב אחרי החיבורים של RX ו-TX בארדואינו, לראות לאילו רגליים הם מגיעים בצ'יפ ולבדוק במפרט אם זה RX או TX (כי הרגליים האלה מוגדרות ברמת החומרה).

פורסם
  • מחבר
ואיך תבדוק התנגדות פנימית בלי להעביר מתח דרך זה, מה שעלול לפגוע במעגלים? :-)

כשזה כבוי ובלי שום מקור מתח מחובר אל זה..

המולטימטר עצמו כשהוא בודק התנגדות, משתמש במתחים נמוכים ממה שאני זוכר,

נדמה לי שזה 1.5v

פורסם
כשזה כבוי ובלי שום מקור מתח מחובר אל זה..

המולטימטר עצמו כשהוא בודק התנגדות, משתמש במתחים נמוכים ממה שאני זוכר,

נדמה לי שזה 1.5v

הפינים 0 ו-1 בארדואינו הם גם לתקשורת וגם פתוחים לשימוש כללי, מה שאומר שכשהעסק כבוי, לא בטוח שהם יתנהגו כמו שאתה מצפה.

אבל שוב, כל מה שאני אומר זה ניחושים - אתה מוזמן לנסות ולספר מה יצא.

פורסם
  • מחבר

אתה צודק..

TX ו-RX זה הרי פינים D0 ו-D1.

האמת שאולי אפשר לעשות טריק אחר.

אני אבדוק אם כאשר המיקרו-בקר פועל, אם יש מתח כלשהו נמדד, ברגל שמוגדרת כ-Input.

נגיד וזה יראה שרגל שהיא Input היא 1.3v (סתם לדוגמא),

לעומת רגל שהיא Output שאמורה להיות 0v או 5v,

אז מצאנו דרך לבדוק אם רגל היא Input או Output.

אני אעשה את הבדיקה הזו ואגיד מה יצא

פורסם
  • מחבר

אוקיי אחרי הבדיקה, הנה התוצאה:

בלוח Pro Mini,

כשלא מחובר כלום לרגלי ה-TX וה-RX שלו,

ורק מחוברים אליו שני חוטים(מקור מתח ל-Vcc ו-Gnd),

המדידות הן כאלה:

רגל ה-TX היא 0v,

ורגל ה-RX היא 5v.

זו יכולה להיות דרך טובה לזהות, כשרוצים לבדוק לפני שמחברים,

כדי לא לחבר הפוך ולקצר בטעות, במקרה שה-Labelling שגוי.

לגבי איך נבדוק במתאם FTDI שלנו האם ה-Labelling של הרגליים שם נכון - פשוט מאד:

לוקחים LED וקבל 10K בטור,

מחברים את ה-LED+נגד לרגל ה-TX שלו,

ושולחים מהמחשב טקסט ל-COM Port של המתאם, בעזרת כל תוכנת Terminal.

אם ה-LED מהבהב, אז ההדפסה תקינה, TX הוא באמת ה-TX.

אם לא מהבהב, נעביר את ה-LED לרגל ה-RX של המתאם, וננסה שוב.

אם ה-LED מהבהב, אז זה ה-TX האמיתי(וה-Labelling אם כך שגוי).

אם גם כאן לא מהבהב(כלומר בשתי הרגליים לא מהבהב), זה אומר שמשהו בשליחת הנתותנים הסריאליים מהמחשב לא עובד כשורה.

נערך על-ידי card

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים