Problem med MAX485/487 kretsar.. Varför gör den så här?

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Hej på er,

Håller på med ett projekt där jag använder RS485 kommunikation via MAX485/487 kretsar. (Får samma fel på båda sorter)

Kretsen ifråga har vi en bild på här;
1111.gif
Jag har ju kopplat in så att jag har en USB->485 krets som går med sina A-B in på MAX485/487 kretsen (6 och 7) på mitt breadboard. På andra sidan kretsen har vi RO (1) och DI (4) som vardera är kopplade till RX/TX till en AVR. Slutligen har vi inverterade RE (2) samt DE (3).

RE och DE ska vara varandras motsats och jag förmodar att jag då kan ansluta en pinne från min AVR direkt till båda samtidigt. Effekten är ju då som så att om jag har en låg signal ut från kontrollpinnen till RE+DE så aktiveras RE och DE ligger avaktiverad, vilket gör att MAX485/487 kretsen lyssnar på inkommande trafik.

Om jag istället sätter en hög signal (+5V) ut från min AVR på kontrollpinnen till RE+DE så avaktiveras RE och DE aktiveras, vilket gör att MAX485/487 kretsen lägger sig i sändningsläge.

Det är helt ok och fungerar hur bra som helst, så länge jag mäter signalen mellan kontrollpinnen och GND/0V på projektet med min multimeter. Tar jag bort mätinstrumentet så slutar kommunikationen att fungera helt och hållet. Det kommer inget vettigt, det kommer inget skräp, det är helt dött!

Jag har inga trasiga eller lösa kablar/ledningar någonstans som kanske skulle kopplas ihop när jag trycker dit mätinstrumentet.. Allt ser ut som det ska i övrigt..


Tänkte att jag kanske behövde ett pulldown, men det hjälpte inte. Provade med pullup, hjälpte inte..
Har ni några förslag på vad jag kan behöva göra? Det är ju inte så skoj att sitta och hålla mätinstrumentet mot bara för att kunna utveckla projektet vidare ;)


Tacksam för alla svar och hjälp jag kan få!


EDIT
Glömde skriva att det ligger ca 0.5V hela tiden ut från AVR pinnen, den blir aldrig helt 0V. Men 0.5V borde väl inte göra så att MAX485/487 kretsen tror att den ska ligga i sändningsläge hela tiden?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46934
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av TomasL »

Lägg en Pullup eller Pulldown på RE/DE och se om det hjälper.
Ofta lämpligt med Pullup/down på RO/DI också.
En annan sak är att Maxim (och en del andra tillverkare) av någon anledning vänt på A och B i sina datablad, vilket mycket frustrerande.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Tack för svaret TomasL!
Hade ingen aning om att de vänt på det i databladet, men det kan ju vara bra inför kretskortdesign att ha i åtanke :P Det är ju det "bra" med breadboards när man bygger ihop prototyper, då kan man ju koppla om tills det fungerar :D

Men det fungerar när jag håller mätinstrumentet på RE/DE.

Hittade dock felet, började mäta på mitt breadboard för att se om signalerna gick som jag trodde och det visade sig att GND/jord raden inte var hel, så det var avbrott precis där jag tidigare kopplade in pulldown för RE/DE.

Så nu verkar det fungera som det ska när jag kopplade in pulldown på riktiga GND/jord :) Så det var det som var felet, jag trodde jag hade gjort något fel eller helt enkelt (som vanligt) inte förstod vad som ska göras. Men för en gångs skull verkade jag ha hittat felet själv :D

Ska ha ditt inlägg i åtanke när man ska designa vidare, kanske kan det vara lämpligt med pullup/down på RO/DI också, får se om jag får några andra konstiga fel, då ska jag prova det :)


Men för närvarande verkar det fungera igen :)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46934
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av TomasL »

När det gäller A/B får du jämföra med RS-standarden där:
A är "-" eller den "inverterade" pinnen.
B är "+" eller den "Icke inverterade" pinnen.

En del tillverkare såsom till exempelvis Maxim tyckte det lät bättre om det var tvärtom, så de vände på beteckningarna med vilje.
Dessutom finns det en del tillverkare som i stället använder D+/D- i stället.

