mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega16 läuft nicht stabil


Autor: Frank P. (creeper)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bin derzeit drum und dran etwas mit einem ATmega16 herumzuspielen 
und dafür eine kleine Testplatine in Anlehnung an das Mini-Mega-Board 
von Elektor zu bauen.

Die Platine ist soweit fertig und ich kann per Ponyprog auf den Atmel 
zugreifen. Nun hab ich ein Problem, die Ausgänge scheinen irgendwie 
nicht stabil zu sein. Ich habe einige kleinere Anwendungen probiert, 
immer mit dem gleichen Ergebnis...

Bei PWM stockt der Motor und selbst eine LED leuchtet nicht stabil, sie 
flackert. Ich habe die Security bits gesetzt wie im Elektor beschrieben. 
Die Programmierung erfolgt über die serielle Schnittstelle. Muss ich mit 
dem Reset Anschluss irgendetwas beachten? Dieser hängt an dem seriellem 
Programmierinterface.

Hat jemand eine Idee wie ich das Teil stabilisieren kann?
Vielen Dank im Voraus!

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

schau dir mal die Versorgungsspannung (5V) für den Controller an, ob die 
stabil ist. Am besten mit einem Oszilloskop.
Am Resetpin ist normalerweise ein Pullup-Widerstand dran, der dir dort 
einen definierten Pegel zuführt.

Das wäre die Hardware-Seite.

Ansonsten klingt mir das so, als ob dein Programm immer wieder 
neustartet.

Poste doch hier mal den Code!?

Evtl. Endlosschleife vergessen? Stack nicht initialisiert?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls der Controller mit >8MHz läuft: CKOPT Fusebit gesetzt ?

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei PWM
Blockkondensatoren korrekt verbaut?


>kleine Testplatine
An eine EMV-gerechtes Layout gedacht?

http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG-Fuse?

Autor: Frank P. (creeper)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Fusebits sind folgendermaßen gesetzt:
BODEN,SUT1,BOOTSZ1,BOOTST0, alle anderen sind aus, CKOPT habe ich Ein 
und Aus geschalten, ohne Erfolg.

Mittlerweilen bekomme ich nicht einmal mehr die LED zum flackern. Ich 
lade folgendes (Anfänger!!!)Programm:


;************************************************
;*Blinklicht
;*
;*
;*
;************************************************

.include "m16def.inc"

    ldi r18,255
    out DDRA,r18 ;Port als Ausgang
Loop:

    sbi porta,1 ; LED ein
    ldi r23,0
    ldi r24,0
    ldi r16,0
    ldi r17,0

Loop1:
    inc r16    ; Zähler 1
    cpi r16,100
    brne loop1

    inc r24    ; Zähler 2
    cpi r24,100
    brne Loop1
    cbi porta,1 ; LED aus

Loop2:
    inc r17    ; Zähler 3
    cpi r17,100
    brne loop2

    inc r23    ; Zähler 4
    cpi r23,100
    brne Loop2
    rjmp Loop

danach habe ich auf PIN7 welcher eigentlich PortB6 ist ständig High 
Signal, Port A ist komplett finster...

Das High Signal an PIN7 kommt nicht über die Schnittstelle herein.

Autor: Klaus K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das wüsste ich auch gerne...

Keiner ne Idee?

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von Fuse-bits und Hardware einmal abgesehen, wie schnell läuft der uC?
Wenn ich 1 MHz annehme, so komme ich auf eine Zeit von

100*100*4*1 us = 40 ms;

wäre nichts für meine müden Augen.

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das eben war missverständlich formuliert, also der 1. Satz korrigiert:

Von Fehlern bei Fuse-bits und Hardware einmal abgesehen, wie schnell 
soll
der uC denn laufen?


(Und warum wird als 2. oder 3. Aktion immer gleich an den Fuses 
herumgespielt?)

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste doch mal eine Schaltung (und das Layout)

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich motor und pwm lese...
du hast garantiert ein emv problem. reset härter gegen V_cc ziehn, 
größeren pufferkondensator. versorgungsspannung mit drossel entstören, 
evtl fürn atmel getrennt erzeugen. optokoppler einbaun und komplette 
galvanische trennung herstellen. uswusf...

Autor: luke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat der motor eine treiberstufe?

Autor: Frank P. (creeper)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Versuche mit PWM waren nur vorgefertigte Programme die ich mal 
ausprobieren wollte, als das aber nicht funktionierte oder besser gesagt 
nur stotternd, habe ich immer weiter minimiert. Nun soll nur noch eine 
LED leuchten. Mit den Zeiten werd ich mal noch ein wenig runter gehen da 
der ATmega mit 8Mhz Quarz läuft.

Es ist analog zu der Schaltung ATmega Board aus dem Elektor, welche nur 
noch ein wenig dezimiert wurde. Sind nur noch ein paar LEDs und Schalter 
auf der Platine.

Die Fusebits habe ich geändert wie es in dem Elektor Artikel vorgegeben 
war. Daher habe ich mich daran zu schaffen gemacht.

Hat irgendwer ne Idee warum ich am Pin7 ständig H Signal habe? Es ist 
auch der MOSI Pin über den der serielle Port die Daten schiebt. Er wird 
in dem Programm nicht erwähnt.

Danke für die Nachsicht gegenüber ATmega noobs...

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde:

