SOS beschreiben ATmega

v71

Neues Mitglied
21. März 2010
3
0
0
Sprachen
Hallo, ich benötige gaaanz dringend Hilfe. Problemstellung: Ich benutze zum testen und beschreiben vom ATmega16 das easyAVR5a von MicroElektronika.
Das Progamm und der Chip laufen auf dem Bord ohne Probleme, jedoch nicht in seiner Zielschaltung. Da reagiert der Chip nicht.:confused: :mad:
Es liegt Spannung, Masse und Reset an. An Xtal 1 und 2 ist ein 8 MHz quarz und trotzdem läuft der Chip nicht.
Kann das Nichtfunktionieren an dem Quarz liegen?
Können Lockbits und Fusebits (SPI Enable) falsch gesetzt sein und wie sollten diese aussehen?
Auf dem Board selber sind Quarz und Oscilator vorhanden.
Wie kann ich einen ATmega 2560 programmieren?
Der Onboardprogrammer erkennt den Chip nicht, ebenso wenig erkennt er einen ATmega16 (extern) nicht. Hierbei habe wie folgt verbunden, MOSI,MISO,SCK,RESET,GND,VCC.

Was fehlt mir hierbei eventuell an Zubehör?
Kann jemand mir eine Hilfestellung oder einen Tip geben?
Es ist sehr dringend und wichtig.
Danke
 
Hallo und Willkommen bei uns im Forum.

Ich weiß nicht ob ich dir helfen kann, kenne auch deine Entwicklungsumgebung nicht, aber vielleicht helfen dir folgende allgemeinen Hinweiseweiter.

Der ATmega16 wird mit aktiviertem internen RC-Oszillator (1MHz) ausgeliefert. Die maximale ISP-Frequenz muss kleiner gleich 1/4 der Oszillatorfrequenz sein, hier also maximal 250kBit/s, besser kleiner.

Das Fusebit SPIEN muss natürlich programmiert sein (=0, vom Werk aus programmiert) um den Mikrocontroller über ISP programmieren zu können.

Wird in deiner Applikation irgendeiner der Pins MISO, MOSI, SCK verwendet?


Gruß,
Dirk
 
Hallo, ich benötige gaaanz dringend Hilfe. Problemstellung: Ich benutze zum testen und beschreiben vom ATmega16 das easyAVR5a von MicroElektronika.
Das Progamm und der Chip laufen auf dem Bord ohne Probleme, jedoch nicht in seiner Zielschaltung. Da reagiert der Chip nicht.:confused: :mad:

Hallo !

Willkommen im AVR-PraxisForum! :ciao:

Ich habe auf die Schnelle keine Datenblätter mehr zum Eva-Board easyAVR5a gefunden.... nur vom "Nachfolger" easyAVR6a.
Die Boards gibt es z.B. bei Tigal in Östereich (vorsicht mit der MwSt. bei dem Laden!).

Was mich aber ein wenig wundert....
Wenn du sooooo dringend Hilfe brauchst, dann würde ich an deiner Stelle doch ungefragt so viele Informationen wie möglich bereit stellen. ;)

Ich sehe aber keinen Schaltplan im Anhang, oder dein Programmcode im Thread. :hmmmm:
Wie sollen wir dir da gaaaaanz schnell helfen?

Du hast geschrieben, dass dein Controller im Eva-Board einwandfrei arbeitet..... nur eben im "Zielsystem" nicht.
Wie sieht das Zielsystem denn aus?
Hast du des es selber geäzt, oder auf eine Lochrasterplatine gelötet, oder nur auf ein Steckbrett nachgebaut?

Fragen über fragen.....

Wir helfen ja gern!
Meist auch ziemlich schnell bzw. zeitnah, für ein kostenloses Internetforum.
Aber ohne genaue Infos, fischen wir auch nur im Trüben.... was dann zu Lasten deiner Zeit geht.

Ach so....
Bei aller Eile wäre es trotzdem nett und hilfreich, wenn du dich erst einmal vorstellen würdest!
Dann können wir dich und dein Wissensstand besser einschätzen und meist auch gezielter helfen.

Schöne Grüße,
Cassio
 
