Seriekommunikation mikroC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Icecap
Inlägg: 26645
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Mät dessa spänningar med minus-proben till GND... alltid!

På MAX-kretsen ska det ligga ca: 10V på pinne 2 och ca: -10 på pinne 6. Dessa spänningar kan vara runt ±8V men knappast lägre. Dessa spänningar ska mätas när INGEN ytterligare anslutningar är gjorda på MAX-kretsen, alltså inte tillkopplat PC'n eller PIC'en, då behöver man inte räkna på deras belastning.

Då jag inte har någon aning om hur MikroC gör när den initierar UART'en blir jag alltid mycket misstänksam och jag blir än mer misstänksam när någon använder dessa funktioner: jag ser det som att det inte har läst databladet och inte fattar hur det hela fungerar, precis anledningen till att jag rekommenderar ASM fram till man kan detta i sömnen.

Så sammanfattat: du vet inte vad dina "system"kall gör, du vet inte om det RS232-kedja fungerar och du är inte säker på hur PIC'en fungerar.

För att testa MAX-kretsens funktion kan du koppla loss Rx och Tx från PIC'en och koppla ihop dom, allt du skickar från PC'n ska då bli ekad tillbaka utan problem.
Niklas-k
Inlägg: 354
Blev medlem: 10 mars 2004, 15:59:21
Ort: Katrineholm

Inlägg av Niklas-k »

Nu vet inte jag om det har någon betydelse i det här fallet men databladet nämner på flera stället att både rx och tx pinnarna skall sättas till ingång.
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

Dessa spänningar får jag ut när jag kopplat kretsen utan anslutning till varken PC eller uC:

Pinne 2: 9,6V
Pinne 6: -9,4V
Pinne 7 med 5V på TX: -9,4V
Pinne 7 med 0V på TX: -9,5V (Detta skulle enl. Icecap bli en posetiv spänning.)

//Kalf
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Först, innan vi börjar kasta pin-nummer fram och tillbaka, stämmer
detta datablad med den MAX du har :
http://www.elfa.se/pdf/73/730/07302326.pdf ?

Notera att du har testspänningar på bilden på sidan 17.
Dessa verkar ju stämma ganska OK med din mätning...

> Pinne 7 med 5V på TX:

Är det T2in och T2out du menar !!??
Använd gärna beteckningarna i databladet!
Jag vill veta att du inte har förväxlat T1in och T2in.

oJsan> RX är lite knepigare att testa eftersom du måste ha negativ spänning,

Om MAX232 fungerar som den ska så finns den låga RS232 nivån
på en av kondingarna. Pinne 6 ser det ut av tidigare inlägg. Denna kan
användas för att sätta RS232 ingången "låg" (d.v.s som en "etta" eller "mark"
eller vad man nu vill kalla det...). Sedan kollar man motsvarande TTL/CMOS
pinne för att kontrollera att det fungerar.

> multimeterns plus på pin 7 och minus på 5V...

Kan bara instämma med Icecap, ha ALLTID multimeterns "nolla" kopplad
till spänningsmatningens nolla i kopplingen !! Annars blir det en jäkla röra...
Jag orkar inte räkna ut vad det igentligen var för spänningar du mätte, men
det ser lite konstigt ut. Som om du belastar utgångarna fel eller har
kopplat fel (eller har förväxlat benen...).
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

Ja, det är rätt datablad.

Med TX menar jag pinne 10 (T2 in) Detta skrev oJsan i ett tidigare inlägg. Pinne 7 är som sagt T2 out. Precis som du säger sodjan.

Jag tog igen och kopplade ihop Rx och Tx direkt ifrån seriekabeln och testade med hyperterminal, och detta funkar som det skall. Men när jag kopplar in seriekabeln tillmin MAX232A krets på T1 in och R1 in. och sedan kopplar ihop R1 och R2 så får jag ingen retur signal till PC'n.

//Kalf
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK.

