Seriell LCD igen. Hjälp mig...
"OK, alltså 15 gånger, en gång för varje anrop till sendchar ?"
Exakt så.
"Är den helt stabil hela tiden ? Både under programmering och "drift" ?"
Det är ingen spänning under programmeringen om jag minns rätt (kan vara så att det är spänning under programmeringen också, ska kolla det.). Annars så är den konstant stabil.
"Jag ska ladda din senaste kod igen och se om det var något mer som jag gjorde som jag missade att säga föra gången..."
Det är jag väldigt tacksam för!
/Klas
Exakt så.
"Är den helt stabil hela tiden ? Både under programmering och "drift" ?"
Det är ingen spänning under programmeringen om jag minns rätt (kan vara så att det är spänning under programmeringen också, ska kolla det.). Annars så är den konstant stabil.
"Jag ska ladda din senaste kod igen och se om det var något mer som jag gjorde som jag missade att säga föra gången..."
Det är jag väldigt tacksam för!
/Klas
Jo, justja.
Skärmen visar alltid de tecknen som visas på den bilden som jag la upp. När jag nu har kört programmet med "puls" så visas det någonting mer. Slumpvisa tecken skrivs ut på slumpvisa platser Samtidigt som LEDn blinkar. Tar jag bort ”puls” så händer ingenting på TX.
Detta är kanske inte så bra, men knappast problemet.
Blir en lång tråd det här
/Klas
Skärmen visar alltid de tecknen som visas på den bilden som jag la upp. När jag nu har kört programmet med "puls" så visas det någonting mer. Slumpvisa tecken skrivs ut på slumpvisa platser Samtidigt som LEDn blinkar. Tar jag bort ”puls” så händer ingenting på TX.
Detta är kanske inte så bra, men knappast problemet.
Blir en lång tråd det här