Hallo,

ich versuch mal Schritt für Schritt ...

Hallo, ich benötige gaaanz dringend Hilfe. Problemstellung: Ich benutze zum testen und beschreiben vom ATmega16 das easyAVR5a von MicroElektronika.
also das Ding hier ...
http://www.mikroe.com/en/tools/easyavr5a/
die eierlegende WollMilchSau :D :rolleyes:
mit viel Zeugs drauf an dem man viel falsch machen kann. Und wenn man sich
mal verrannt hat kann man viel suchen :eek: naja OK ... wolln mal sehen ...

Das Progamm und der Chip laufen auf dem Bord ohne Probleme, jedoch nicht in seiner Zielschaltung. Da reagiert der Chip nicht.:confused: :mad:
Es liegt Spannung, Masse und Reset an. An Xtal 1 und 2 ist ein 8 MHz quarz und trotzdem läuft der Chip nicht.
Also alles kontrolliert und Spannung richtig vorhanden und alles angeschlossen.

Kann das Nichtfunktionieren an dem Quarz liegen?
Können Lockbits und Fusebits (SPI Enable) falsch gesetzt sein und wie sollten diese aussehen?
Ja und Ja und Ja und Ja und ... das kann an vielem liegen.
- Quarz kaputt
- Fuses falsch eingestellt
- zu wenig Spannung
- ...

Auf dem Board selber sind Quarz und Oscilator vorhanden.
Wie kann ich einen ATmega 2560 programmieren?
Grad waren wir noch bei nem Mega16 ... :confused:
eins nach dem anderen ...

Der Onboardprogrammer erkennt den Chip nicht, ebenso wenig erkennt er einen ATmega16 (extern) nicht. Hierbei habe wie folgt verbunden, MOSI,MISO,SCK,RESET,GND,VCC.
WICHTIG ! Bei nem 64pin TQFP wird NICHT über MOSI/MISO programmiert
sondern über PDI/PDO. Das steht hinten im vollständigen Datenblatt drin.
Also in der 300 Seite Version :D

Was Dirk hier geschrieben hat solltest du auch beherzigen ...
Der ATmega16 wird mit aktiviertem internen RC-Oszillator (1MHz) ausgeliefert. Die maximale ISP-Frequenz muss kleiner gleich 1/4 der Oszillatorfrequenz sein, hier also maximal 250kBit/s, besser kleiner.
Bei 250kHz kann es ab und zu mal funktionieren und ab und zu dann mal
nicht. Das liegt an Tolleranzen der Oszillatoren. Also max 125kHz ISP-Takt
bei jungfräulichen Atmels.

Das Fusebit SPIEN muss natürlich programmiert sein (=0, vom Werk aus programmiert) um den Mikrocontroller über ISP programmieren zu können.
Wenn du das wegprogrammierst war es das mit ISP-Programmierung. Genauso
gefährlich ist das RSTDISBL. Damit kann man zwar den Reset-Pin als IO
verwenden aber dann war es das auch. Danach geht nur noch HV-Programmierung
für die man den Chip aus seiner Schaltung rausnehmen muß.

Wird in deiner Applikation irgendeiner der Pins MISO, MOSI, SCK verwendet?
Das ist meißt der größte Fehler. Da gibts von Atmel extra nen AppliNote
wie man die Pheripherie an den ISP-Pins anschaltet damit beides geht.

Was fehlt mir hierbei eventuell an Zubehör?
Kann jemand mir eine Hilfestellung oder einen Tip geben?
Es ist sehr dringend und wichtig.
:confused: Tja ... frei nach Nummer5 ... Mehr Input :D

Misch möglichst deine Probleme vom Mega2560 und Mega16 nicht
durcheinander sonst wird das mit der Hilfe ziemlsch schwierig weil keiner
mehr weiß wovon der andere grade spricht.

Dann ... Läuft der Mega 16 überhaupt nicht ? Mal einfach ne LED an einen
freien Port und in der Schaltung blinken lassen. Dann sieht man ob der AVR
garnix macht oder ob nur die gewünschte Funktion nicht vorhanden ist.

