Forum: Mikrocontroller und Digitale Elektronik Mega16 - USART - STK500 : nichts geht


von Markus Reichert (Gast)


Lesenswert?

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

von Jadeclaw D. (jadeclaw)


Lesenswert?

Ä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.

von TravelRec. (Gast)


Lesenswert?

Mich wundert, daß es so überhaupt funktioniert und daß der
Programmdownload klappt :-/

von Markus Reichert (Gast)


Lesenswert?

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. :-(

von TravelRec. (Gast)


Lesenswert?

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)?

von Spess53 .. (hardygroeger)


Lesenswert?

Hi

Hast du das TX-Pin auf Ausgang gestellt?

MfG HG

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
Noch kein Account? Hier anmelden.