Hallo zusammen,
ich versuche einen Mega16 zum Senden zu bringen. Ohne Erfolg.
Meine Randdaten:
Quarz mit 3.6864 Mhz
PD0 -> RXD
PD1 -> TXD
Mega16 in Sockel SCKT3100A3
Parallel/High Voltage Serial - funktioniert.
Empfangsprogramm: HyperTerminal (ich weiß, ist nicht das bester, aber
mit anderen uCs funktioniert es, damit ich kontrollieren kann)
9600 Baud
gesetzte Fuses:
Serial program downloading (SPI) enabled
Boot Flash section size=1024
Brown-out detection level at VCC=2.7V
Ext. RC 0sc. 3.0MHz - 8.0MHz; Start-up time: 6CK + 4ms
Das Interessante dabei ist, dass es sporadisch funktioniert. Aber nur
in ca. 3 von 10 Fällen.
Weiter unten habe ich noch mein Testprogramm angehängt.
Ich hoffe (wiedereinmal) dass mir jemand helfen kann. :-)
Danke und Gruß
Markus
.include "m16def.inc"
.def akku = r17
.cseg
rjmp start
.org 0x30
start:
ldi akku, LOW(RAMEND)
out SPL, akku
ldi akku, HIGH(RAMEND)
out SPH, akku
rcall USART_Init
main:
ldi akku, 0x34
rcall USART_Transmit
rjmp main
;**********************************************************************
; USART
;**********************************************************************
USART_Init:
;set baud rate
ldi r17,0
ldi r16, 23
out UBRRH, r17
out UBRRL, r16
;Enable receiver and transmitter
ldi r16, (1<<RXCIE) | (1<<RXEN) | (1<<TXEN)
out UCSRB,r16
;set frame format: 8data, 1stop bit
ldi r16, (1<<URSEL) | (0<<USBS) | (3<<UCSZ0)
out UCSRC,r16
ret
USART_Receive:
sbis UCSRA, RXC
rjmp USART_Receive
in akku, UDR
ret
USART_Transmit:
sbis UCSRA,UDRE
rjmp USART_Transmit
out UDR,akku
ret
Ähem? Ext. RC 0sc. 3.0MHz - 8.0MHz; für einen Quarz? Wäre 'External Crystal/Ceramic Resonator 3.0 - 8.0 MHz' nicht sinnvoller? Externer RC tut es so schlecht mit 'nem Quarz. Gruss Jadeclaw.
Mich wundert, daß es so überhaupt funktioniert und daß der Programmdownload klappt :-/
danke für den Hinweis :-) habe das Fuse folgendermaßen gesetzt: Ext. Crystal/Resonator Medium Freq.; STart-up time: 16K CK + 4ms es hat leider nichts geholfen. Es funktioniert immernoch nur sporadisch. Ich habe inzwischen 3 neue Mega16 getestet. Bei jedem einzelnen ist das Problem aufgetaucht. :-(
Schaltung posten oder Foto machen - wenn das gar nichts gebracht hat, läuft der Controller nicht zufällig doch noch mit internem RC? Auf jeden fall sind die Mega16 nicht so unzuverlässig, wie´s hier den Anschein hat ;-). Hast Du nicht ´ne Möglichkeit, über Teiler eine LED zum Blinken zu bringen und dann den tatsächlichen Takt auszurechnen (oder ´nen Oszi dran an einen Pin und mal wild toggeln lassen)?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.