Seriekommunikation mikroC
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.
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.
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...).
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...).
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
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
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 ?
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 ?
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.
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.
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
Tack för all hjälp här.
MVH
Kalf
>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
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
