מציג תוצאות 1 עד 11 מתוך 11

נושא: המשך- תקשןרת RS232 עם אנדרואיד

  1. #1
    תאריך הצטרפות
    Jul 2016
    הודעות
    159
    תודה
    61
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts

    המשך- תקשןרת RS232 עם אנדרואיד

    בהמשך לפוסט הקודם:
    יש לי בקר שמדבר ב- RS232 ואני צריך לחבר אותו לאנדרואיד.

    בהתחלה השמשתי במתאם RS232 ל USB, וחיברתי אותו ל OTG של האנדרואיד.
    זה עובד מעולה והכל טוב.

    הבעיה היא שכל פעם שמדליקים את המכשיר, או מחברים מחדש את ה USB, הוא מבקש הרשאה משמשתמש. וזה לא כ"כ מתאים לי. (זה מוצר ציבורי).

    אולם, יש לאנדרואיד הזה יציאת URAT. (זה מוצר שמתאים למערכות משובצות).
    חיברתי את הבקר ליציאה, והשתמשתי בספרייה של היצרן.
    אני מצליח לקרוא נתונים מהבקר בצורה מעולה.
    אבל משום מה, פקודות ששלחתי לבקר לא עבדו.
    אז חיברתי את האנדרואיד, דרך ה UART, למחשב (עם מתאם RS232 ל USB). ואני רואה שאכן הפקודות שאני שולח למחשב מהמכשיר מגיעות משובשות. אפילו שהקצב והכל מתאים.

    אך הנתונים מגיעים כל פעם אותו דבר.

    עשיתי באנדרואיד לופ מ -0 ל 255, וכל פעם שלחתי בייט אחד (בערכים מ-0 עד 255).
    הוא הביא לי נתונים מוזרים.
    משהו כמו:
    0=0.
    אבל 1 שווה 127.
    ו- 3 שווה ל 126
    5 שווה ל 125
    וכן כל מספר אי זוגי יורד בסידרה הזו.

    אבל מספריןם זוגיים בסדר אחד.

    בקיצור, מה יכול להיות הכיוון?

    להזכירם, הצלחתי לקרוא בצורה תקינה מהבקר!

    תודה רבה.

  2. פרסומת
  3. #2
    תאריך הצטרפות
    Mar 2015
    מיקום
    פתח תקווה
    הודעות
    282
    תודה
    1
    קיבל/ה 50 תודות ב-49 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    בהנחה שהקצב בסדר, האם קינפגת אותם פרמטרים בשני הצדדים? אורך מילה, אורך סטופ ו-parity?
    בד"כ אורך מילה 8, סטופ 1 ובלי parity.
    ובכל זאת לגבי הקצב. אם עובדים עם בקרים ב-8MHZ אי אפשר להגיע קרוב מספיק לקצב 115200 אבל אפשר לעבוד ב-57600.
    מה תדר העבודה של הבקר שלך ובאיזה לוח מדובר?
    ש.ר. תכנון ופיתוח כרטיסים אלקטרוניים, ארדואינו, FPGA, Verilog, תוכנה וחומרה. sreches@gmail.com
    http://www.arduino-freelance.com

  4. #3
    תאריך הצטרפות
    Jul 2016
    הודעות
    159
    תודה
    61
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    הכל מקונפג כמו שצריך.
    בקצב 9600.

    אני לא יודע איזה לוח יש בבקר.

    בכל אופן, כשאני מחבר את הבקר ל PC שלי, כל התקשורת עובדת טוב.

    רק מול האנדרואיד יש את הבעיות.

    אולי זה קשור לרמות TTL ו- RS232?

    כי הבקר אני חושב ברמות RS232. והאנדרואיד איך שהבנתי ב- TTL.

  5. #4
    תאריך הצטרפות
    Aug 2013
    הודעות
    2,188
    תודה
    15
    קיבל/ה 349 תודות ב-313 הודעות
    תודה
    0
    Thanked 1 Time in 1 Post
    ברור שקודם כל אתה צריך ששני המכשירים ידברו באותן רמות מתח.
    ב RS232 מתח חיובי זה 0 ומתח שלילי זה 1 ותחום המתחים יכול לנוע בין +/- 13 וולט
    ב TTL רמה של 1 לוגי (כ 5 וולט) זה 1 ורמה של 0 (כ 0 וולט) לוגי זה 0.
    כך שברור שאין סיבה שהם יעבדו ביחד (וכמו כן עלייך לקוות שהרמות של ה RS232 לא ידפקו את מעגל ה TTL)

    אם רמת ה UART בבקר היא TTL אז אתה צריך רכיב שממיר את זה ל RS232 (למשל רכיב MAX232) - למיטב זכרוני יש כאלו מתאמים זמינים ברשת אם לא בא לך לבנות את המעגל (זה בד"כ הרכיב + מספר קבלים)

  6. #5
    תאריך הצטרפות
    Jul 2016
    הודעות
    159
    תודה
    61
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    אבל עכשיו אני מצליח לקבל מידע מהבקר.
    איך זה אפשרי אפילו שזה ב TTL וזה ב RS232?
    אולי האנדרואיד יודע להתאים את עצמו??

  7. #6
    תאריך הצטרפות
    Aug 2013
    הודעות
    2,188
    תודה
    15
    קיבל/ה 349 תודות ב-313 הודעות
    תודה
    0
    Thanked 1 Time in 1 Post
    בלי להכיר את המערכת זה קצת גישוש באפלה.
    אין לי הסבר איך מסתדר היפוך הלוגיקה, אבל מבחינת רמות המתח זה אפשרי (כל עוד צד ה TTL לא נדפק מרמות המתח) - מתח חיובי גדול בצד ה RS נקטם למתח 5 וולט בצד ה TTL. מתח שלילי בצד ה RS נקטם ל 0 וולט בצד ה TTL, כך שצד ה TTL מקבל אותות ברמות שהוא מצפה להם. אבל בכוון ההפוך צד ה RS לא מקבל רמות מתח להן הוא מצפה ולכן העסק משתבש.
    אם ברור לך שצד UART של האנדרואיד מספק רמות של TTL, תחבר ממיר לרמות RS וזה אמור לעבוד.

  8. #7
    תאריך הצטרפות
    Jul 2016
    הודעות
    159
    תודה
    61
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    זה אמור להיות טוב?

    https://he.aliexpress.com/item/MAX32...49203c008ULuMn

    אם כן, איזה מתח צריך לחבר ל VCC? המתאם הזה צריך מתח עצמאי כדי לפעול?
    אשמח גם לקבל על המלצה על משהו בארץ (במחיר שפוי).

  9. #8
    תאריך הצטרפות
    Aug 2013
    הודעות
    2,188
    תודה
    15
    קיבל/ה 349 תודות ב-313 הודעות
    תודה
    0
    Thanked 1 Time in 1 Post
    כן, זה המודול. הוא צריך לקבל 5 וולט - אם יש לך לתת לו מהבקר אז מצוין (זו לא צריכה גדולה) ואם אתה נותן מתח חיצוני אתה צריך לחבר את האדמה של המתח החיצוני לאדמה של הבקר.
    לא יודע מי מוכר בארץ ובאיזה מחיר.

  10. #9
    תאריך הצטרפות
    Jul 2016
    הודעות
    159
    תודה
    61
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    תודה.
    נחכה שבועיים שלוש.
    ואעדכן.
    (יש בארץ בכמעט 100 ש"ח. וזה לא מגיע לדואר שליד הבית...)
    תודה רבה.

  11. #10
    תאריך הצטרפות
    Jul 2016
    הודעות
    159
    תודה
    61
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    אגב, אם נניח והבעיה היא חוסר התאמה בין RS232 ל TTL, איך אפשר להסביר שהאנדרואיד יכול לקרוא את הבקר בצורה טובה? ורק לשלוח נתונים הוא לא מצליח בצורה תקינה.

    שאלה נוספת, במקרה רגיל שאני משתמש במתאם RS232 ל- USB, הוא אמור להתאים גם ל- TTL?

  12. #11
    תאריך הצטרפות
    Aug 2013
    הודעות
    2,188
    תודה
    15
    קיבל/ה 349 תודות ב-313 הודעות
    תודה
    0
    Thanked 1 Time in 1 Post
    תסתכל על חת התשובות שלי הקודמות - נתתי הסבר אפשרי לכך שהתקשורת עובדת בצורה חד כוונית.
    לא מובנת השאלה שלך. כל אחד זה מתחים ו/או פרוטוקולים שונים

    ממיר USB ל RS232 ממיר קודם כל מ USB ל UART (אלו הם הרכיבים כמו FTDI, PROLIFIC, CH340) ואז עושה LEVEL SHIFTING ל RS232 (עם רכיבים כמו MAX232) - וכמובן גם את כל ההמרה ההפוכה.
    TTL זו רמת ה UART הבסיסית שיוצאת מפיני התקשורת של המיקרוקונטרלר.המרה של האות הזה לרמות RS232 נעשית עם רכיב LEVEL SHIFTER (כמו MAX232)

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

  13. מי אמר/ה ל-gbgb תודה על ההודעה המועילה הזו:

    aepshtin (23-12-2018)

הרשאות פרסום

  • אין באפשרותך לפרסם נושאים חדשים
  • אין באפשרותך לפרסם תגובות
  • אין באפשרותך לצרף קבצים
  • אין באפשרותך לערוך את הודעותיך
  •  
הרשמה