Efter denna lärdom använder jag själv A- och B+, för att undvika fel.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Aah, det kan ju vara smart, för +/- blir ju aldrig fel. Men då är alltså D- detsamma som A- och D+ detsamma som B+?

---

Svarade nog lite för tidigt.. :(

Nu är ett pulldown inkopplat korrekt till RE/DE och jag kan ta emot data hur bra som helst. Däremot, så klarar inte min AVR att driva upp pinnen till tillräckligt hög nivå så att MAX485/487 kretsen ändrar till sändningsläge.

Detsamma gäller om jag sätter ett pullup istället på RE/DE. Då kan inte min AVR dra ner signalen till GND/0V så att lyssnarläge aktiveras.

Är jag tvungen att köra en separat pinne för RE och en för DE? Ska det inte gå att koppla så som jag gjort? Dvs en kontrollpinne ut från AVR som styr både inverterad RE och DE samtidigt. Hög signal aktiverar DE och avaktiverar RE, medan en låg signal aktiverar RE och avaktiverar DE..?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46934
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av TomasL »

Eller enligt maxims mfl sätt att se det
D+ = A
D- = B
B(+) = A
A(-) = B

Hur mycket Pullup/down har du?
Vad säger MAX databladet om ingångarna och hur mycket ström kan din AVR hantera på de valda pinnarna?
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Ännu en uppdatering..

Tog bort pulldown/pullup, provade bara för skojs skull för att jag skulle vilja ha en "hårdvaru"-indikator på när det faktiskt går data genom MAX485/487 kretsen.. dvs.. När kretsen aktiveras för utsändning.. inte igenom.. aja :)

Så jag tog bort det motståndet, kopplade in en LED med anod mot kontrollpinnen, 180 ohm på katod mot GND/jord och nu fungerar det att både ta emot och skicka.. HELA TIDEN!?

Helknasigt.. men det verkar fungera.

Men, det betyder ju inte att det här är löst.. Om jag inte vill designa in det såhär i fortsättningen, så måste jag ju få veta/förstå vad det är som gör att det blir såhär.. Varför fungerar det inte bara med ett pulldown/pullup på kontrollpinnen?

Jag har ju alltså bytt ut pulldown/pullup mot en LED och ett motstånd mot GND/jord och nu fungerar det?


---

Skrev det ovan medan du svarade TomasL! Svarar på det här under nu :)
Jag vet att AVR kretsen har ett max på typ 40mA, men det är rekommenderat att inte driva mer än max 20mA. Så givetvis, max 20mA.

Pullup/pulldown körde jag med 1K.

Jag ska läsa genom och se vad Maxim säger om MAX485/487 ingångarna, vid en snabb koll så verkar de inte behöva någon superhög ström. Hittade även att mer än 2V ska göra DE aktiv och RE inaktiv, medan värden under 0.8V ska göra RE aktiv. Det är ju värden jag höll mig väl över och under utan pulldown/up.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Nej nu blir jag tokig.. Det fungerar bara verkligen inte och jag behöver verkligen er hjälp! Ska försöka rada upp allt så bra jag kan, missar jag något så vet jag att ni tjatar på mig tills jag postar det som behövs ;)

Hela projektet som det ser ut just nu, det är tre stycken AVR som var och en, helt för sig, fungerar utan problem. De behöver jag inte hjälp med.

Vardera AVR är kopplad till varsin MAX487 med RX/TX ut från AVR in på RO/DI, i rätt ordning vilken det nu är. Anledningen till att jag skriver så är för att jag fått det att "fungera" när jag läser av RS485 signalen "efter konvertering" med en Saleae Logic-8 logikanalysator.

Jag kan koppla in min logic efter vilken MAX487 som helst (på UART sidan) och läsa av det som både skickas in i MAX kretsen och det som kommer från RS485 bussen efter konvertering i MAX kretsen. Här får jag korrekt data varje gång, båda hållen, oavsett vilken MAX krets jag kopplar in mig på.

