Det som jag nu som nybörjare undrar är hur jag på min ATmega16 kopplar rent tekniskt så att den blir en half-duplex. Man ska väl som jag förstått koppla ihop Rx med Tx men med motstånd emellan, rätt? Vad är det i så fall för storlek på motståndet?
En liten skiss från någon vänliga själv skulle vara trevligt.
Jag vet jag har många frågor en frågar man inget får man inget veta även om jag ibland ställer frågor som jag inget får veta av
Sen 1 pull up motstånd för att hålla 1 tråds kommunikationen hög när den inte drivs/används. Tittar man på bilden ser man att storleken är 10K dvs 10 Kohm. Tex. detta: Kolytskiktsmotstånd, 1/4 W
det blir halv duplex eftersom du inte kan skicka och ta emot samtidigt med 1 tråd...
Det är just sådana här frågor jag ville ha svar på
De har exempel för en ATmega128 så nog klarar ATmega driva. Servorna drivs ju för övrigt inte på samma spänning som själva uC om det var det du menade med orkar driva.
Då UART-utgången driver kontinuerligt kommer den att blockera svar från servon. Du MÅSTE alltså se till att den fungerar som en OC-utgång, detta kan göras med en 1N4148 (katod mot utgången) varefter man kan koppla ingång och pull-up motstånd till.
Generellt tycker jag att det är ett dumt sätt att kommunicera på, det är störkänsligt och just vid såna applikationer med många motorer finns det störningar.
Om den är dum eller inte låter jag vara osagt men kommunikationen är inte speciellt störsäker, den är å andra sidan inte heller extra störkänslig så det är lite gungar-och-karrusell över det (give some, take some).
Att ha en pull-up på 10K är i mina ögon inte bra, det betyder att drivningen är mindre hård vilket kan öppna för störningar.
Bäst hade varit om de hade kört RS485.... men det hade ställd helt andra krav på den kommunikationsutrustning DU ska göra, timing osv. och MÅNGA hade inte klarat av det på ett bra sätt. Vill man därför göra en grej som alla kan använda blir det en del trade-off.
Bemärk att det mycket väl kan fungera bra och utan problem men det kan även hända att kommunikationen kan bli strulig, det beror på vilket kabel du använder, hur du drar dom, skärmning och allmänt störningsnivå.
Ahh.. driver utgången på UARTen fungerar det klart inte... Trodde att den släppte pinnen efter att den sänt klart.
Varför inte göra som de föreslår?
Vad är problemet med det förslaget?
Använder inte UART när jag implementerade J1708... Så jag kunde koppla ihop dem... Implementerade det i microkod i en timerprocessor...
Om jag hade varit orolig för störningar hade jag byggt små kretskort som man satte på servot och som hade bättre kommunikation... Liten PIC eller Atmel...
Så är avståndet mellan servots 1 tråd och datorn inget större avstånd.
Ja, och vad är problemet???? Vem har pratat om PC????
Pinne 14,15 TxD och RxD???? (DIL)
En GPIO för riktining???
Eller nått... har inte kollat i databladet men skulle vara den första microkontroller med TxD och RxD ben som inte är kopplade till en UART...
Bara för att hålla isär begreppen lite. För att köra på halv duplex behöver du inte göra något alls annat än att i programmet se till så att du inte sänder och tar emot samtidigt. Det säger nämligen ingenting om att RX och TX är ihopkopplade. Sedan är det en annan sak att det ofta används i sammanhang där man har en gemensam buss. Det är lite dumt uttryckt i dokumentet för servot.
Det bästa är nog att använda den koppling som dom beskrivit. Ett alternativ kan vara en shottkydiod i serie med TXD för att inte driva linjen aktivt hög, fast man får inte det skydd och den drivförmåga som deras alternativ ger.