Sida 1 av 1

Tangentbord - PIC - LCD

Postat: 5 oktober 2003, 21:22:19
av egh01
Jag har tidigare kopplat ihop en PIC och en LCD (4-bit) och det har fungerat utmärkt. Efter det tänkte jag att jag skulle koppla in ett tangentbord (PS2 eller AT) till PICen för att sen få ut knapptryckningarna på LCDn men det vill sig inte riktigt. För att kunna koppla in tangentbordets clock signal på avbrottspinnen PB0 (och data på RB1) så var jag tvungen att flytta om LCD-anslutningarna lite men jag tror inte att det är där problemet ligger eftersom jag ibland får LCDn att visa korta teststrängar utan problem. Det lustiga är att det fungerar någorlunda vissa gånger och andra går det inte alls. Ibland initieras inte LCDn som den ska även om jag vet att PICen har exekverat den kod-snutt som ska ha hans om den biten och ibland kommer LCDn igång som den ska men jag får ingen input från tangentbordet. Andra gånger avbryter PICen på de mest konstiga ställen (tror jag i alla fall).

Jag misstänker att det är strömförsörjningen som inte räcker till riktigt. Jag använder en vanlig batterieliminator på 7,5V med en 5V spänningsregulator efter. Jag kommer tyvärr inte ihåg vilken belastning den ska klara av. Det lustiga här är att problemet ibland dyker upp även när jag inte har tangentbordet anslutet. Jag kan inte så mycket om elektronik och el-lära (har precis lånat lite böcker) så jag vet inte riktigt hur jag ska veta om det är strömmen som inte räcker till eller ej.

Har någon några förslag på vad som kan vara fel?

Postat: 7 oktober 2003, 19:26:45
av EagleSpirit
hmm, låter väldigt skumt, men du kanske måste kolla igenom koden en gång till? Kan vara så att den fastnar i nåt interrupt eller nåt. Sedan bör du kolla så att alla kablar sitter rätt och att kristallen har bra kontakt.

Postat: 7 oktober 2003, 22:24:23
av danei
Genererar tangentbordet en egen klocka? Jag trodde att det var datorn som gjorde det. Har du någon bra sida med info?

Postat: 8 oktober 2003, 02:01:25
av egh01
Jag har kollat igenom koden om och om igen och jag kan inte hitta det som kan tänkas vara fel. Och som jag har upplevt det så uppkommer problemen lika ofta (nästan alltid alltså) när jag har ränsat GIE och de andra interupt-bitarna i INTCON. Jag har också försökt att hitta fel på kopplingarna men det är ju inte så mycket som jag har ändra så det borde inte vara några problem där.

Hur är det med strömförsörjningen, på min batterieliminator står det bl.a:
Output: DC 300mA 3.6VA

Borde jag ha problem på den fronten?

Lite fakta om tangentbord kan man hitta på:
http://www.piclist.com/techref/io/keyboard.htm
http://www.arne.si/~mauricio/Kbdfaq.htm

Och ja, det är tangentbordet som står för klocksignalen.

Postat: 8 oktober 2003, 02:31:04
av danei
Du skulle ju kunna testa att använda separata spänning matningar för att vara säker på att det inte är det som bråkar.

Tack för länkarna. Jag hadde fått för mig att datorn klockade hela tiden och inte bara när den sänder.

Du har inte råkat ändra någon delay i LCD initsieringen när du bytte ben till den? KAn spännings regulatorn fått sig en knäck? det kan bli lite skumma omstarter om matningen bråkar. Det är inte kul när det bråkar och man inte ens kommer på något att testa med :cry:

Postat: 8 oktober 2003, 08:17:26
av tusse
Du har inget yttre som stör, det kan vara lätt att få med störningar i labbkopplingar, "skatbokopplingar "och långa sladdar är en bra mottagare för yttre störningar.

Flytta mobiltelefon, bildskärm från labbet och prova igen.

Mjau

Postat: 4 november 2003, 18:48:57
av Alex
Din beskrivning av felet fåt mig att misstänka problem med interrupt nivåer. PICen har 7 interrupt nivåer. Vid interrupt upptas 1 eller 2 interrupt nivå/er. Om du nu anropar en ytterligare funktion under interrupt, upptars den tredje nivån osv osv. Det kan du lätt kolla i utvecklingsverktyget. Kör programmet steg för steg och kolla på interrupt nivån.

Postat: 4 november 2003, 20:33:04
av AsmN
Alex: Har jag fel om jag säger att du tänker på stacknivåer istället för interruptnivåer?

Postat: 4 november 2003, 22:13:01
av Alex
Jo det heter nog så. Jag kallar det för interruptnivå vilket är säkert fel. Interrupt nivåer har med interruptprioritet att göra, så jag skulle nog säga stacknivåer istället. Sorry :?

Postat: 5 november 2003, 00:01:56
av hebbe
Har du:

1)Pullop/down motstånd på INT pinnen så den inte flyter och skapar interrupt hela tiden?
2)Resatt interruppt-flaggan i rutinen så den inte går in igen (på reurn)?
3)Tittat på hur ofta keyboardet skickar en puls/pulståg?

Postat: 5 november 2003, 00:17:26
av EagleSpirit
det skulle kunna vara strömförsörjningen. Men 300mA är en del. Är det backlight på LCDn? Har du kondingar både före och efter spänningsregulatorn? Bara för att vara på den säkra sidan. Kolla upp det där med stacknivåerna. Om det blir för många så att den låser sig kan det ju dina problem uppstå.

Äh det var ju ett tag sen du skrev den här tråden. Du kanske har löst det nu? Jaja, gonatt

Postat: 8 november 2003, 18:05:34
av egh01
Ja det var ett tag sen men jag har inte löst det ännu, jag har faktiskt inte kollat på det så mycket mer sen sist. Men jag ska ta tag i det och anstränga mig lite så får vi se hur det kan lösas.

Tack i alla fall för alla nya tips. Kommer ni på något mer så....

Postat: 9 november 2003, 15:49:24
av egh01
EagleSpirit: Nej jag använder inte backlight på LCDn. Vad skulle du säga att jag ska ha för kondingar runt en "7805CV 5V 1,5A" spänningsregulator?

Postat: 9 november 2003, 17:17:41
av Alex
egh01 titta på denna pdf filen från elfa. Där har du många olika kopplingar beroende på utspänning eller ström du önskar. Kopplingen jag använder till PICen är den som finns på sid 4.