USART Atmega88 problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

USART Atmega88 problem

Inlägg av Nisse »

Har en Atmega88a uppkopplad för att labba lite och lära mig om dess USART. Körde först med interna RC-oscillatorn och det gick skapligt efter lite trimmande av OSCAL. Plockade dit en 8 MHz-kristall och körde med den utan större problem. Roade mig med att prova olika baud-rate osv, allt för att exprimentera lite. Någon dag senare (idag) så tänkte jag utveckla det hela lite, men när jag kopplar in spänning så funkar det inte alls längre. Va tusan?? En mätning på PD0/RXD ger följnade:

Bild

Det är .1 V per ruta och DC-läge. Det är rätt data som syns och ändrar jag i programmet så ändrar sig även seriedatat.
Men varför driver den inte ordentligt längre?
Böt till en annan Atmega88 med samma resultat.

Tips mottages tacksamt.

Mvh
Nils
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Är proberna (fortfarande) rätt kalibrerade?
Har du ändrat på din last (MAX233-liknande krets?)?
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

Proberna funkar, har kollat mot annat.
Vid mätning var utgången helt utan last, dvs. max232 bortkopplad.

Har jag helt enkelt pajjat mina Mega88or? Skumt att det först funkar och sedan funkar ingen av de två, inte ens den nya jag tog fram.

mvh
Nils
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

glappkontakt? Någon ändring i koden som kan jäklas? är portarna rätt konfigurerade?
Ja, jag vet att det har funkat innan men något måste ha förändrats (atmegan är rätt tålig och jag har svårt för att tro att dom är sönder).
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

Det sista jag gjorde i går natt var att flytta hela klabbet till en annan del av labbdäcket. Detta gjorde jag just för att jag funderade kring glappkontakt. Tyvärr så löste inte heller det problemet.

Programmet är så vitt jag vet inte ändrat. Kan posta koden ikväll, den är kort och det skadar inte att få några ögon till på den eftersom jag är ny på AVR.

Skummast av allt är ju att det kommer negativa flanker.

Mvh
Nils
Användarvisningsbild
Icecap
Inlägg: 26737
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Du har en glappkontakt med kapacitiv överföring! Typisk bild på detta, belaster du med ett motstånd kommer det att vara riktiga spikar.

Alternativt ett GND-problem.
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

Får lov att göra om hela uppkopplingen en gång till då med andra ord. Tack för tipset.

Mvh
Nisse
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

Nu är allt uppkopplat på nytt. Tyvärr med samma resultat.

Här är i alla fall koden jag använder om det nu skulle visa sig vara något där som spökar.

Kod: Markera allt

.include "m88def.inc" 

; initialise Stack Pointer
reset:
ldi r16, low(RAMEND)
out SPL, r16

;--------------------------
; USART init
;--------------------------
;set baudrate
ldi		r16,	(0<<U2X0)
sts		UCSR0A,	r16
ldi		r17,	51 ; 51 Ger 9600 Baud vid 8 MHz
sts		UBRR0L, r17
;enable transmitter
ldi		r16,	(1<<TXEN0)
sts		UCSR0B,	r16
;set frame format 8n1
ldi		r16,	(1<<UCSZ00)|(1<<UCSZ01)
sts		UCSR0C,	r16

;--------------------------
; Transmitt
;--------------------------
tx_uart:
ldi		r16,	55
lds		r17,	UCSR0A
sbrs 	r17,	UDRE0
rjmp	tx_uart
 
sts 	UDR0,	r16
rjmp	tx_uart

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

Inlägg av Icecap »

Har du satt ditt scope till DC-ingång? Det bild är arketypen av att mäta ett DC-signal med AC-inställning, det har INGET med program att göra.
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

Från första inlägget: "Det är .1 V per ruta och DC-läge."

Jag trodde inte heller det var ett programfel, men vad gör man inte när man är desperat. :shock:

Men skam den som ger sig, kopplade om alltihop ytterligare en gång på labdäcket och nu funkar det :razz:
Jag vet inte varför eller hur, och just nu bryr jag mig inte heller.

Tack till alla som svarat för er tid.

Mvh
Nils
sodjan
EF Sponsor
Inlägg: 43267
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag vet inte varför eller hur, och just nu bryr jag mig inte heller.

Antagligen ett misstag, du skulle lära dig mest på att ta reda på det...
Pjoms
EF Sponsor
Inlägg: 644
Blev medlem: 24 maj 2004, 12:18:40
Ort: Ö-vik

Inlägg av Pjoms »

Håller med Sodjan, fel som "kommer och går av sig själv" är bland det elakaste som finns! Jag skulle inte lita på nå't runt mitt labbdäck innan jag rotat reda på vad som var orsaken.

Jag tror också att flera här skulle uppskatta att få reda på vad som var/är galet. Det kan om inte annat hjälpa andra...
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

-> Jag vet inte varför eller hur, och just nu bryr jag mig inte heller.

Nu skall jag göra det jag tänkte göra när felet hindrade mig. Men självklart kommer jag att fundera över vad problemet var och om det går att återskapa.

Mvh
Nils
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

Sådär, då var jag klar med det jag skulle göra när felet hindrade mig.

Nu har jag även hittat vad som var fel tidigare. Det var den mänskliga faktorn, som så ofta :oops:
Jag kopplade in och mätte på RX istället för på TX :oops:

Lite kul fenomen att man ser det som skickas på TX-pinnen även på RX-pinnen.

Mvh
Nisse
sodjan
EF Sponsor
Inlägg: 43267
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Har du *ordentligt* med avkoppling på MAX232'an ?
Minst 1uF mellan 5V och gnd.

> det som skickas på TX-pinnen även på RX-pinnen.

Tja, av försat osc-bilden i första inlägget ser det ju ut att vara bara
0.1-0.2 V, så "det som skickas" är det ju inte. Mer som en överhörning
eller störning via matningen.

Slutligen är det naturligtsivs synd att så mycket tid och intresse ska behöva
läggas på en prob som hålls mot fel pinne ! En eloge dock för att
du talade om det... :-)
Skriv svar