Ha az Arduino csatlakozik a számítógéphez és megnyitja a soros monitort, akkor a Tx és az Rx pin továbbra is működni fog?

Tegyük fel, hogy az egyik az Arduino Uno táblák közül kettőt Rx és Tx csapokon keresztül csatlakoztatott. Akkor, ha az Arduino egyik vagy mindkét lapja számítógéphez csatlakozik, és esetleg kinyitja a soros monitorokat, akkor a Tx és az Rx pin továbbra is működni fog? azaz az Arduino továbbra is kommunikálni fog Rx és Tx pin-en keresztül, amikor kommunikál a számítógéppel? Ha nem, hogyan kell őket működésbe hozni, miközben csatlakozunk a számítógéphez?

  • Az USB FTDI chip a TX / RX csapokhoz van csatlakoztatva. Tehát előfordulhat, hogy a soros nem a várt módon működik.
  • Válasz

    Tegyük fel, hogy az egyik az Arduino Uno táblák közül kettőt Rx és Tx csapokon keresztül csatlakoztatott.

    Feltételezem, hogy az egyik Arduino TX-jét összekapcsolja a másik RX-jével, és fordítva, ami a helyes módja azok összekapcsolásának. Amint a TheSealion válaszában kifejtette, nem szabad két TX-csapot összekötni.

    ha az Arduino alaplapok egyike vagy mindkettő csatlakoztatva volt a számítógéphez, és esetleg megnyíltak a soros monitorok

    Ha ezt megteszi, az Arduino észre sem veszi.

    Nos, hogy pontosabb legyek … van egy kis chip az Uno-n, nea r az „MEGA16U2” feliratú USB-csatlakozót. Ezt a chipet USB / soros átalakítóként használják, és észre fogja venni, amikor csatlakoztatja az USB-kapcsolatot, és amikor megnyitja a portot. A fő chip (a nagy PDIP28), amely a vázlatot futtató mikrovezérlő, nem fogja tudni és nem fogja érdekelni.

    Tx és Rx rögzíteni fogja még mindig működik?

    Teljesen.

    az Arduino továbbra is kommunikálni fog Rx-en keresztül és a Tx pin, amikor kommunikál a számítógéppel?

    Az RX nem fog kommunikálni a számítógéppel. Mi fog történni:

    • Bármit is ír az Arduino a soros portjára, a másik Arduino és a soros monitor is megkapja.
    • Bármit is küld a soros monitoron, elveszik.
    • Ha Serial.read(), akkor megkapja, amit a másik Arduino állított be.

    Ennek a viselkedésnek az oka egy   kΩ ellenállás, amely a Mega16U2″ TX és a fő mikrokontroller RX között helyezkedik el. Amikor ezt az RX-t a másik Arduino TX-hez csatlakoztatja, amelynek impedanciája alacsony (≈ 2 5   Ω), akkor a TX „győzni fog”: az alacsony impedanciájú kimenet felülmúlja a nagy impedanciát.

    Válasz

    hogyan lehet [két egymással kommunikáló Arduinót] működtetni, miközben csatlakozik a számítógéphez?

    Számos módja van annak, hogy 2 Arduino közvetlenül kommunikáljon egymással, miközben egyikük vagy mindkettő USB-n keresztül kommunikál egy laptop számítógép soros monitorjával.

    • Használjon UART-t az Arduinos számára az USB-kapcsolattól független kommunikációhoz. (Lásd: https://www.arduino.cc/reference/en/language/functions/communication/serial/ )

      • Számos Arduino-kompatibilis tábla, például az Arduino A Mega 2560, az Arduino Due, az Arduino Uno Wifi Rev.2 stb. 4 hardveres UART-mal rendelkezik; a Serial1 csapjait (vegye figyelembe az “1” -t) fel lehetne használni arra, hogy kommunikáljon egy másik Arduinóval anélkül, hogy zavarja a Serial (“” 1 “nélküli) UART kommunikációt USB-n keresztül egy laptopon. (Jaj, az Arduino Uno-nak csak 1 hardveres UART-ja van).
      • Az ATmega32u4 alapú Arduino Micro és Arduino Leonardo és ATmega32u4 alapú Arduino származékok, például FLORA és számos ARM-alapú Arduino-származék, például a Teensy sorozat rendelkezik USB-interfésszel, amely nem használ semmilyen az UART tűk közül; így a Serial1 csapjai (vegye figyelembe az “1” -t) arra használhatók, hogy más Arduinóval kommunikáljanak, anélkül, hogy zavarnák a soros (“1” nélküli) nem UART kommunikációt USB-n keresztül egy laptopon. (Jaj) , az Arduino Uno rendelkezik USB-interfésszel, amely csak az egyetlen hardveres UART-csapot használja).
      • Még az Arduino Uno-t is, amelynek csak 1 hardveres UART-ja van, amelynek csapjai vezetékes Az USB interfész chip bit-bumm-os lehet az UART lassú szimulációjával más csapokon. Lásd: Mi a ' s az összes különbség a szoftver soros könyvtárak? Melyik kompatibilis az Arduino Nano-val? .
    • Ahelyett, hogy megpróbálná szimulálni az UART-ot a szoftverben (az időzítés meglehetősen trükkös), könnyebb / gyorsabb lehet más kevésbé időérzékenyeket használni az Arduino Unos vagy más Arduinos közötti kommunikáció módjai, például

    Válasz

    Pont ugyanezt a problémát kaptam! Az Arduino Uno táblát egy Jtag ICE mkii-vel használtam a hibakereséshez, ami nagyon jól sikerült. Ahogy elkezdtem használni az UART-ot, súlyos rendetlenség volt. Az Arduinóról egy külső TTL-USB adapterre történő továbbítás működött, de nem a másik irányba. Órákkal játszottam, mielőtt megláttam ezt a szálat, és ez adta az ötletet, hogy belenézzek a sematikus – > Bang! Láttam a két ellenállást. Tanulság: Ne használja az Arduino hardvert a többi eszköz nélkül! Úgy gondoltam, hogy jó ötlet a hardver gyors fejlesztéséhez használni. Most több időbe kerül, mint gondoltam …

    Válasz

    Nem szabad két TX csapot összekapcsolnia. Az Arduino rendelkezik néhány védelmi ellenállással, de még akkor sem ajánlott két kimeneti csapot csatlakoztatni.

    Az RX / TX érintkezők közvetlen használatának egyetlen mentési módja a védelmi ellenállások eltávolítása (a referenciatervben RN4A és RN4B ) vagy legalább az RN4A-t, és egyszerre csak egy kapcsolatot használjon. Nem segít, ha nem használja a számítógépes kapcsolatot, vagy nem nyitja meg a soros monitort, mivel a csapok továbbra is kimenet.

    (A többszörös RX csapok nem jelentenek problémát, mivel ezek inputok)

    (És természetesen tudom, hogy több TX pólussal együtt működhet a legtöbbször, de ajánlom)

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük