Skicka information mellan två st ATmega16

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
lennie
Inlägg: 26
Blev medlem: 30 juni 2007, 22:38:44
Ort: Malmö

Skicka information mellan två st ATmega16

Inlägg av lennie »

Hej.
Håller på med ett litet projekt som jag sitter och planerar. Mitt problem är följande.
jag kommer att ha en central med några knappar och en glcd skärm.
ca 40 meter bort ska jag ha en till liten central med lite olika typer av sensorer. Jag behöver skicka sensor datan ifrån Atmega16 central 2 ( där sensorerna sitter ) till Atmega16 central 1.
hur gör man för att koppla ihop två atmega16 så att jag kan skicka information mellan dem.
Hur många portar behöver jag använda på varje atmega16..
hur lång kan anståndet vara mellan dessa två atmega16.
informationen som kommer skickas där i mellan kommer typ att vara..
sensor 1 = 25
sensor 2 = 22
osv.. och så kommer den informationen skickas om en gång i minuter….
Något speciellt man ska tänka på när man använder flera avr i samma projekt?
Är som sagt ny på detta….
kimmi
Inlägg: 221
Blev medlem: 13 april 2007, 12:25:00

Inlägg av kimmi »

Hi,
Du kan bruge Uart RX/TX
Har testa dom (RS232) up til 300 Meter var ok med Baud 9600
der findes oxå billiga radio moduler som klarer din distance
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

LPRS har välfungerande radiomoduler, jag använder deras "Easy radio" och det är enkelt men kabel duger bra det med.

Enklast är att koppla serieportarna ihop, antingen via radiomoduler eller via kabel med var sin MAX232 (eller liknande) vid processorerna då 40 meter kabel kan samla upp mycket "smuts". Bäst vore att ha en optokopplare vid ingången av varje µC samt ett drivsteg på utgången, detta kan skydda skapligt mot de pulser som faktisk förekommer vid åska, det är ju sådär lagom kul att allt fungerar bra fram till en blixt slår ner i grannlaget varpå båda µC släpper ut den magiska röken.

Om data bara ska skickas ena hållet kan du även köra RS485, detta betyder att du tar 2 st MAX485 (eller liknande) istället för MAX232. Med RS485 och tvinnad kabel kan du kommunicera en del snabbare samt hålla en lägre störningsgrad.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

För 19$ får du t.ex. http://www.sparkfun.com/commerce/produc ... cts_id=705#
nRF24L01 och reverse-SMA antenn(wlan antenn).
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Nja... $19,95 faktisk.... för varje ända. Sedan ska man ställa in allt i den för att den ska kommunicera och allvar: när man inte är tvärsäker på hur man kopplar ihop ett par µC kommer detta att vara oöverskådligt.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Jag tror icecaps förslag med RS485 är bra. Brukar köra det när avståndet är över 10 meter på uart, säkrast så. MAX487 har jag använt en del med och är nöjd över hur de presterar.
http://www.maxim-ic.com/appnotes.cfm/appnote_number/723

Edit: sedan tar du Transientskyddsdioder mot jord på datalinorna så lär inte åskan kunna ställa till med något, förutom när(inte om) du får en direktträff.
lennie
Inlägg: 26
Blev medlem: 30 juni 2007, 22:38:44
Ort: Malmö

Inlägg av lennie »

Nu blev det jobbigt :(
Om man har mindre avstånd mellan ATMega16 enheterna. Finns det något lättare sätt att skicka informationen mellan dem då?
Tex. Om jag sätter dem 5 cm ifrån varandra. Och drar länge kablar ut till sensorerna, allt ifrån 20-50 meter ut till sensorerna.
Om man nu väljer att gå på Uart ( RS232) vad behöver man mer än 2 st ATmega16.
behövs någon andra komponenter som man sätter på ATmega för att använda RS232.
kimmi
Inlägg: 221
Blev medlem: 13 april 2007, 12:25:00

Inlägg av kimmi »

Hi,
Nej om du anvender RS232 skal du bara kobla TX to RX & RX to TX mellan dom 2 avr
Thats it,
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Om man nu väljer att gå på Uart ( RS232) vad behöver man mer än 2 st ATmega16.

Ingenting, om det bara är 5 cm (eller upp till någon meter kanske).

Beror på hastighet också, om du kör lite långsamt, och det inte
är allt för mycket störningar, klarar du kanske 50-100 m.
Eller häng på RS232 drivers (MAX232) så klarar du längre sträckor.

Jo, lite kabel behövs också... :-)

> Nej om du anvender RS232 skal du bara kobla TX to RX & RX to TX mellan dom 2 avr

Då kar han **INTE** RS232 !!
kimmi
Inlägg: 221
Blev medlem: 13 april 2007, 12:25:00

Inlägg av kimmi »

Hi ,
Rs232 , ja det var fejl at skriva det ,
men om han bara skal senda data mellan 2 AVR funker det med RXD TXD
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Varför ska du ha två AVR om de sitter så nära varandra? :)

Hursomhelst, vid korta avstånd används I2C (Inter-IC), SPI eller vanlig hederlig asynkron seriell kommunikation (RS232 med logiknivåer om man så vill).
lennie
Inlägg: 26
Blev medlem: 30 juni 2007, 22:38:44
Ort: Malmö

Inlägg av lennie »

Hej
Anledningen som jag vill ha två AVR nära varandra är för att portarna inte räcker till med en AVR.
använder mig av ATmega16. dem har PORTA till D. skulle behöva ha 2 portar till.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

In eller utportar? eller båda?
för utportar så går 74HC595 använda.
finns liknande för inportar.
Annars skulle t.ex. MCP23S17 från microchip fungerar bra.

Ett problem med att använda flera processorer är att komplexiteten på programvaran ökar och leder till fler fel.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Yep, det är frestande som nybörjare att slänga in en µC till bara för att det är slut på portar. Så gör man inte i professionella produkter eftersom det mest leder till besvär med två olika mjukvaror, kommunikationsproblem och oftast merkostnader. Ett eller flera välplacerade logikkretsar (skiftregister, muxar, avkodare) löser allt som oftast problemet bäst!
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Skall du ändå ha uppemot 40m mellan sensorer och användare så skulle jag helt klart lagt det extra jobbet på en seriekommunikation mellan två mikrokontrollers. Det blir mycket bättre struktur på uppbyggnaden med det och du får fåtal trådar på den långa vägen.

För så långa avstånd så är, precis som Icecap sa, RS485 mycket lämpligt. Då kan du med tre portpinnar i vardera änden skicka data åt båda hållen över väldigt stora avstånd.

Alternativet om du ändå bestämmer dig för att bara ha sensorerna "långt bort", är att använda 1-wirebuss. Men det är lite beroende på vad för typ av sensorer du skall ha också.
Skriv svar