- einen neuen mega16 nehmen oder versuchen, beim alten die Fuses
  in den Auslieferungszustand zu bringen; dann läuft der uC mit
  internem RC-Oszillator auf 1 MHz
- die LED zum blinken bringen; das Programm ist okay, nur flimmert die
  LED mit 2*40 ms = 12.5 Hz. 1 Hz wäre schöner
- dann die Fuses auf den 8 MHz-Quarz umstellen
- jetzt nochmal die Blink-LED mit 1 Hz

und dann kann es weiter gehen...


(Warum kaprizieren Sie sich so auf den Pin 7? Mir wäre der völlig egal.)

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da haben wir es doch:
>Sind nur noch ein paar LEDs und Schalter auf der Platine.

>>11.08.2008 08:14
>>Blockkondensatoren korrekt verbaut?
>>An eine EMV-gerechtes Layout gedacht?

Link lesen:
http://www.atmel.com/dyn/resources/prod_documents/...

>Hat irgendwer ne Idee warum ich am Pin7 ständig H Signal habe?
Weil der Widerstand R42 mit 42kOhm zu groß ist, und in COdezeile 42 ein 
Fehler ist!

>>

Poste doch mal eine Schaltung (und das Layout)

Autor: Frank P. (creeper)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Kondensatoren um den ATmega so aufgebaut wie es im Elektor 
beschrieben war. Die Schalter sind DIP Switches gegen +5V, und die LEDs 
mit dem korrekten Vorwiderstand gegen Masse geschalten. Ich habe alles 
mit Pfostensteckern aufgebaut, wo ich jeweils nur die anstecke die 
gebraucht werden. Das Layout zu posten ist leider ein bisschen 
umständlich. Ich glaube schon das die Schaltung entstört ist. Was ist 
ausser den Entstörkondensatoren  noch zu beachten für ein EMV gerechtes 
Layout?

Ist es ein Problem wenn das Interface für die serielle Schnittstelle 
stecken bleibt?

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne weder ponyprog noch das Elektor-Mini-Mega-Board oder was
Sie daraus gemacht haben, aber ich hoffe doch, Sie erhielten eine
Fehlermeldung, wenn beim eigentlichen Programmiervorgang (dem 'Brennen')
etwas schief ginge; folglich muss Pin 7 == MISO (nicht MOSI !) ja wohl
okay sein.
Und um erstmal nur eine LED blinken zu lassen reichen 100 nF in der Ver-
sorgungsspannung; falls Sie Ihrem Aufbau misstrauen und ein Steckbrett
haben, können Sie den programmierten uC dort einsetzen, Kondensator, LED
und Widerstand dazu - fertig.

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube schon das die Schaltung entstört ist. Was ist
> ausser den Entstörkondensatoren  noch zu beachten für ein EMV gerechtes
> Layout?

Viiiiiiiiiiiiiel. Kurze Leitugen, keine Masseschleifen, keine 90° 
Ecken....

Ist in diesem Anwendungsfall aber eher unkrtitisch glaub ich.

Wichtig sind aber die kurzen leitungen am Quarz! er sollt direkt an den 
Pins de µC sitzen.

mfg
J.K

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Spannung messen Sie an Pin 30 == AVcc?

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie Matthias Lipinsky oben schon schrieb: Bitte mal die Schaltung (und 
Foto vom Aufbau?) posten!

Alles andere ist Kaffeesatzleserei...
(Wir helfen ja gerne, aber Hellseher sind wir nicht)

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das Layout zu posten ist leider ein bisschen umständlich.

Warum?
Ein png machen und hochladen. Oder ein Foto...
Oder zumindest mal einen Schaltplan, mit der Angabe
>Elektor-Mini-Mega-Board
kann nicht jeder was anfangen.

PS: Du möchtest Hilfe, als sei so "nett" und gib uns Infos, die wir 
möchten/brauchen...

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm, hat sich wohl erledigt (oder ist Hilfe zu bekommen zu anstengend, 
wenn man was dafür tun muss)?

Autor: senex24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach meiner Vermutung waren es Anfängerfehler der allersimpelsten Art,
oder um R. Mey zu zitieren:

"Ich übe den Fortschritt und das nicht faul,
nehme zwei Schritt auf einmal und fall aufs Maul"

Autor: Henne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Sache ist relativ einfach:

A) Source, Schaltplan und Layout wird zum Debuggen beötigt.
B) Die Daten dürfen nicht veröffentlicht werden, da die Geschichte 
kommerziell eingesetzt werden soll.

Also sucht sich der Threadstarter einen ihm kompetent erscheinenen 
Menschen aus, und bietet ihm an, nach Unterzeichnung einer 
Vertraulichkeitsvereinbahrung gegen einen Fixpreis von 300-1kEUR bzw 
einen Stundenlohn von 30-70EUR (so schätze ich die Spanne je nach 
Qualifikation ein) den Krempel zu debuggen.

Das ist der normale Weg - warum sollte es hier anders laufen?

Hendrik

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Henne:

Ich zitiere mal den ersten Absatz des Ursprungspostings:
"Ich bin derzeit drum und dran etwas mit einem ATmega16 herumzuspielen
und dafür eine kleine Testplatine in Anlehnung an das Mini-Mega-Board
von Elektor zu bauen."

Nochmal die Stichworte: Testplatine, Elektor, spielen

;-))

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.