Varför startar den om? (Atmel)

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
Samot
Inlägg: 311
Blev medlem: 15 november 2004, 18:32:13

Varför startar den om? (Atmel)

Inlägg av Samot »

Hej!
Jag har en 4*20 lcd display som är rätt kopplad till en ATMEGA8535.
Problemet är att jag egentligen inte är bekant med protokollet för att driva en sådan display. Det står att den använder "KS 0066 or equivalent". Det finns ett ben som ska vara ett för att sätta den i write läge, det är satt till ett. Sen finns det två andra intressanta ben, Enable och RS. Rs har jag listat ut att det bestämmer om man skriver en adress eller om man skickar tecknet, rätt så?

Problemet artar sig så att jag lyckat cleara den, eller om den inte hinner starta upp, för efter uppskattnings vis 0.3 sek så dör hela uC´n och startar om, så display och kontroll lysdiod ligger alltså bara och blinkar.
Kan någon ge råd och tips?
Tekko
Inlägg: 9009
Blev medlem: 28 november 2004, 20:19:15

Inlägg av Tekko »

Låter nästan som för klen spänningsmatning.
Samot
Inlägg: 311
Blev medlem: 15 november 2004, 18:32:13

Inlägg av Samot »

Jag har matar allt med en 7805 stabb med en konding på 2,2uF. Borde väl klara det?
Nu har jag fått ordning på initieringsbitarna(avr beginers) och kontrollerat det, så jag tror det är rätt där, även kollat igen så jag kopplat rätt och det ser bra ut.
Detta är obegripligt? :?
Användarvisningsbild
LaRdA
EF Sponsor
Inlägg: 3766
Blev medlem: 9 september 2003, 14:10:46
Ort: Jämtland

Inlägg av LaRdA »

Men vad matar du dethela ifrån? batteri, labbagregat, har du stömbegränsning på det isåfall?
Samot
Inlägg: 311
Blev medlem: 15 november 2004, 18:32:13

Inlägg av Samot »

Jag har provat diverse matningskällor, som 9v batteri 9v adapter en annan 9 volts adapter och tillsist en 12v adapter.
Så det verkar väldigt konstigt. Jag har provat att mäta över 5v och jord, har bara en voltmeter, men borde man inte se siffrorna flimmra lite om det dippar i bland? Det gör dom iaf inte, anger 5.04 V hela tiden!
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Att se oroligheter på matnigen kan vara svårt med bara en multimeter tyvärr.
Måste nästan ses med oscilloskop.

Kan du klistra in koden här så kanske vi kan hitta något fel.
Säker på att det inte är en HD44780 kompatibel display? brukar nämligen vara vanligast på textdisplayer.
Samot
Inlägg: 311
Blev medlem: 15 november 2004, 18:32:13

Inlägg av Samot »

Här kommer koden jag använder:

.include "8535def.inc"
.org $0000

.def temp = r20
.def temp2 = r21
.def temp3 = r23
.def temp4 = r24



reset:
ldi temp, low(RAMEND) ; Nollställer stackpekaren
out SPL, temp ;
ldi temp, high(RAMEND) ;
out SPH, temp ;

;------------- Def av portar
ldi temp, 0b11111111
out ddrd, temp
ldi temp, 0b11111111
out ddra, temp
;_------------------------------


cbi portd,pd6 ; Sätter displayen i write
sbi portd,pd3; lysdiod koll för att veta att processorn körs

rcall lcd_init ; initierar displayen

main:
ldi r16,0x00;Sätta cursor för utskrift
rcall LCD_instr
ldi r16,'T' ;
rcall LCD_write
test:
rjmp test

LCD_instr:
rcall LCD_wait
cbi PortD,pd5 ;LCD_RS=0
out PortA, r16 ;Lägg ut data (Instruction Code)
sbi PortD,pd7 ;LCD_E=1
nop
nop ;
nop ;
cbi PortD,pd7; LCD_E ;LCD_E=0
ret ;Hoppa tillbaka ifrån subrutin


; Skriva ut på displayen
LCD_write:
rcall LCD_wait
rcall LCD_wait ;Väntar ca30ms
rcall LCD_wait
rcall lcd_wait
rcall LCD_wait
rcall lcd_wait


sbi PortD, pd5 ;LCD_RS=1
out PortA, r16 ;Lägg ut data (Tecken)
sbi PortD, pd7 ;LCD_E=1
nop ;Vänta lagom långt :)
nop ;
nop ;
cbi PortD,pd7 ;LCD_E ;LCD_E=0
cbi PortD, pd5;LCD_RS ;LCD_RS=0
ret


LCD_init:
rcall LCD_wait; delay för att displayen ska hinna starta, behövs kanske inte
rcall LCD_wait
rcall LCD_wait
rcall LCD_wait
rcall LCD_wait

ldi r16, 0b00001111 ;Display on. Cursor off. flyttar höger ;Off
rcall LCD_instr

ldi r16, 0b00000001 ;Clear display
rcall LCD_instr

ldi r16, 0b00111100
rcall LCD_instr
;
ldi r16, 0b00000010 ;Return Home
rcall LCD_instr
ret
LCD_wait:
ldi TEMP,0x20 ;
w1:
ldi TEMP2,0xFF
w2:
dec TEMP2
brne w2
dec TEMP
brne w1
ret


forever:
rjmp forever

Fast tror inte felet finns här, eller? Jag är säker på att den är HD44780 kompatibel.
Skriv svar