Ta en titt på följande foto, min setup.
rs485_setup.jpg
På bilden är min logic inkopplad på UART sidan av MAX kretsen för den krets-setup som har nummer 2. Vid varje reset är vardera AVR programmerad att skicka ut en sträng om vilken "krets" den är i systemet.

Krets 1 är 50, Krets 2 är 51 och Krets 3 är 52. Egentligen oviktigt, men jag bara radar upp :)

Om jag trycker på reset på Krets 2 så kommer jag givetvis kunna läsa av med min logic som är inkopplad på UART'en som tillhör Krets 2, vad som skrivs ut. Inget konstigt med det förstås!

Men, om jag trycker på reset på Krets 3 eller Krets 1, så kan jag läsa av vad de skickar ut också! Denna data går då följande väg, om man tänker sig att min logic hämtar upp datan.

Kod: Markera allt

Krets 1 - UART -> MAX487 för Krets 1 -> RS487 buss -> MAX487 för Krets 2 -> UART - Krets 2 -> LOGIC-8
Alltså fungerar min buss som den ska!? Eller hur?


Men.. Om jag försöker koppla in min USB-485 omvandlare så fungerar bara ut-datan från MAX487 kretsen som tillhör Krets 1. Som är precis ovanför logic krokarna i fotot. Jag får absolut ingen vettig data ut från de andra MAX487 kretsarna in på min USB-485 omvandlare, i bästa fall är det skräp som kommer ut från Krets 2 och Krets 3.

Detta medan min logic klarar att läsa av bussen utan problem.


Om jag använder RS232 chippet som finns på mitt STK500 utvecklingskort, kopplar in RX/TX mot UART på valfri krets så fungerar det utan problem att se "den" kretsens UART trafik. Däremot kommer det ingenting från RS485 bussen.

Alltså, om jag skickar ut information på Krets 1 och är inkopplad med RS232 kretsen på UART'en som tillhör Krets 2, båda kretsarna är ihopkopplade via två MAX487 med en RS485 buss emellan. Det kommer ingenting på RS232 linjen då. Fortfarande, samma exempel, jag kan läsa av alla tre kretsar med min logic på valfri UART, precis där RS232 kretsen är inkopplad.


På fotot ovan använder jag inte tvinnad kabel med RS485 bussen och för tillfället sitter det bara ett slutmotstånd på 120 ohm, men jag har använt riktig tvinnad RS485 kabel, jag har haft 120 ohm motstånd både i början och slutet.. Det gör ingen skillnad :(



Är det så att det här är något att räkna med att det inte går att läsa av det? Att logikanalysatorn är extra känslig eller "snäll" så den kan se datan eller är det möjligen något fel på RS232 kretsen och USB-485 omvandlaren?


Hoppas att ni förstår vad jag menar! Snälla, jag behöver verkligen hjälp med det här.
Vad behöver jag göra? Vad kan jag göra? Vad behöver ni för mer information?

Har ni möjlighet att hjälpa mig med detta? :oops:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46934
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av TomasL »

Börja med ett komplett schema, samt en bättre problembeskrivning om vad som fungerar och vad som inte fungerar samt hur det är tänkt att fungera.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Jadu.. bättre problembeskrivning.. det är ju ett problem! Men ska försöka ;)

Först en ritning, det är så här det är kopplat på mitt breadboard. RS485-A samt RS485-B är det som sammankopplar processorerna, plus en matning +5V samt GND/Jord.
node_general_v1.jpg
Varje processor och dess kringkomponenter, som jag kallar "Node", fungerar var och en för sig utan problem. De kör på sin inbyggda kristall 8MHz, vilket schemat ovan visar - ingen extern kristall. Senare kommer det givetvis vara en extern, men eftersom det bara är prototyp just nu så vill jag bara få kommunikationen att fungera innan jag går vidare.

Detsamma gäller övrigt som ska kopplas in på ADC pinnar och övriga portar på processorn, jag har helt enkelt inte kommit så långt då jag fastnat på kommunikationen.


Det som inte fungerar verkar vara just kommunikationen, på RS485 bussen mellan MAX kretsarna?

