ATmega8A-PU vs ATmega8A-16PU

micron

Neues Mitglied
09. Mai 2013
9
0
0
Sprachen
Hallo Forum,
ich hoffe ich bin im richtigem Bereich, ich wollte nämlich einen ATmega8A-PU kaufen, als Reserve falls meiner abraucht Olimex-Experimentierboard AVR-P28-8MHz.
Aber die hatten nicht den selben, sondern den ATmega8A-16PU, kann ich auch den nehmen für die selbe Hardwarekonfiguration?
Oder sind die beiden so unterschiedlich das der 16PU nicht den ATmega8A-PU ersetzen kann?

Danke für Hilfe.
micron
 
Hi,

auf den ersten Bilck fallen mir keine geänderten Register und Bits auf - aber Du kannst gern selbst schauen. Die Signatur ist identisch.

Bei den A-Versionen wurde (AFAIR) der Fertigungsprozess vreändert, die Controller haben andere und einheitlichere elektrische Daten -> Selektion nach minimaler Betriebsspannung oder maximaler Taktfrequenz war nicht mehr nötig.

Das P steht für die Gehäuseform (P=Plastic Dual Inline Package (PDIP), A=thin profile plastic quad flat package (TQFP), M=Exposed Pad, Micro Lead Frame Package (MLF))
Das U für den Temperaturbereich (U=-40..85°C, N=-40..105°C)
Ein eventuelles R dahinter würde auf eine ganze Rolle/Gurt von den Dingern schliessen lassen. Solltest den Mega8 also durch den Mega8A ersetzen können.
 
Hallo,
vielen Dank für die Antwort.

Hat sich erledigt, ich hab 2 neue vom selben Typ gekauft, anderer Händler hatte die.
Der Grund dafür ist das ich seit gestern diese Fehlermeldung bekommen habe:
Verifying Flash...Failed! address=0x0000 expected=0x12 actual=0x00
Und wollte noch andere ausprobieren, vielleicht hab ich ja den originalen geschrottet.
Aber der Fehler kommt auch bei den eben gekauften, das selbe Problem.
Vielleicht kann jemand helfen bei dem, ich benutze AVR-Studio 6.1, mit dem 4.* ist das selbe Problem.

Gruß
micron
 
Nochmal für's Verständnis (von vor Deinem Edit): 'nen ATmega8A mit 16 dahinter gibts seitens Atmel gar nicht. Die A-Serie kann immer die volle (beim Mega8A 16MHz) Taktfrequenz. Deswegen wird'se da nicht mehr angegeben. Also nur ATmega8A-PU (für den "normalen" PDIP).