Och testen med *enbart* MAX232A, fungerar den nu ??
Det finns ju ingen anledning att koppla in något annat om
du inte kan få MAX232A ensamt att konvertera nivåerna.

D.v.s att om inte detta fungerar som det ska :

> T2out med 5V på T2in: -9,4V
> T2out med 0V på T2in: -9,5V <<<=== Bör vara ca +9V !

så är inga andra tester speciellt meningfulla.

Är det likadant med T1in/T1out som med T2in/T2out ?
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

De testerna jag gjorde var med bara MAX232A inkopplad, med kondensatorerna, altså ingen uC eller Serieporten.

Ja, det blir precis samma resultat med T1 som T2

><<<=== Bör vara ca +9V ! Är det något som är fel då?

//Kalf
Användarvisningsbild
Icecap
Inlägg: 26645
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Alltså... NÅGOT är ju fel eller hur?

Om du kopplar till PC'n och byglar RxOut till TyIn (där x & y motsvarar vilka portar du använder) då SKA det du skriver på terminalen ekas tillbaka, om det inte gör det måste du kolla din koppling NOGA.

Om du använder R2 och T2 ska du alltså koppla pinne 9 till pinne 10 och inte annat och sedan testa om det du skriver i terminalprogrammet faktisk ekas tillbaka.

Rent omedelbart ser jag det som att du använder ena recievern från PC'n men använder data från den andra eller liknande.

Och sedan har du FEL: "Pinne 7 med 0V på TX: -9,5V (Detta skulle enl. Icecap bli en positiv spänning)"
Det har jag aldrig skrivit, jag skrev bara om att spänningsomvandlaren gav rätt spänning.

Du skriver:
Pinne 2: 9,6V <bra, rätt värde>
Pinne 6: -9,4V <bra, rätt värde>
Pinne 7 med 5V på TX: -9,4V
Pinne 7 med 0V på TX: -9,5V
Att ange pinne 7's värde är bra men VILKEN PINNE är TX?
Är den pinne 10 kan du bara kasta kretsen och ta en som fungerar.

Så som allt annat: vara SPECIFIK! Att ange TX... det kan vara TX1in, TX2in, TX1out eller TX2out och så som du "rotar runt" (ta inte illa upp) måste alla svar vara otvetydiga!

Jag VET att det kan vara svårt när man är på startsträckan men det sparar alla från en massa oklarheter och missförstånd som antingen gör dig med förvirrat eller som "vi" uppfattar som att du kanske borde stega ner till LEGO igen och det är ingen hjälpt med.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> ><<<=== Bör vara ca +9V ! Är det något som är fel då?

Hur menar du ??
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

Det jag menar är att eftersom jag får en negativspänning så borde det vara något som är fel, eftersom det skall vara en posetiv.

//Kalf
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Visst !
Jag undrade bara varför du frågade... :-) :-)
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

Så, nu har jag löst det. Jag har ingen aning om vad som var fel, eller vad jag gjorde för att få det att fungera. Men heltplötsligt fick jag rätt spänningar och allt fungerar. Jag har kopplat in uC'n och jag håller för tillfället på att koda hela koden jag skall använda.

Tack för all hjälp här.
MVH
Kalf
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag har ingen aning om vad som var fel,

Och det är faktiskt värre än att det inte fungerade tidigare...
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Håller med! Att saker plötsligt fungerar efter att inte ha gjort det tidigare, kan vara väldigt frustrerande. Speciellt när man inte vet varför eller vad man gjort för skillnad. Då har man heller egentligen inte lärt sig någonting...
bos
Inlägg: 2311
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Inlägg av bos »

>Då har man heller egentligen inte lärt sig någonting...

Vad som är än farligare i detta skede är även att köra på med paradigmen "si non confectus, non recifiat" (if it ain't broken, don't fix it). För har man innan satt det primära målet att få nåt att funka så är man nöjd i detta skede, även om man inte har en aning om varför det funkar.

Been there, done that ;)
Skriv svar