Det som fungerar är, om jag kopplar in RS232 kretsen som sitter på STK500 utvecklingskortet till UART pinnarna ut från varje processor, innan MAX kretsen, så får jag korrekt och fin data. Det visar ju att varje "node" fungerar var för sig.


Jag har ju en USB-485 modul som jag kan koppla in på RS485 bussen. Den är ju medlem i det team som ska kunna kopplas ihop en massa av, så här ska jag ju kunna använda den för att lyssna av bussen.

Det kan jag, men bara för data som kommer ut från node 1. Jag har provat att byta plats på A och B på mitt breadboard, ut från de andra MAX kretsarna. Och i ena läget kommer det rent skräp ut (helt enligt reglerna, man kan inte byta plats på dem, det vet jag), i det andra läget kommer det vad som verkar en mer konsekvent längd av en sträng, men fortfarande skräp.

- Gjorde en check igen medan jag skriver det här, om A och B sitter "korrekt" så får jag ut korrekt data från node 1, men skräp från node 2 och node 3 där jag får ut exakt samma data varje gång (en sorts skräp från node 2 och en sorts skräp från node 3).

Kod: Markera allt

Node 1
NOD 50 - Klar för drift!

Node 2
NO„ªŠ ­Z±ar2Ùr ¤®ËÑ…
á

Node 3
NODê2 KZ±…ÉAfö."ÉifWj
Jag kan alltså inte lyssna av RS485 bussen mer än data från node 1. Det är givetvis inte så att de skickar data samtidigt och strular upp det så sätt, för jag resettar dem en åt gången, så jag vet när och vilken node som skickar ut data.

Samtidigt så har jag en delay som är 500ms högre för varje node, så node 1 har ingen delay innan den påbörjar programmet, node 2 har 500ms och node 3 har 1000ms. Så de kan helt enkelt inte skicka samtidigt. Något jag även ser på de lysdioder som är inkopplade på MAX_CONTROL signalen, på schemat ovan.

Någon gång kan jag få lite annorlunda output, men oftast är det som det ovan. Men här är ett exempel;

Kod: Markera allt

Node 1
NOD 50 - Klar för drift!

Node 2
ŽJ5±jKìX.²Ùr ¤.ËÑ…

Node 3
NЁ52 KZ±ar²Ù²"ÉifôHC¡È
Här har Node 3 lyckats få ut ett N och sedan 52 vilket tyder på att det är rätt node som skickat datan, i rätt ordning också. (Om man har tur, det kan ju vara slumpmässiga tecken som hamnar rätt också)

Någon gång har jag fått ut;

Kod: Markera allt

Node 3
Î
52 KZ±ar²Ù²"ÉåfôHC¡H

Sedan har vi sändingen från master, som i nuläget är datorn. Om jag skickar ett "paket" som i mitt fall ser ut som följande;

Kod: Markera allt

503101
Så har vi först node 1 som har adress 50, sen har vi kommandogrupp 31 och underkommande 01.

Om jag skickar ut detta på RS485 bussen via min USB-485 så får jag ett fint svar från node 1.

Om jag istället ändrar till följande;

Kod: Markera allt

513101
Så får jag skräp tillbaka från node 2. Så det verkar som att node 2 vet att det är den som ska ta emot datan, det verkar som att den vet att den ska svara.. Men ändå kommer det ut skräp på RS485 bussen..

Lyssnar jag på UART sidan för node 2 så får jag både ren data in från RS485 bussen och ren data ut från node 2, på UARTen.



Hur det är tänkt att fungera? Ja varje processor ska ju fungera var för sig, de ska sedan vara kopplade till en RS485 buss där de kan kommunicera med en master, efter förfrågan från denna.


Det är här jag befinner mig just nu.


Sen var det ju det med varför jag "måste" ha en lysdiod och ett motstånd mot GND/jord på MAX_CONTROL signalen för att det ska gå att kommunicera över huvudtaget. Ett pulldown direkt på MAX_CONTROL hjälper ju inte, inte heller ett pullup.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
SeniorLemuren
Inlägg: 8407
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av SeniorLemuren »

