Förstå sig på seriell kommunikation

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
roband915
Inlägg: 15
Blev medlem: 28 september 2014, 21:32:05

Förstå sig på seriell kommunikation

Inlägg av roband915 »

Jag försöker koppla in ett ekolod till en Arduino men inser att det inte är "bara" koppla in. Jag förstår mjukvara men inte hårdvara i stora ord. Jag har googlat o läst om UART TTL o TTL o allmänt seriel kommunikation men jag förstår fortfarande tyvärr inte vad som skiljer pin 0 i pin 1 som är Arduinons "riktiga" seriella kontakter mot t.ex om man använder sig av pin 8 o 9 o sen biblioteket SoftwareSerial som finns tillgängligt.
Är det så att intelligensen här inte räcker till eller går det förklara med lekmanna-termer vad som skiljer dessa pins åt?
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43148
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Förstå sig på seriell kommunikation

Inlägg av sodjan »

En AVR (som är "hjärnan" i en Arduino) har en inbyggd UART/USART enhet i hårdvaran.
Denna har normalt vissa dedikerade I/O pinnar för TX och RX linjerna.

Sen kan man så klart skriva programvara som gör samma jobb som en USART
gör i hårdvara, och programvaran kan så klart köra mot valfria pinnar.

Välj det du vill och du får så klart köra rätt biblioteksrutiner därefter.
Det är mycket mer jobb för processorn att köra SoftwareSerial, om
det är ett problem eller inte i just ditt fall är omöjligt att säga.

Men vad var frågan egentligen?
När eller varför man ska använda det ena eller det andra?
j.po
Inlägg: 279
Blev medlem: 24 november 2008, 20:40:19
Ort: Halmstad
Kontakt:

Re: Förstå sig på seriell kommunikation

Inlägg av j.po »

pin 0 och 1 går till den hårdvaru UART som finns i ArduinoUno, denna används ofta till att skicka data till din PC. Skall du ansluta någon annan enhet upptill, alltså kommunicera med 2 saker samtidigt behöver du en UART till. Den andra kan man fixa i mjukvaran.
Har du en ArduinoMega tror jag att den har 3st hårdvaru UART och då behöver man inte någon mjukvaru UART.
Hoppas det var svar på frågan.
roband915
Inlägg: 15
Blev medlem: 28 september 2014, 21:32:05

Re: Förstå sig på seriell kommunikation

Inlägg av roband915 »

Tack för två bra svar! Bilden börjar klarna helt klart :)
sodjan: Du svarade väldigt pedagogiskt på min fråga och du ställde min följdfråga själv :) När eller varför ska man använda det ena eller andra?

Skiljer sig inte en hårdvaru-uart mot en mjukvaru-uart på något sätt? Klarar de båda lika mycket spänning t.ex?
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Förstå sig på seriell kommunikation

Inlägg av Icecap »

Spänningarna de "tål" är vad µC'n tål, inget annat.

Men när man börjar bygga mer seriösa program kan en UART (hårdvara alltså) sköta om att sända och ta emot och bara ge en interrupt när den ska fyllas på eller tömmas. Detta betyder att den sköter timing, sekvens och det mesta.

En mjukvaru-UART använder µC'n hela kapacitet medan den tar emot eller sänder, du kan inte ta emot något utan att den tar all kapacitet och den kan inte ta emot något som kommer "oförutsett" - om inte man löser hela µC'n.

Så mjuvaru-UART är alltid en dålig idé och bör undvikas så långt som möjligt.
j.po
Inlägg: 279
Blev medlem: 24 november 2008, 20:40:19
Ort: Halmstad
Kontakt:

Re: Förstå sig på seriell kommunikation

Inlägg av j.po »

UARTen har inte med spänningen på signalerna att göra, även om det är en hårdvaru UART. Vill du t.ex. använda RS-232 behöver du en krets som omvandlar +-12V till +5V/0V (TTL nivå) som CPU'n använder.
Skriv svar