/Klas
Hej igen.
Har nu gjort följande :
- Tog din kod (hela projektet) och packade upp det i en tom katalog.
- Startade MPLAB och öppnade projektet.
- Körde en Build All (ändrade alltså inte ett enda tecken).
Jag har en terminalemulator igång som "lyssnar" på en COM-port på min dator dit F688'ans TX är kopplad (via en RS232 konverter).
Jag fick "Hello World" direkt på skärmen.
Nu gäller det bara att få ut samma sak på TX på *din* F688'a !
Jag skulle koppla bort LCDn och låta den vara bortkopplat ända tills jag har fått en "signal" på TX linjen. Bara för att se till att inte LCDn "stör" på något sätt.
Sedan skulle jag *än en gång* verifiera att jag har kopplat TX till rätt pinne/kontakt på LCDn ! Noga ! Är något t.ex spegelvänt ? Läser jag pinnare från fel håll ? Vad vet jag, *allt* måste provas !
Har nu gjort följande :
- Tog din kod (hela projektet) och packade upp det i en tom katalog.
- Startade MPLAB och öppnade projektet.
- Körde en Build All (ändrade alltså inte ett enda tecken).
Jag har en terminalemulator igång som "lyssnar" på en COM-port på min dator dit F688'ans TX är kopplad (via en RS232 konverter).
Jag fick "Hello World" direkt på skärmen.
Nu gäller det bara att få ut samma sak på TX på *din* F688'a !
Jag skulle koppla bort LCDn och låta den vara bortkopplat ända tills jag har fått en "signal" på TX linjen. Bara för att se till att inte LCDn "stör" på något sätt.
Sedan skulle jag *än en gång* verifiera att jag har kopplat TX till rätt pinne/kontakt på LCDn ! Noga ! Är något t.ex spegelvänt ? Läser jag pinnare från fel håll ? Vad vet jag, *allt* måste provas !
Meh... Varför funkar det för dig? Fusk!
Kanske är pickit1:et som stör. Man kanske skulle bygga upp den krets på en labbplatta och låta den styra LCDn?
Du har inte lust/tid/möjlighet att ta en bild på det som du har gjort så jag kan se hur det ser ut?
Ska bort imorron också. Hoppas att jag kan komma åt grejerna så jag kan ta med mig skiten hem och kan pula hemma i helgen.
/Klas
EDIT: Går lika dåligt i 2.400 som i 9.600 baud.
Kanske är pickit1:et som stör. Man kanske skulle bygga upp den krets på en labbplatta och låta den styra LCDn?
Du har inte lust/tid/möjlighet att ta en bild på det som du har gjort så jag kan se hur det ser ut?
Ska bort imorron också. Hoppas att jag kan komma åt grejerna så jag kan ta med mig skiten hem och kan pula hemma i helgen.
/Klas
EDIT: Går lika dåligt i 2.400 som i 9.600 baud.
Senast redigerad av klasg 18 augusti 2005, 23:49:34, redigerad totalt 1 gång.
"Skärmen visar alltid de tecknen som visas på den bilden som jag la upp."
Är det samma tecken som har hexkod "00" i tabellen i databladet för LCDn ?
Intressant. I så fall verkar det som om LCDn tror att den for in tecken noll-noll hela tiden. Det *skulle* kunna tyda på att TX ligger låg konstant.
Vad händer på TX när du får de andra konstiga tecknen ?
Är det samma tecken som har hexkod "00" i tabellen i databladet för LCDn ?
Intressant. I så fall verkar det som om LCDn tror att den for in tecken noll-noll hela tiden. Det *skulle* kunna tyda på att TX ligger låg konstant.
Vad händer på TX när du får de andra konstiga tecknen ?
> "Men TX ligger inte låg, den är hög hela tiden"
Så klart, mitt fel. Och när det kommer en låg puls (som antagligen är längre än ett helt tecken i 9600 buad), så tolkar LCDn det som en "start-bit" följt av 8 nollor...
> "Har du inte kopplat upp någon kristall?"
Nej, din kod specar ju intosc, eller hur ?
Bara exakt det som jag skrev...
EDIT : Packar ihop för idag !!
Så klart, mitt fel. Och när det kommer en låg puls (som antagligen är längre än ett helt tecken i 9600 buad), så tolkar LCDn det som en "start-bit" följt av 8 nollor...
> "Har du inte kopplat upp någon kristall?"
Nej, din kod specar ju intosc, eller hur ?
Bara exakt det som jag skrev...
EDIT : Packar ihop för idag !!
OK, här kommer bilden. Som sagt, inte så mycket att visa 

Blå sladdar : 5V.
Lila sladdar : GND.
Grön sladd : TX -> RS232 konverter.
De grövre sladdarna går till min progammerare (Wisp628)
Matningen till höger kommer från en 59 kronors adapter från Biltema inställd på 9V. Den lilla PSU'n ger 5V/1.5A och passar direkt i labbplattans "bus-linjer".
RS232 konvertern innehåller en MAX232 och hanterar dubbelriktad serie kommunikation, här enbart TX (sett från PICen) anslutet. Seriekablen går direkt in på en vanlig COM-port på en PC.
Jag har inget motstånd på MCLR till 5V, eftersom Wisp628'an hanterar reset linjen.
Och visst, några avkopplingskondingar skall man väll igentligen ha, och det hade jag satt dit om det hade behövts. Men nu fungerade det ändå...