Dann mal nen Schaltplan/Skizze von deinem elektronischen Garten den du da
zum Leben erwecken willst (wär für das ISP-Problem interessant).

Ne Beschreibung was das Ding überhaupt machen soll wär auch nicht
schlecht um mal nen Überblick zu bekommen.

Und warum dringend ? Der Grund wär auch interessant ... Prüfung ?
Projekt ? ??? Die Info da drüber hat in nem anderen Forum auch schon
mal geholfen. Evtl damit man weiß bis wann es laufen muß.

Gruß
Dino
 
Hallo Leute,
Danke für die Antworten.
So also erstmal mehr zu mir und der "Sache". Bin Student für Elektrotechnik und baue dies für meine Projektarbeit, bzw. Verteidigung nach Ostern.
Wenn es fertig ist und alles so funktioniert, wie es angedacht ist, ist es eine Modellbauanlage mit automatischer Fahrzeugerkennung und Steuerung.
Ich benutze den ATmega16.
Für die Applikation wird MISO/MOSI/SCK nicht verwendet.

Platinen habe ich selbst geäzt. Für Testzwecke habe ich Port D als Eingänge und Port C als Ausgänge programmiert. Port D soll 1:1 auf Port c ausgegeben werden.
Versorgungsspannung, Signale und Masse liegen am Chip an, direkt an den Beinen gemessen.
Ebenso schliesse ich aus, dass der Quarz kaputt ist, ich habe 5 verschiedene.
Am Ausgang kommt nichts raus.

Wie beschreib ich einen 100pin TQFP? Ich dachte es geht auch über die SPI-Schnittstelle.


Werd Eure Vorschläge mal abarbeiten.
Muss heute noch bissl lernen.
Bin für weitere Hilfestellungen und Fragen offen.
Vielen Dank
A. v71
 
Hallo,

Ich benutze den ATmega16.
Für die Applikation wird MISO/MOSI/SCK nicht verwendet.

Platinen habe ich selbst geäzt. Für Testzwecke habe ich Port D als Eingänge und Port C als Ausgänge programmiert. Port D soll 1:1 auf Port c ausgegeben werden.
Versorgungsspannung, Signale und Masse liegen am Chip an, direkt an den Beinen gemessen.
Ebenso schliesse ich aus, dass der Quarz kaputt ist, ich habe 5 verschiedene.
Am Ausgang kommt nichts raus.
:confused: Ausgänge als Ausgänge definiert ? DDRC-Register mit 0xFF ?
DDRD mit 0x00 als Eingang. Dann die Daten aus dem Eingangsregister
PIND auf das Ausgangregister PORTC bringen. Und evtl bei benötigten
PullUps an den Eingängen noch das PORTD auf 0xFF stellen. Genaue
Beschreibung ist bei den FAQs zu finden (von mir und von Nomis3000).
Evtl nen kleiner Denkfehler ? Oder doch nur irgendwas falsch beschaltet.
Laß einfach mal an einem deiner Ausgangspins den Pegel im Sekundenabstand
wechseln (1-0-1-0-1-...) Das sollte man messen können. Wenn nicht ... :confused:

Wie beschreib ich einen 100pin TQFP? Ich dachte
es geht auch über die SPI-Schnittstelle.
Mega2560_SPI.png
Das Datenblatt für den Mega2560 (die 448 Seiten Version !)
Die Seitennummer ist zu sehen und die Pinbezeichnungen auch. Das hat mich
bei meinem ersten Mega128 auch ne Menge Kopfzerbrechen gekostet. Also
nicht über MIOS/MOSI sondern über PDI/PDO programmieren. Sonst bleibt
alles identisch.

Gruß
Dino
 
Hi
Nun, wenn dein Controller in der Entwicklungsumgebung funktioniert, in deiner selbstgebauten Schaltung aber nicht, dann ist da was falsch in deiner Schaltung. Möglicherweise quarzt der Quarz nicht, weil ihm die Kondensatoren fehlen oder zu groß oder zu klein sind. Also, ich rate ganz gern mal so ins Blaue. Oder vielleicht ist der Quarz gar nicht eingelötet und kann deshalb auch nicht so wie er sollte... ( is mir zwar peinlich, aber auch ich hab ein paar Tage gebraucht, weil ein Pin vom Quarz nich gelötet war und die gefusedten Atmegas vergeblich auf externen Ansporn warteten....)

