Forum: Mikrocontroller und Digitale Elektronik AVR mega88-20au SMD lässt sich nicht programmieren


von Steffen P. (steffen_p)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe mir eine kleine Schaltung zum faden von LEDs zusammen 
gebastelt. Das Programm habe ich bereits und läuft auch wunderbar auf 
einem mega88 in der THT Bauweiße. Jetzt habe ich versucht das ganze via 
eines USBasp über einen ISP Anschluss auf einen mega88-20au zu bekommen 
aber leider bekomme ich immer wieder die Meldung daß das Board nicht 
antwortet.
Habe ich vielleicht einen Fehler in meinem Schaltplan?

Gruß

: Bearbeitet durch Admin
von Peter R. (pnu)


Lesenswert?

Höchstwahrscheinlich nicht. Du hast ja nur die Hardware (insbesonders 
das board) geändert, nicht den Schaltplan. Der ist ja der gleiche wie 
bei der THT-Version.

Deshalb beschränke Dich bei der Fehlersuche erst einmal auf das 
Einfachste:

Stelle sicher, dass die Stromversorgung des Kontrollers und die 
Verbindungsleitungen des ISP-Anschlusses in Ordnung sind. Dann müsste 
bei der ersten Anfrage des Proggers die Signatur des Kontrollers 
übergeben werden.

Gerade an dem blöden ISP-Anschluss kann man schnell "gespiegelt" 
anschließen.

Wenn die Signatur des Kontrollers erstmal übergeben wird, hat man meist 
die Hardware-bugs wie Spiegelung, Kurzschlüsse, Unterbrechung usw. 
überwunden.
Die Anschlüssse für die Dioden usw. kann man da erst einmal weglassen.

Ich selbst arbeite bei Inbetriebnahme meiner selbstgeätztem boards immer 
so:
Zuerst nur den ISP und die Versorgung des Kontrollers zusammenlöten. 
Erst wenn die Signaturgeschichte klappt, bestücke ich den Rest.

: Bearbeitet durch User
von Steffen P. (steffen_p)


Lesenswert?

Ich habe heute mal die Pinbelegung durchgemessen (vom USBasp über das 
Kabel zum yC), die passt. Die Spg.versorgung liegt auch überall an wo 
sie soll.
Ich habe mir mal einen TQFP Sockel besorgt und das ganze über ein 
Steckbrett versucht und selbst da passiert nichts bzw. kommt auch die 
Meldung daß das Board nicht antwortet.

von Thomas E. (thomase)


Lesenswert?

Dein nagelneuer Atmega läuft mit 1MHz. Läuft der andere vielleicht 
schneller und du hast die ISP-Frequenz vom Programmer hoch gesetzt? 
Probier mal einen niedrigeren ISP-Takt.

von Steffen P. (steffen_p)


Lesenswert?

Thomas E. schrieb:
> Dein nagelneuer Atmega läuft mit 1MHz. Läuft der andere vielleicht
> schneller und du hast die ISP-Frequenz vom Programmer hoch gesetzt?
> Probier mal einen niedrigeren ISP-Takt.

WOW!!! Das war es! Zum Glück habe ich einen 2. Programmer da gehabt bei 
dem ich den Takt runter stellen kann. Danke :D

Hab jetzt nach dem flashen (mit 8MHZ Takt) meinen anderen USBasp 
ausprobiert aber mit dem geht das trotz des vorher eingestellten Takt 
immer noch nicht. Muss ich da noch was anderes beachten?

: Bearbeitet durch User
von Steffen P. (steffen_p)


Lesenswert?

So, das Programm ist jetzt auf dem uC und läuft aber leider habe ich ein 
kleines Problem! Die LEDs an den Pins 9 und 10 faden normal aber die 
LEDs an den anderen PINs flackern dabei. Kann mir vielleicht jemand 
sagen warum manche meiner LEDs flackern beim faden? Zumal faden sie 
recht langsam.
Ich habe die gleiche Schaltung als THT Version aufgebaut und mit ein und 
den selben Programm bespielt. Da flackert aber nichts und die LEDs faden 
auch schneller. Woran liegt das?

von S. Landolt (Gast)


Lesenswert?

Die erste Vermutung ist doch, dass nach wie vor die THT-Version mit 8, 
SMD jedoch mit 1 MHz läuft.

von Wolfgang (Gast)


Lesenswert?

Steffen P. schrieb:
> Da flackert aber nichts und die LEDs faden auch schneller.

Vielleicht genau einen Faktor 8 schneller?

Das sollte sich feststellen lassen. Spiele zur Kontrolle och einfach mal 
auf beide µC-Versionen ein Programm drauf, das eine LED im 1s-Takt 
blinken lässt.

von Steffen P. (steffen_p)


Lesenswert?

Wolfgang schrieb:
> Steffen P. schrieb:
>> Da flackert aber nichts und die LEDs faden auch schneller.
>
> Vielleicht genau einen Faktor 8 schneller?
>
> Das sollte sich feststellen lassen. Spiele zur Kontrolle och einfach mal
> auf beide µC-Versionen ein Programm drauf, das eine LED im 1s-Takt
> blinken lässt.

Hab jetzt mal einen Sketch auf beide uC aufgespielt und siehe da, die 
SMD ist wesentlich langsamer als die THT Bauweiße.
Den Takt des Oszillator für den uC stelle ich in der Arduino IDE unter 
"Werkzeuge -> Clock" ein. Dort habe ich "8 MHz internal" eingestellt.