Zu Deinem eigentlichen Problem: kannst Du bei den bisher ungenutzten Controllern die Signatur lesen, oder gibts auch da schon Probleme?
Welche ISP-Frequenz ist eingestellt (darf max 1/4 des Prozessortaktes sein, der ist beim Mega8/Mega8A out of the box 1MHz mit internem Oscillator, also ISP-Frequenz maximal bis 250kHz zulässig.

Wie hoch ist die Versorgungsspannung?
Äh...
Welchen Programmer setzt Du ein? Ist ja auf dem Board keiner drauf...
Und irgendwie steig ich da auf dem Schematic nicht durch - der LM317 versorgt lediglich die LED und den Button-Pullup, und ist zwischen 3,3 oder 5V (?) einstellbar. Aber der ist nicht an das 5V-Netz des Controllers (und des Pegelwandlers) angebunden. Der einzige Verbinder, der auf der Platine 'ne Anbindung an das 5V-Netz führt ist der ISP-Anschluß (also eigentlich VTG).
 
Hi,

Zu Deinem eigentlichen Problem: kannst Du bei den bisher ungenutzten Controllern die Signatur lesen, oder gibts auch da schon Probleme?
Welche ISP-Frequenz ist eingestellt (darf max 1/4 des Prozessortaktes sein, der ist beim Mega8/Mega8A out of the box 1MHz mit internem Oscillator, also ISP-Frequenz maximal bis 250kHz zulässig.

weniger als 1/4 ist besser. Durch Exemplarstreuungen, Toleranzen und Temperaturdrift der Frequenz kann es bei 1/4 sonst manchmal funktionieren und manchmal nicht.

Gruß
Dino
 
Hi,
hier schon mal die Infos so wie gefragt :)

Vorweg: es hat auf einmal funktioniert, was mich kein bißchen glücklicher macht, denn ich weiß nicht wieso??? :(

LotadaC: Danke für die Klarstellung über ATmega8 :)
Ich kann(konnte) die Signatur lesen, der ISP ist der AVRISP mkII,
Taktfrequenz ist eingestellt von dem AtmelStudio 6.1 und die ist bis jetzt immer 2kHz unter "Tools" (linke seite Tabreiter),
Nur Menu->Tools->Debugger Programming war die Frequenz 125kHz gewesen, jetzt auf einmal 2kHz?? // Vielleicht ist das der Grund dazu?
Ich kann den Fehler jeder Zeit jetzt "provozieren" in dem ich die Taktfrequenz des ISP höher stelle, es kommt immer der Fehler den ich beschrieben habe,
sobald ich die Frequenz des ISP auf 2kHz zurück setze kann ich den Atmega programmieren?
Spannung ist bei 5.5 V.

Es tut mir Leid das ich hier Zeit von Euch geraubt habe, ich kann mir das leider nicht erklären wieso das jetzt auf einmal läuft, ich hoffe es liegt nur an dem ISP,
ach ok, ich hab vorher auch das Update durch geführt von Atmel Studio, danach gings nicht mehr, also der Fehler ist seit dem entstanden.


Vielen Dank
micron
 
Wie gesagt: Ausgeliefert werden die Mega8(A) mit aktiviertem internen 8MHz-Oscillator und voreingestelltem MainClockPrescaler (Vorteiler) von 8 (CKDIV8-Fuse). Also effektiv 1MHz. Die Frequenz der ISP-Clock darf höchstens (mit etwas Luft -> Dino) ein viertel davon betragen. Aber mehr als 2kHz sollten drin sein...
Du kannst ja beim Mega8A mal die CKDIV8-Fuse rausnehmen, dann sollte er mit 8MHz laufen. Wie hoch kannst Du danach die ISP-Clock schrauben?

Mit AVRISP mkII meinst Du den echten, oder irgendeinen Nachbau?
 
Hi,

nein es ist kein "echter" AVRISP mkII, es ist ein Klon: "USBprog 3.3 programmiert mit AVRISPmkII Klon" -> so ist der auf der Seite beschrieben.
Den ISP konnte ich bis jetzt immer mit der Einstellung 125kHz benutzen, aber jetzt nur noch mit 2kHz, kein anderer Wert wird akzeptiert,
ich hab versucht schrittweise den zu verstellen, aber es blieb bei dem Fehler, alles über 2kHz bringt den Fehler.
Es dauert auch viel länger als früher bis das Programm "hochgeladen" ist.

CKDIV8-Fuse rausnehmen
Sorry, wo kann ich das einstellen? Vielleicht unter->Devices Programming->Fuses: [Hier gibts eine Liste mit "Fuses", aber keiner nennt sich so]?
Diese sind gesetzt(falls ich das gefunden haben was Du meinst):
SPIEN: checked
BOOTSZ: 1024_0C00
BODLEVEL: 2v7
SUT_CKSEL: INTRCOSC_1MHZ_6CK_64MS_DEFAULT

Diese sind gesetzt, andere wie BOOTRST haben zwar ein grünes "Check" Symbol, aber die Checkbox ist nicht gesetzt.

micron
 
Sorry, beim Mega8(A) ging das noch direkt über die CKSEL-Fuses. Der letzte Punkt in Deiner Liste. Dort stattdessen 8MHz interner Osci mit 6 Clocks+64ms Startuptime auswählen.
Achtung: bei den Fußes nichts bei RSTDSBL ändern, und bei der Clockeinstellung nicht external Clock wählen, sonst sperrst Du Dich mit Deinem Board programmiertechnisch aus dem Controller aus.

Daß die Programm Übertragung mit einer langsameren ISP-Frequenz länger dauert ist klar. Du hast nur noch ein 60stel der Bitrate eingestellt.
 
Hi,
hat leider nicht geklappt, ich werde auch mit den 2kHz "Arbeiten" können, nur hald langsam, aber wichtig dass das Programmieren geht.
Noch ein Bild über die Einstellungen:
Fuses_einstellungen.jpg

Ich denke zu Not kann ich die 2kHz stehen lassen, ist aber nicht grad schön aber besser als garnicht, was ich noch sagen wollte ist das sich der Debugger Port
2x geändert hat, am Anfang war der etwas um die 4**** und dann 2x geändert, und aktuell ist der Port 1341 <-- wo kann man den selber ändern, geht das?

lg
micron
 

Anhänge

  • Fuses_einstellungen.jpg
    Fuses_einstellungen.jpg
    87,6 KB · Aufrufe: 8
Auf Deinen Screenshoots fällt auf, daß der Programmer als Original-AVRISP MKII erkannt wird. Wie meinst Du das:
...ach ok, ich hab vorher auch das Update durch geführt von Atmel Studio, danach gings nicht mehr, also der Fehler ist seit dem entstanden...
Du hast das Studio aktualisiert, oder Du hast (mit dem Studio) die Firmware des Programmers aktualisiert?
 
Hi,
sorry wegen so späten Antwort, ich hab nur das Atmel Studio aktualisiert, hab auch schon versucht zu deinstallieren und wieder alles neu, hat aber nichts gebracht.
Hab aber schon ein paar Übungen gemacht mit der normalen Einstellung von 125kHz für den ISP, dann kam erst der Fehler mit dem programmieren des AVR.

micron
 
Hmm...
Wenn Du am Programmer (und der Ziel-Schaltung/Board) nichts geändert hast, bleibt ja nur der PC. Da das Problem nach der Installation des neuen Studios auch das Alte betrifft (und sich auch durch eine komplette Neuinstallation nicht beheben läßt), kann's eigentlich nur an irgendwelchen Treibern liegen.

'Ne Möglichkeit das mit 'nem anderen Programmer gegenzuprüfen haste nicht, oder? Oder 'nen anderen PC auf dem nur 'ne ältere Studio-Version installiert ist mit Deinem Programmer?

P.S.: auch wenn das Target mit 8MHz läuft, gehts ab derselben 2kHz-ISP-Clock-Grenze nicht mehr?
(eventuell könnte man mal überprüfen, ob die Grenze bei Reduzierung des MCU-Taktes weiterhin bei 2kHz bleibt - dein Mega8A besitzt allerdings keine interne langsame Frequenz-Quelle (zB den Watchdog-Oszillator als Taktquelle) - ich gehe aber wie gesagt davon aus, daß das Problem irgendwo zwischen PC und Programmer liegt...)

Edit: Man könnte auch mal versuchen, zwei Programmierversuche (ID auslesen oder so) mit 2 und 125 kHz mit 'nem LA mitzuloggen, und zumindest mal die erzeugte CLK-Frequenz zu überprüfen
 
Hi,
grad als ich an einem anderem pc ausprobieren wollte hab ich noch die Voltage an der Quelle runter gesetzt, von 6V imput auf 4.5, dann kann ich sogar mit 250kHz den ATmega programmieren.
Damit blinkt aber nichts, dann muss ich wieder auf 6V erhöhen dann läuft auch das Programm, nur wieso das jetzt, die alte Einstellung wäre mir lieber, alles mit 125kHz benutzen und die Spannung bei 6V lassen.
Und mit AStudio 4 gehts auch nicht, auch an einem anderem PC nicht, hab aufm Notebook probiert, nur als Info.
Hab inzwischen auch andere ATmega8 ausprobiert es ist beim gleichen, ich gehe davon aus das ich nicht den alten geschrottet habe :D

Gruß
micron
 
Was meinst Du denn jetzt mit Quelle?
Der Controller ist auf 2,7..5,5V ausgelegt (abgesehen vom Reset-Pin).
Wie wird der Controller denn überhaupt versorgt (also beim Programmieren und im laufenden Betrieb? Weil:
...
Und irgendwie steig ich da auf dem Schematic nicht durch - der LM317 versorgt lediglich die LED und den Button-Pullup, und ist zwischen 3,3 oder 5V (?) einstellbar. Aber der ist nicht an das 5V-Netz des Controllers (und des Pegelwandlers) angebunden. Der einzige Verbinder, der auf der Platine 'ne Anbindung an das 5V-Netz führt ist der ISP-Anschluß (also eigentlich VTG).
Laut Schaltplan des Händlers (Herstellers?) liegt das 5V-Netz an den Vcc/AVcc Versorgungspins nur noch am seriellen Pegelwandler, diesem komischen Reset-Baustein und der Programmierbuchse an - der einzige externe Zugang auf das Netz wäre also die Programmierschnittstelle.
Falls der Plan stimmt.

Steck es doch einfach mal auf'n Breadboard auf, also Minimalbeschaltung mit oder ohne externem Qaurz (Fuses vorher entsprechend setzen), mit der LED und passendem Vorwiderstand, und probier es ohne Deinem Board...

Zur Minimalbeschaltung hatte Dino im FAQ schon was geschrieben - hier
 
Hallo,

also so wie sich das anhört ist da irgendwas in der Hardware (Spannungsversorgung?) oberfaul.
Da passen irgendwie die Pegel vom Progger zur Schaltung nicht. Entweder erkennt der Progger die Spannung vom Zielsystem falsch oder er erkennt es richtig und das Zielsystem verwendet andere Pegel weil der Controller mit ner anderen Spannung versorgt wird als der ISP-Anschluß.

Gruß
Dino
 
Dieses Problem habe ich auch schon gehabt (TINY13).
Dieser wird mit einem Takt von 1MHZ ausgeliefert (war bei mir zumindest so) und hat dann noch die CLKDIV8 Fuse enabled.
Darum konnte ich auch komischer weise nur mit 2kHz programmieren.
Nach umstellen der Fuse, hat es funktioniert.

Es kann aber auch an einer zu langen ISP- Leitung liegen (hatte ich bis jetzt aber nur beim Debuggen (25 cm)).
 
???
Default Clock Source
The device is shipped with CKSEL = “10”, SUT = “10”, and CKDIV8 programmed. The Default clock source setting is therefore the Internal RC Oscillator running at 9.6 MHz with longest Startup time and an initial system clock prescaling of 8. This default setting ensures that all users can make their desired clock source setting using an In-System or High-voltage Programmer.
Der interne Oszillator des Tiny13 kann entweder mit 9,6MHz schwingen oder mit 4,8MHz (9,6MHz sind default). Eine (Default) gesetzte CKDIV8-Fuse setzt den System Clock Prescaler dann auf 8, folglich hättest Du einen effektiven Takt von 1,2MHz (oder 0,6MHz, aber Default eben 1,2MHz).
Alternativ könnte man mit den CKSEL-Fuses den Takt auch aus dem Watchdog-Oszillator ableiten, also 128kHz (bzw 16kHz mit CKDIV8) beim Startup.
CKDIV8 legt die Initialisierung des System Clock Prescalers fest, eben mit 1 oder 8. Zur Laufzeit kann man dann aber diverse andere diskrete Teiler festlegen - bis hin zu 256 (was mit den WD-Oszi einen effektiven Takt von sagenhaften 500Hz ergäbe)
 

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