Forum: Mikrocontroller und Digitale Elektronik ATMEGA128 und serieller Port


von Carsten K. (ck1)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein Problem bei der Ansteuerung der seriellen Schnittstelle
des ATMEGA128. Mittels des beiliegenden Programmes lässt sie sich nicht
dazu bewegen, auch nur ein einziges Zeichen an das angeschlossene
Terminal zu senden. Im 103-Kompatibiliätsmodus funktioniert es.
Das Programm ist die reduzierte Version eines auf dem 8535 problemlos
laufenden, deutlich komplexeren Programms.
Zur übrigen Beschaltung ist wenig zu sagen:
16 Mhz Quartz
2 x 15 pF Kondensatoren
MAX 232

Ich habe das Programm im AVR Studio Simulator laufen lassen; die
betreffenden Ports wurden entsprechend dem Datenblatt initialisiert.
Auch Probleme mit dem Stackpointer schliesse ich aus (der wurde auf 2F5
initialisiert, also mittem im SRAM), da auch keinerlei Unterprogramme
aufgerufen werden.
Ich habe das Problem mit mittlerweile 3 Chips nachvollzogen, daher
schliesse ich aus, dass der Chip defekt ist.
Des weiteren habe ich testweise die 2. Schnittstelle versucht
anzusteuern; das Ergebnis war ebenfalls negativ.

Hier noch meine Fuses:
M103C    1
CKOPT    0
BOOTRST  1
BODLEVEL 0
BODEN    0
SUT1     1
SUT0     1
CKSEL0-3: 1111

Was mache ich falsch?

von chris (Gast)


Lesenswert?

hallo,
ich habe auch probleme mit der seriellen schnittstelle.....
kannst du mir sagen wie du die 16 Mhz Taktfrequenz eingestellt hast ?
benutzt du zufällig stk500, stk501?

 chris

hier mein thread:
http://www.mikrocontroller.net/forum/read-1-217976.html#new
viel glück ...

von Carsten K. (ck1)


Lesenswert?

Ich verwende ein 16 Mhz Quartz an XTAL1 und XTAL2; zusätzlich habe ich
die Fuse-Bits (hoffentlich richtig) programmiert, damit auch der Takt
vom exteren Resonator genommen wird.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

das da "#define _AVR_ATmega128_ 1" solltest du nicht tun. Es gibt
dafür den "-mmcu=$(MCU)" an der Kommandozeile. Die genauen
Auswirkungen wird dir J. Wunsch im Detail erklären können aber ich
erinnere mich zumindest das das böse ist :-)

Aber was mir noch einfällt:
Wie sieht den deine Beschaltung des MAX232 und dessen Anschluß an den
Mega aus? Uart0 verwendet ja immmerhin die gleichen Pins wie das
isp-Interface.

Matthias

von Carsten K. (ck1)


Lesenswert?

Hallo,
ich habe das #define _AVR_ATmega128_ herausgenommen, was jedoch nicht
zum gewünschten Resultat geführt hat.
Der MAX232 (sowie der Anschluss über ein umgebautes Handy-Datenkabel)
sind über 2.7 kOhm mit RX/TX verbunden. Auch der Betrieb ohne
angeschlossenen Programmer funktioniert nicht.
Mir ist aufgefallen, dass bei Verwendung des internen RC-Oszillators
bis etwa 4Mhz und Bitraten bis 4800 ein Betrieb möglich ist.
Nach diversen Versuchen bin ich nun darauf gestossen, dass bei einer
Eingangsspannung von 4 Volt der Betrieb problemlos möglich ist. Wie
kann das sein? Die genaue Typbezeichnung ist ATMEGA128 16AI 0502I,d.h.
eigentlich ist eine Mindestbetriebsspannung von 4.5 Volt erforderlich.

von Joern G. aus H. (Gast)


Lesenswert?

Welche Baudrate fährst du?
Bei 16MHz sind die hohen Baudraten alle sehr falsch.
14,765MHz wäre eine klügere Wahl gewesen - damit kannst du problemlos
115kbps machen.
Lies vielleicht nochmal die Seiten über die Baudrate genau durch.

Deine Beschreibung lässt sowas erahnen, dass du dich zu knapp an einer
Fehlergrenze bewegst.

jörn

von Joern G. aus H. (Gast)


Lesenswert?

Ne, ups habe gerade im Quellcode gesehen - 9600.
Das sollte auf jeden Fall gehen.
jörn

von Joern G. aus H. (Gast)


Lesenswert?

Lass mal die USCR0C Zeile Weg. Die Reset defaults sollten passen - deine
finde ich etwas komisch (USCZ01 sollte doch auch 1 sein?).
Uch mach mal das senden mit in die Endlosschleife rein, damit du nicht
das eine zeichen verpasst.

Ich habe z.B. (UART1 @ 115bps @ 14,??MHz):

  UBRR1L = 7;        //115k2 @ 14,745MHz
  UCSR1B = (1<<TXEN1);  //Transmitter UART1 enabled


jörn

von lader (Gast)


Lesenswert?

Hello All ;
I have to modify some source code written for ATmega128 to msp430 and i
found some registers like EER,EEWE,EEAR,EERE,EEDR .
I would be grateful if you could tell me what the corresponding one in
msp430f1611.
thanks

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.