Vielleicht hätte ich die mega88-20au doch nicht in China bestellen 
sollen...

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Nein, damit stellst du nicht die Taktfrequenz des Oszillators ein, 
sondern du teilst der IDE (und dem Compiler) mit, für welche 
Taktfrequenz das Programm erzeugt werden soll.

Davon hängen nämlich _delay_ms() ab und die Berechnungen in 
util/setbaud.h.

Der Taktgeber im Mikrocontroller hat keine Ahnung, was du in der IDE 
einstellst. Der Taktgeber wird durch durch Fuses konfiguriert.

von Stefan F. (Gast)


Lesenswert?

> Vielleicht hätte ich die mega88-20au doch nicht in China
> bestellen sollen...

Zumindest ist es für Anfänger hilfreich, vertrauenswürdige Produkte zu 
verwenden, wo man sicher sein kann, dass der Fehler zu 99,9% vor dem 
Bildschirm sitzt.

Das gilt in deinem Fall für den Programmer und den µC. Hast du 
wenigstens eine ordentliche Stromversorgung? Da sparen die Bastler 
nämlich auch oft an der falschen stelle. Dabei eignen sich simple 
Batterien für den Anfang besser als jedes schlechte Netzteil.

Erfahrene Leute wissen wie man Fehler analysiert und können schnell 
erkennen, ob ihnen Schrott verkauft wurde (meistens sind die Teile Ok). 
Doch Anfänge tun sich da schwer, vor allem, wenn die Schaltung auf 
Teilen besteht, die man noch nicht einzeln erprobt hat.

von spess53 (Gast)


Lesenswert?

Hi

>Den Takt des Oszillator für den uC stelle ich in der Arduino IDE unter
>"Werkzeuge -> Clock" ein. Dort habe ich "8 MHz internal" eingestellt.

Und der Programmer macht auch davon gebrauch?

MfG Spess

von Stefan F. (Gast)


Lesenswert?

> Und der Programmer macht auch davon gebrauch?

Eben nicht.

von Axel R. (Gast)


Lesenswert?

Du kannst im Quelltext das clockprescaleregister entsprechend setzen.
Da steht jetzt drinn, das er clock/8 "machen" soll.Dieses Bit löschen.

Aber eigentlich über die Fuses...

von Steffen P. (steffen_p)


Lesenswert?

Als Spg.quelle nutze ich während des Programmiervorgangs den USBasp und 
danach nutze ich einen 9V-Block.

So, habe unter Clock jetzt mal auf 1 MHz gestellt und jetzt tut die 
Schaltung soweit außer die LED an Pin 1 des Controllers. Die flackern 
noch aber der Rest ist läuft einwandfrei.
Da frag ich mich jetzt aber wie ich es geschaft habe den Takt des THT uC 
auf 8 MHz zu ändern...?!?

von Stefan F. (Gast)


Lesenswert?

> danach nutze ich einen 9V-Block.

Hoffentlich mit Spannungsregler. Ansonsten wird das die Ursache für das 
Flackern sein.

Nachtrag: Sorry, hast ja einen Spannungsregler im Schaltplan. Der 7805 
ist allerdings nicht gut, weil er mindestens 7V am Eingang braucht. 
Deine Dioden führen zu weiteren 1,4V Verlust. Die Batterie muss also 
knacke-voll sein (8,4V). Da 9V Batterien ohnehin sau teuer sind, ist das 
ziemlich doof. Nimm lieber einen LDO Regler, zum Beispiel den LF33CV. 
Den Gleichrichter würde ich bei Batteriebetrieb weglassen. Als 
Verpolungsschutz eignet sich eher eine Diode, welche die Batterie bei 
falschen Anschluss einfach kurzschließt. An der geht im Normalbetrieb 
keine Spannung verloren, da sie nicht in Reihe zum Spannungsregler 
liegt.

> Da frag ich mich jetzt aber wie ich es geschaft habe den Takt des
> THT uC auf 8 MHz zu ändern...?!?

Möglicherweise wurde er als Arduino Zubehör verkauft und enthielt daher 
bereits einen Bootloader und veränderte Fuses. Denn Arduinos laufen in 
der Regel mit 8 oder 16 Mhz.

von Steffen P. (steffen_p)


Lesenswert?

Stefan U. schrieb:
>> danach nutze ich einen 9V-Block.
>
> Hoffentlich mit Spannungsregler. Ansonsten wird das die Ursache für das
> Flackern sein.

Auf jedenfall! Die Schaltung ist für einen Güterwagon gedacht und die 
Gleisspg. wäre viel zu hoch für den Aufbau.

>> Da frag ich mich jetzt aber wie ich es geschaft habe den Takt des
>> THT uC auf 8 MHz zu ändern...?!?
>
> Möglicherweise wurde er als Arduino Zubehör verkauft und enthielt daher
> bereits einen Bootloader und veränderte Fuses. Denn Arduinos laufen in
> der Regel mit 8 oder 16 Mhz.

Kann sein gut was garnicht so abwegig ist. Den habe ich bei einem 
Händler in der Stadt gekauft.

Bezüglich deines Nachtrages: Die 9V sind nur zu Testzwecke. Die Platine 
kommt in einen Wagon mit einer Gleisspg. von 20V.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Neulich hatte hier jemand berichtet, dass er von einem Online Händler 
"versehentlich" ATtinies mit Bootloader bekommen hatte.

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.