So, nun noch etwas Schelte...., schön das du studierst, aber es sollte doch nicht so schwer sein, Probleme mit entsprechender Information anzusprechen. Ein Schaltplan dürfte auch für einen Studenten kein Fremdwort sein. Ein Foto von der geheimen Platine zeigt auch bisher Verborgenes. Du wirst hier schon kein Firmengeheimnis verraten.
Und nun wieder Tips:
Welche Meßgeräte stehen denn zur Verfügung. Läßt sich der Takt mit einem Oszi messen ? Wenn ja, Nadel an Meßstrippe und mit einer Nadel die IC-Beinchen abgetastet.... soll schon manchen umgebogenen IC-Pin detektiert haben.
Na denn viel Erfolg
Gruß oldmax
 
Das ist der ganz einfache Schaltplan.
Auf dem Entwicklungsboard läuft das Programm ohne Probleme. Eingang Port D wird 1:1 am Ausgang Port C ausgegeben. Der Quarz ist auch nicht defekt, den habe ich auch auf dem Board ausprobiert und ohne Quarz läuft der ATmega nicht. Kontaktprobleme würde ich auch ausschließen, die Pegel liegen in voller Höhe an bzw. zeigt das Multimeter keinen Übergangswiderstand an.
Ein Oszi steht mir nicht zur Verfügung.
 

Anhänge

  • ATmega16.pdf
    15,7 KB · Aufrufe: 24
Hallo,

Das ist der ganz einfache Schaltplan.
Auf dem Entwicklungsboard läuft das Programm ohne Probleme. Eingang Port D wird 1:1 am Ausgang Port C ausgegeben. Der Quarz ist auch nicht defekt, den habe ich auch auf dem Board ausprobiert und ohne Quarz läuft der ATmega nicht. Kontaktprobleme würde ich auch ausschließen, die Pegel liegen in voller Höhe an bzw. zeigt das Multimeter keinen Übergangswiderstand an.
Ein Oszi steht mir nicht zur Verfügung.

Wenn der Schaltplan tatsächlich stimmt und mit deiner Schaltung
übereinstimmt ... Ich wunder mich das der Atmel noch lebt ...:eek:
und im Entwicklungsboard überhaupt noch nen Pieps von sich gibt.

Bin Student für Elektrotechnik
:confused: erstes Semester ? Uni ? keine Ausbildung im Elektrobereich ?
Direkt nach dem Abi studieren ? Elektronik-Grundlagen ?
Sorry - sieht aber im Moment so aus ...
Wie lange machst du schon Elektronik ? Wär evtl interessant um besser helfen
zu können.

(1). Der RESET wird NICHT direkt an +5V angeschlossen. Das verhindert
erstens das du das Ding in der Schaltung mit ISP programmieren kannst und
zweitens weiß ich nicht ob die interne Reset-Schaltung dann die CPU auch
auf einen definierten Zustand setzen kann. Dann laß den Reset-Pin lieber frei.
Es könnte sein das deine +5V den sauberen Reset der CPU blockiert hat und
dadurch natürlich garnix läuft und alles auf Zufallswerten steht. Selbst der
Programmzähler. Der fängt dann evtl irgendwo mittig im Flash an zu arbeiten :eek:

(2). Wenn du die LEDs tatsächlich wie im Schaltplan an Port C angeschlossen
hast dann kauf dir schon mal nen neuen Mega16 weil der Port wohl Schrott
ist. Die Ausgangstreiber sind verglüht und haben einmalig das Innere
erleuchtet. Die Treiber halten maximal 20mA aus. Wie sieht es mit Grundlagen
bei Halbleiterschaltungen bei dir aus ? Diodenkennlinie ? Bei LEDs an 5V nimmt man
Vorwiderstände mit mindestens 330 Ohm (ich nehme 560 Ohm bis 1,5k).

