mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterschied Programmierung ATMega32 zu ATTiny2313


Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich möchte ein Programm schreiben, welches in der Lage ist über RS232 
einige ATMega Typen zu beschreiben (ähnlich PonyProg). Mit einem 
ATMega32 funktioniert mein Programm auch. Jedoch ist es nicht möglich 
einen ATTiny 2313 zu beschreiben. Weitere Typen habe ich noch nicht 
getestet. Ich kann im Datenblatt keinen Unterschied bei der 
Programmierung von ATMega 32 und ATTiny2313 erkennen. (Der Tiny 
funktioniert mit Pony Prog)
Vielen dank

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu wenig Infos. Dein Programm läuft also auf dem Tiny, aber das 
Programmieren eines anderen AVRs geht damit nicht?!

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Timmo
Nein genau andersherum. Einen ATMega 32 kann ich beschreiben (also auch 
auslesen, schreiben und löschen).
Bei einem ATTiny funktioniert nur das auslesen korrekt, beim Schreiben 
und Löschen passiert nichts.
Auf dem ATTiny laufen ist der falsche Ausdruck. Ich habe kein Programm 
geschrieben, was etwas auf dem uC auslöst. Ich habe ein Programm 
geschrieben, was den uC beschreibt (ein Pony Prog Clon wenn du so 
willst).

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal langsamer zu takten! Der Tiny läuft ab werk mit 500 khz wenn 
ich das richtig in erinnerung habe!

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Tinys benutzen ein anderes Pollingverfahren. Bzw können nicht alle.

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8Mhz sollte der Takt ab Werk sein, ich habe auch andere Taktraten durch 
die Fuse Bits und andere Verzögerungszeiten in meinem Programm versucht. 
Dies hat leider keinen Erfolg.

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dir ist bewusst, dass die Pagegrößen unterschiedlich sind?

...

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja ich denke das habe ich richtig in meinem Quellcode beachtet
ATTiny hat größe 16word
ATMega32 hat 64word

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es scheint doch ein TimingProblem zu sein, danke Leute
@Christian, was meinst du mit Polling?

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du das Datenblatt mal gelesen ?
Die Abfrage ob der Flash schon programmeirt ist nennt sich polling. 
Deshalb gibt es auch kein festes Timing, das kann selbst von Controller 
zu Controler etwas variieren.

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Lesen und schreiben eines AT Tiny funktioniert nun. Das Chip Erase 
funktioniert jedoch nicht.
@Christian: Du meinst, dass es einen Befehl gibt, der guckt ob im Tiny 
nicht nur FF drin steht, sondern schon Programmcode und dieser Befehl 
muss vorher abgefragt werden?

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph Day wrote:
> 8Mhz sollte der Takt ab Werk sein, ich habe auch andere Taktraten durch
> die Fuse Bits und andere Verzögerungszeiten in meinem Programm versucht.
> Dies hat leider keinen Erfolg.
8Mhz ist der Takt ab werk, aber mit der CHKDIV/8 Fuse sind es dan 
nurnoch 1 Mhz.

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du wirklich zu Faul mal ins Datenblatt zu gucken ? Es steht doch 
alles drin. Du musst eine Seite laden und dann den befehl zum flashen 
geben. Danach wartest du entweder eine festlegegte Zeit die sich von 
Controller zu Controller unterscheidet oder du pollst. Beim polling 
gibts glaub ich 3 verschiedene Verfahren und nicht jeder Controller 
unterstützt jedes.

Zitat aus dem Datenblatt des Tiny2313:
The Flash is programmed one page at a time. The memory page is loaded 
one
byte at a time by supplying the 4 LSB of the address and data together 
with the
Load Program Memory Page instruction. To ensure correct loading of the 
page,
the data low byte must be loaded before data high byte is applied for a 
given
address. The Program Memory Page is stored by loading the Write Program
Memory Page instruction with the 6 MSB of the address. If polling 
(RDY/BSY) is
not used, the user must wait at least tWD_FLASH before issuing the next 
page. (See
Table 77 on page 178.) Accessing the serial programming interface before 
the
Flash write operation completes can result in incorrect programming.

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian
Das schein ich doch richtig beachtet, zu haben, wenn ich den uC 
beschreiben kann ?

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn hinterher auch wirklich das richtige drin steht ja. Nur sollte dann 
die Frage nach dem polling gar nicht erst aufkommen ?!
Chip Erase funktioniert immer dazu muss man nur den richtigen Befehl 
hinschicken. Solang man dem Chip dann nicht zu früh die Stromversorgung 
klaut was fast nie vorkommt ist alles gut.

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist eben mein Problem, schreiben und lesen geht korrekt, aber das 
löschen nicht. Muss ich vlt zum korrekten Chip Erase noch die Security 
oder Fuse Bits setzen?

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein nur das richtige Kommando hinschicken glaub mir.

Autor: Christoph Day (christoph85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und die Timins unterscheiden sich auch nicht beim Tiny zwischen Lesen, 
Schreiben und Löschen?

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit mir bekannt nicht, genaueres siehe Datenblatt.

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.