toffie skrev: Jag har ju alltså bytt ut pulldown/pullup mot en LED och ett motstånd mot GND/jord och nu fungerar det?---
Skrev det ovan medan du svarade TomasL! Svarar på det här under nu :)
Jag vet att AVR kretsen har ett max på typ 40mA, men det är rekommenderat att inte driva mer än max 20mA. Så givetvis, max 20mA.

Pullup/pulldown körde jag med 1K.
1K är för lite prova med minst 5 eller tom. 10K
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46934
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av TomasL »

Rita upp hur du kopplat 485-sidan.
Dvs med ALLA inkopplade enheter.

Alltså, inte som du tror att du kopplat det utan som du verkligen har kopplat det.
limpan4all
Inlägg: 8445
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av limpan4all »

Du vet väl att du i verkligheten måste ha tre trådar mellan dina enheter?
A, B och GND...
Det är lätt att missa att man även måste ha med GND.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

Tack för svaren!

SeniorLemuren
Jag ser att jag glömde skriva det, men i tidigare inlägg hade jag även provat 10K. Så jag har provat både 1K och 10K, men även 4.7K som är ett vanligt värde. Ingen skillnad med någon av dem :(

limpan4all
Det har jag koll på! :) Tanken i slutändan är att köra med en 4 ledare som faktiskt inte är tvinnad, det är så vi gör på jobbet och det fungerar över flera hundra meter. Varför vi kör så vet jag inte, det är väl rekommenderat med tvinnad kabel för RS485, speciellt för längre sträckor?

Hur som, just nu när jag kör på breadboard så delar alla kretsarna på +5V och GND, så det går inte att missa i nuläget :)

Däremot så kom jag och tänka på, USB-485 omvandlaren har inte GND utdraget till skruvplint, så där kan jag inte koppla in GND. Men som jag skrev i förra inlägget så kan jag ju läsa av Node 1 utan problem med denna USB-485 omvandlare men inte alls med Node 2 och Node 3, även om jag kopplar lös så det bara är exempelvis Node 2 som min USB-485 omvandlare pratar med.

TomasL
Så slutligen, här kommer ett schema på hur det är inkopplat. Förenklade AVR biten då den redan finns på tidigare schema.
485_connection.jpg
Jag har ritat upp komponenterna och sedan noggrant tittat på hur kablarna är inkopplade till varje komponent och sedan ritat av det på schemat.

Notera att samtliga +5V för samtliga delar är ihopkopplade samt alla GND är ihopkopplade, förutom de som finns på USB-485 omvandlaren, eftersom det inte går. Hade gärna kopplat ihop med GND på USB-485 omvandlaren men den anslutningen finns inte tillgänglig, +V hade jag förstås inte kopplat ihop - så roligt ska vi inte ha det ;)

Ytterligare notering, samtliga mega32 kretsar använder exakt samma program förutom en delay i början av programmet för att de inte ska börja sända samtidigt. De är även programmerade med samma fuses, samma klockfrekvens osv.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
toffie
Inlägg: 1888
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: Problem med MAX485/487 kretsar.. Varför gör den så här?

Inlägg av toffie »

En uppdatering!

Har äntligen tagit tag i kommunikationen, på mjukvarusidan, och skrivit ett program som gör att processorerna pratar med varandra rakt av.

Själva funktionen är;

Kod: Markera allt

Start av alla noder.

Node 50 väntar 5000ms
Node 50 skickar tre bytes 51 66 01

Node 51 tar emot och verifierar, väntar 1000ms
Node 51 skickar tre bytes 50 66 01

Node 50 tar emot och verifierar, väntar 1000ms
Node 50 skickar tre bytes 51 66 01

osv..
Se video :D Det är mellan breadboard längst till vänster och mitt STK500 utvecklingskort som kommunikationen sker.
https://www.youtube.com/watch?v=USjbAKVQxBg
Det fungerar väldigt bra, en stund..

Ibland så slutar någon av noderna att skicka ut, så jag förmodar att då har någon störning kommit in på bussen och stört ut bufferten på en av processorerna.. Och rätta mig om jag har, men det är väl därför man har CRC checkar, timeout osv för att inte bara stå och vänta i tomma intet på att mer data ska komma.