(3). Wenn du am Port D Pulldown-Widerstände mit 10k anschaltest dann mußt
du die internen Pullups ausschalten (PortD auf 0x00) sonst hast du einen
ganz tollen Spannungsteiler und keine sauberen Digitalpegel mehr.

(4). An die Betriebsspannungsanschlüsse setzt man einen Abblockkondensator
von 100nF (Keramik) um Stromspitzen aufzufangen. Ist aber nicht lebensnotwendig
wenn man mal schnell testen will. In der fertigen Schaltung ist er aber
lebensnotwendig. Oder du suchst nachher Fehler wegen Störimpulsen auf der
Betriebsspannung.

Das sind jetzt erst mal die Dinge die mir auf die Schnelle aufgefallen sind.

Wenn du die Fehler ausgemerzt hast dann können wir weitersuchen.

Mal folgende Lektüre ...

Da sind Grundschaltungen drin ...
Wie ziehe ich ein Projekt durch ... (7-Segment-Multiplexanzeige)

Grundlagen über LEDs ...
LEDs sind keine Glühbirnen !

Und ein wenig über die Port-Register und wofür sie sind ...
Mini-FAQ : Die Port-Register DDRx, PORTx, PINx

alle hier in den FAQ hier im Forum.

... und kauf dir schonmal 2-3 weitere Mega16 (als Reserve) ;)

Gruß
Dino
 
Das ist der ganz einfache Schaltplan.

Hallo !

Ich habe mir deinen Schalplan auch mal angesehen und bin mir auch nicht sicher, ob du es wirklich so gebaut hast oder er nur als Übersicht dienen soll. :hmmmm:

Auf alle Fälle fehlt der 10k-Widerstand vor dem RESET-Pin.
Es ist gut möglich, dass der AVR daraufhin nicht arbeitet.
Für einen Reset des Cotrollers wird der Pin zwar kurz auf Masse gezogen... der Widerstand sorgt sonst eigentlich nur dafür, dass der High Zustand einwandfrei definiert ist. Allerdings solltest du dies nicht ohne den Widerstand realisieren.

Der Problematik mit den Taster-Widerständen hat Dino ja schon erklärt.....
Lass die externen Widerstände einfach weg und nutze die internen Pullups dafür! ;)

Tja und das du in der Realität doch Vorwiderstände für die LEDs benutzt hast, setze ich einfach mal voraus. :)

Gruß,
Cassio
 
Hi
Wenn du die internen Pull-ps benutzt, dann denk drann, das deine Taster gegen GND schalten müssen. So, nun mal ein wenig zur Schaltung. Du hast diese Platine geätzt ? Also, du solltest dir die Tür zum Controller nicht zu machen. Spendiere eine RS 232. Damit kannst du einen µC immer vom PC aus steuern, na ja, wenn er entsprechend programmiert ist. Außerdem hab ich hier irgendwo OpenEye versteckt. Dieses Programmm zeigt dir die Variablenzustände im Controller. Da ich im Assembler progge, und auch solche Probleme wie " Warum läuft dieses sch.. Teil nicht ..?" hatte, habe ich mir dieses Fenster in die Plaste einfallen lassen.
Übrigends, auch wenn die LED's interne Widerstände haben, in einen Schaltplan gehören sie gezeichnet, oder aber der LED Typ angegeben. Es gibt sehr viele, denen nicht klar ist, das eine LED eine Diode ist mit eben diesem Verhalten, den Strom fließen zu lassen. Und wenn der Stromkreis 100A zuläßt, fließen diese auch. Bei einer LED erkennt man das dann am kurzen aufblitzen und hören glaub ich kann man das dann auch. Ein Controller kann natürlich keine 100A liefern, aber er würd schon ganz gerne und bei seinen Anstrengungen ist er so eifrig dabei, das er sich sogar selbst dem Zweck opfert....
Und denk immer drann, in Physik ist in der Grundschule schon über einen Stromkreis gesprochen worden. Und mit dem Strom ist das so wie in der Mathematik, auch Integralrechnung hat ihren Anfang in Plus und Minus-Rechnen. Auch Elektronik ist "nur" Stromkreis....
Gruß oldmax
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)