Blå sladdar : 5V.
Lila sladdar : GND.
Grön sladd : TX -> RS232 konverter.
De grövre sladdarna går till min progammerare (Wisp628)
Matningen till höger kommer från en 59 kronors adapter från Biltema inställd på 9V. Den lilla PSU'n ger 5V/1.5A och passar direkt i labbplattans "bus-linjer".
RS232 konvertern innehåller en MAX232 och hanterar dubbelriktad serie kommunikation, här enbart TX (sett från PICen) anslutet. Seriekablen går direkt in på en vanlig COM-port på en PC.
Jag har inget motstånd på MCLR till 5V, eftersom Wisp628'an hanterar reset linjen.
Och visst, några avkopplingskondingar skall man väll igentligen ha, och det hade jag satt dit om det hade behövts. Men nu fungerade det ändå...
Ursäkta en dum fråga, men det är inte tänkt att det skall vara ett pull-up/pull-down motstånd någonstans på LCD:ns TX pinne? Tycker det låter på ert resonemang att det kommer massa "brus" på TX pinnen? Kopplar du från TX-pinnen från PIC:en direkt till TX på LCD:n? Inga komponenter emellan eller nåt?klasg skrev:Vilken iakttagelseförmåga du har. Ja det är tecken h'00'. Men TX ligger inte låg, den är hög hela tiden (förutom om man använder "puls", då blir den ju låg ibland (bara pulser dock))
Tycker det låter som ett typiskt "skitfel" (något som är uppenbart bara man kommer på det

"...är inte tänkt att det skall vara ett pull-up/pull-down motstånd någonstans på LCD:ns TX pinne?"
Jag vet inte LCDn har någon TX pinne, den tar ju mest emot data.
TX pinnen på PICen "drivs" aktivt i båda riktningarna, så där behövs inget yttre pulldown/pullup motstånd.
Jag har varit inne ett tag på att LCDn igentligen vill ha RS232 nivåer, men har inte hittat något i databladet om det. I och för sig nämns RS232 på ett ställe på sista sidan, så man blir lite misstänksam. Men de säger inte mer om det...
> "Nu har jag också kopplat upp allt på ett bord. LEDn Blinkar inte."
Om du har gjort något liknande som min bild, och inte har (t.ex) en Wisp628 som håller MCLR "hög", så behöver du ett motstånd (ca 10k är OK) mellan MCLR och +5V.
Och (eftersom det inte verkar funka) så skulle jag plocka på lite kondingar, 100nF + en elyt på 10-100 uF, så det inte är något problem med det...
Båda mellan +5V och jord.
Som jag skrev tidigare, så skulle jag koppla bort LCDn tillsvidare. Ingen anledning att ha den inkopplad om du i alla fall inte får ut något på TX...
Jag vet inte LCDn har någon TX pinne, den tar ju mest emot data.
TX pinnen på PICen "drivs" aktivt i båda riktningarna, så där behövs inget yttre pulldown/pullup motstånd.
Jag har varit inne ett tag på att LCDn igentligen vill ha RS232 nivåer, men har inte hittat något i databladet om det. I och för sig nämns RS232 på ett ställe på sista sidan, så man blir lite misstänksam. Men de säger inte mer om det...
> "Nu har jag också kopplat upp allt på ett bord. LEDn Blinkar inte."
Om du har gjort något liknande som min bild, och inte har (t.ex) en Wisp628 som håller MCLR "hög", så behöver du ett motstånd (ca 10k är OK) mellan MCLR och +5V.
Och (eftersom det inte verkar funka) så skulle jag plocka på lite kondingar, 100nF + en elyt på 10-100 uF, så det inte är något problem med det...
Båda mellan +5V och jord.
Som jag skrev tidigare, så skulle jag koppla bort LCDn tillsvidare. Ingen anledning att ha den inkopplad om du i alla fall inte får ut något på TX...
Kaggen:
Intressant tanke. Jag har iofs inte sett att det står någonting om det i databladet till LCDn. Inte sagt att det inte står där, jag har ju missat saker förr
Jag borde dock ha lagt märke till det om de skulle stå i databladet, fast det är kanske en kunskap som dem tar förgivet att man har och struntade i att nämna det i databladet?
"Kopplar du från TX-pinnen från PIC:en direkt till TX på LCD:n?"
Japp
/Klas
Intressant tanke. Jag har iofs inte sett att det står någonting om det i databladet till LCDn. Inte sagt att det inte står där, jag har ju missat saker förr

"Kopplar du från TX-pinnen från PIC:en direkt till TX på LCD:n?"
Japp
/Klas