Om ett paket inte kommit fram och fått ett svar inom en viss tidsram, så ska paketet skickas igen.. Eller hur? :)

---

Det jag kan se nu är att det förmodligen är något fel på min USB-485 omvandlare, för kommunikationen fungerar ju oavbrutet i stort sett hur länge som helst mellan processorerna, medan datan som kommer in genom min USB-485 i stort är skräp om det inte är från Node 1 som sitter på STK500 kortet.

Följande sekvens är från terminalfönstret som lyssnar på min USB-485 omvandlare.

Kod: Markera allt

51 66 01
50 67 81
51 66 01 
50 67 01 
51 66 01 
50 e7 01 
51 66 01 
50 67 01 
51 66 01 
d0 67 81 
51 66 01 
50 e7 01 
51 66 01 
50 67 01 
51 66 01 
50 67 01 
51 66 01 
50 e7 01 
51 66 01 
50 67 01 
51 66 01 
50 67 81 
51 66 01 
50 e7 01
51 66 01 är från Node 1, den biten tas emot korrekt av min USB-485 omvandlare, varje gång, inget undantag.

Däremot 50 67 01 som skickas ut via Node 2 som svar på paketet från Node 1, visas inte korrekt varje gång. Däremot så svarar ju Node 1 på samtliga paket, så datan kommer ju fram korrekt till Node 1 ändå.

Jag gjorde, för skojs skull en sök/ersätt på ovan sekvens, tog bort 51 66 01 som jag vet är korrekt.

Kod: Markera allt

-
50 67 81
- 
50 67 01 
- 
50 e7 01 
- 
50 67 01 
- 
d0 67 81 
- 
50 e7 01 
- 
50 67 01 
- 
50 67 01 
- 
50 e7 01 
- 
50 67 01 
- 
50 67 81 
- 
50 e7 01
Visar sig att jag hade rätt, all data ut från Node 1 med 51 66 01 tas emot korrekt av USB-485 omvandlaren. Medan den knappt klarar av data som kommer från Node 2 (50 67 01).

Korrekt hade det varit om det hade sett ut som följande;

Kod: Markera allt

51 66 01
50 67 01
51 66 01
50 67 01
51 66 01
50 67 01
51 66 01
50 67 01
51 66 01
50 67 01
51 66 01
50 67 01


Det här är väl i stort sett avklarat nu.. Man får väl anse att den USB-485 omvandlare jag har är "trasig"?

Men jag tycker ändå att det är konstigt att den kan snappa upp kommunikationen från Node 1 korrekt varje gång, utan undantag.

Kan ni se något i mina kopplingar eller kan ni komma på något annat som gör att det blir så här?


--

1. Det jag kan konstatera som jag tycker är fel i detta läge, är varför USB-485 omvandlaren inte klarar av datan från Node 2 och Node 3. Det är ju trots allt en MAX485 krets som sitter i omvandlaren. Kanske är det den andra elektroniken som är mindre bra, ingen aning.. Men det tycker jag är ett fel oavsett..

2. Det andra som jag tycker är "fel" är varför jag "måste" ha en lysdiod och motstånd mot GND/Jord på MAX_CONTROL signalen för att MAX kretsen överhuvudtaget ska kunna växla mellan sända och lyssna läge. Eftersom pulldown/up inte fungerar. Vad som händer med ett pulldown/up är att MAX kretsen låser sig i antingen läsa eller sända läget.


Så vad säger ni om detta? Några idéer/förslag?

Ni får gärna kommentera mina scheman också, vad kan man förbättra där?


Tack för att ni stått ut med mig så här långt, men hoppas att vi kan diskutera vidare :)





EDIT..

Bild på den billiga USB-485 omvandlaren. Det är ju kinagrejor, så det kanske inte är bästa kvalité på den heller. Synd dock, det är ju elektronik så det borde ju "fungera".. men men..
usb485_1.jpg
usb485_2.jpg
usb485_3.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar