Hallo Leute, kann jemand mir erklären, was beim Reset passiert,
vielleicht anhand des Blockdiagramms vom ATtiny13a, welches gerade vor
mir liegt?
Warum ist die Programming Logic mit der Interrupt Unit und
Timer/Counter0 verbunden?! Welche Unit setzt beim Reset den Program
Counter auf den ersten Befehl?
Beim Reset werden alle Hardwarekomponenten und Register in einen
sinnvollen Ausgangszustand versetzt. Dann startet die
Programmausführung.
Mehr muss man nicht wissen. Es macht keinen Sinn sich tiefer mit dem
internen "Schaltplan" des µC zu befassen, da dieser geheim ist,
jederzeit geändert werden kann (sofern die äußere Funktion gleich
bleibt) und weil es hier keine allgemein gültige Lösung gibt die auf
alle µC zutrifft. Bei AVR kommt noch dazu, dass die Tage dieser
Architektur schon angezählt sind.
Wenn du wirklich ins Detail gehen willst, dann mache das besser mit
einer brandneuen Architektur, die du für vielversprechend hältst.
Stefanus F. schrieb:> alle µC zutrifft. Bei AVR kommt noch dazu, dass die Tage dieser> Architektur schon angezählt sind.
Bestimmt nicht, wo hast du das her ?
AVR (ATMEL/MICREOCHIP) als Firma mag verschwinden aber die Architektur
(8-bit, RISC) wird noch lange da sein.
Es werden immer noch 4-bit uC eingebaut.
ATtiny13A geek schrieb:> Hallo Leute, kann jemand mir erklären, was beim Reset passiert,
Das steht alles ganz ausführlich im Datenblatt, Kapitel 8. System
Control and Reset
> aber die Architektur (8-bit, RISC) wird noch lange da sein.
Ja klar und alle 8-bit RISC Mikrocontroller funktionieren im Detail ganz
bestimmt genau gleich? Wohl kaum.
Also für mich sieht es jetzt auch nach aller Befürchtung nach der
Übernahme durch Microchip nicht so aus als wenn AVR ausstirbt. Im
Gegenteil, da sind noch einige neue AVRs gerade erschienen sind und auch
in der Zukunft noch kommen. OMHO ist AVR auch die modernere Architektur.
Und insbl. die sehr modulare Xmega Architektur, die sich leider noch
nicht so richtig durchgesetzt hat. 8 Bit wird denke ich in naher Zukunft
nicht so wirklich aussterben. Es gibt nach wie vor die
Daseinsberechtigung für AVR/8-Bit und das wird sich auch nicht
allzuschnell ändern.
ATtiny13A geek schrieb:> Hallo Leute, kann jemand mir erklären, was beim Reset passiert,> vielleicht anhand des Blockdiagramms vom ATtiny13a, welches gerade vor> mir liegt?>> Warum ist die Programming Logic mit der Interrupt Unit und> Timer/Counter0 verbunden?!
Mit der Interruptlogik ist sie verbunden, um sie in einen definierten
Zustand versetzen zu können.
Warum sie mit Timer0 verbunden ist: keine sicheres Wissen (steht halt
nicht im Datenblatt). Nur die Ahnung, dass der zur Ablaufsteuerung
während des Programmierens verwendet wird. Könnte aber natürlich
genausogut sein, das es sich schlicht um einen Zeichenfehler im Diagramm
handelt.
Welche Unit setzt beim Reset den Program
> Counter auf den ersten Befehl?
Natürlich die Program Counter-Unit. Mit der ist die Programming Logic ja
ebenfalls verbunden.
Stefanus F. schrieb:> Bei AVR kommt noch dazu, dass die Tage dieser> Architektur schon angezählt sind.
Reine Vermutung, Hörensagen, Weissagung??
Ich denke nicht, dass die 8bit-Welt in absehbarer Zeit ausstirbt, wenn
man sich mal anschaut, wo die Kerlchen inzwischen (sinnvollerweise) drin
sitzen. Von der Druckerpatrone über die Mirowellenuhr, massig als
LIN-Slave im Kfz, jeder beschissene Akkupack und so weiter und so fort.
Selbst der popelige PWM-Generator im Akkuschrauber ist inzwischen in MC.
All diesen Anwendungen ist gemeinsam: Massenprodukt mit geringen
Anforderungen an Rechenleistung und Kommunikationsfähigkeiten. Aber
dennoch deutlich mehr vorhanden, als für die og. beispoielhaften
Anwendungen gebraucht werden. Also einfach das perfekte Bauelement, um
die geforderte Funktionalität (oft genug als Einchip-Lösung) billig zu
erreichen. Ein mehr Rechenleistung/Speicher/Kommunikationsfähigkeit
bringt Null Vorteile. Das willst du alles mit Boliden erledigen? Kann
man, muss man aber nicht. Es wird nicht jeder Knopf einen
WLAN/Inernetanschluss bekommen. Einfache Logik in Software, in
sinnvoller (ausreichender) Geschwindigkeit wird uns noch lange
begleiten.
H.Joachim S. schrieb:> Ich denke nicht, dass die 8bit-Welt in absehbarer Zeit ausstirbt,
Zumindest nicht bei mir. Ich habe noch so viele Controller hier, die
reichen bis an mein Lebensende.
F. F. schrieb:> Ich habe noch so viele Controller hier, die> reichen bis an mein Lebensende.
Und die Freundlichen werden alle versorgen, bei denen Mangel herrscht.
Da muss man sich nur den LGT8F88A und MD328D anschauen...
Vermutlich, sowas wie die "Spitze eines Eisberges" ;-)
Jedenfalls eine fundierte Basis.
c-hater schrieb:> ATtiny13A geek schrieb:>>> Hallo Leute, kann jemand mir erklären, was beim Reset passiert,>> vielleicht anhand des Blockdiagramms vom ATtiny13a, welches gerade vor>> mir liegt?>>>> Warum ist die Programming Logic mit der Interrupt Unit und>> Timer/Counter0 verbunden?!>> Mit der Interruptlogik ist sie verbunden, um sie in einen definierten> Zustand versetzen zu können.>> Warum sie mit Timer0 verbunden ist: keine sicheres Wissen (steht halt> nicht im Datenblatt).
IMHO ist das eine Fehlinterpretation des Blockschaltbilds. Nach meiner
Interpretation sind alle diese Einheiten im wesentlichen mit "Timing And
Control" verbunden. Und weil ohnehin schon zu viele Verbindungen dahin
gehen, hat man die Verbindungen dieser 3 Einheiten zusammengefaßt.
>> Welche Unit setzt beim Reset den Program>> Counter auf den ersten Befehl?>> Natürlich die Program Counter-Unit.
Nicht so wirklich. Der PC wird ja auch nicht "auf den ersten Befehl"
gesetzt, sondern schlicht auf den Wert 0. Die allereinfachste
Vorstellung dazu wäre, daß der Reset-Eingang dieses Zählers (das C in
PC steht ja für counter = Zähler) mit dem µC-Reset verbunden ist.
Die Details sind natürlich komplexer, insbesondere bei
AVR-Familienmitgliedern, die einen Bootloader unterstützen (tut der
Tiny13 nicht).
> Ich denke nicht, dass die 8bit-Welt in absehbarer Zeit ausstirbt,
Oh Mann, da habe ich ja was losgetreten. In diesem Forum muss man echt
aufpassen, was man sagt.
Ich benutze unterschiedliche 8bit Mikrocontroller gerne und auch weil
ich darauf hoffe, dass man sie mindestens bis zu meiner Rente noch
problemlos kaufen kann. Ich erwarte, dass einzelne Typen (zum Beispiel
der ATMega32) abgeschafft werden, aber für die wird es Ersatz geben.
Nichts desto Trotz ist für mich offensichtlich, dass alle Hersteller auf
32 und mehr Bits setzen. Die 8 bit AVR Kerne betrachte ich als
ausgereift und daher langweilig. Wenn etwas geändert wird, dann nur noch
an der Peripherie drumherum. Immerhin möchte ich meinen Enkeln etwas
nützliches davon beibringen können.
Wenn ich heute etwas neues durch Erforschen erlernen möchte, dann werden
das ganz sicher nicht Vergaser-Motoren, Röhren-Fernseher und Glühlampen
sein.
Stefanus F. schrieb:> Immerhin möchte ich meinen Enkeln etwas> nützliches davon beibringen können.
Wer das Bit nicht verstanden hat brauch mit > 4bit nicht weiter machen.
Lehre deinen Enkeln die Grundlagen dann spielt die Menge der Bits einer
Architektur auch keine Rolle mehr.
> Die 8 bit AVR Kerne betrachte ich als> ausgereift und daher langweilig.
mmhhh ausgereift auf jedenfall langweilig ?? Sicher nicht! Vom Prinzip
her ist es egal ob die Architektur 4/8/16/24/32/64/128...Bit verarbeiten
kann letztendlcih immer das gleiche. Führt alles auf die Addition
zurück.... und das haben alle Architekturen gemeinsam!
Und auch mit 8bit kann man eine Menge Aufgaben abdecken, natürlich keine
superhochauflösenden Grafiken aber eben viele Steuer/Regelungsaufagben
wo eine sehr hochbittige Architektur absolut oversized ist/wäre.
> Wenn ich heute etwas neues durch Erforschen erlernen möchte, dann werden> das ganz sicher nicht Vergaser-Motoren, Röhren-Fernseher und Glühlampen> sein.
Eben doch nennt sich Grundlagen! Man trifft es zwar nur noch mit
geringem Anteil im Alltag aber wer die Geschichte/Entwicklung nicht
kennt weiß nicht welche Errungenschaften die Neurerungen darstellen!
ATtiny13A geek schrieb:> Hallo Leute, kann jemand mir erklären, was beim Reset passiert,> vielleicht anhand des Blockdiagramms vom ATtiny13a, welches gerade vor> mir liegt?
Das schöne ist das alle AVR's bis auf die ATmegaX von der Struktur
ähnlich sind und nur durch Kleingkeiten unterscheiden... Ob Tiny13A oder
Atmega328 werden grundsätzlich gleich programmiert.
https://www.bernd-leitenberger.de/harvard-neumann.shtmlhttp://www.lernort-mint.de/Informatik/EDV/computer_architektur.html
Das schöne, heutige CPU's(PC-bezogen) nutzen beide Arhcitekturen sowie
CISC und RISC, so wie es in Zukunft den Motor geben wird der Diesel und
Benzin verarbeiten wird natürlciuh nicht gleichzeitig.. ;)
http://service.projektlabor.tu-berlin.de/projekte/spannungswaechter/material/mikrocontroller-handout.pdfhttp://www.ruhr-uni-bochum.de/nds/lehre/vorlesungen/eingebetteteprozessoren/ss05/Mikrocontroller.pdf
chris schrieb:> Wer das Bit nicht verstanden hat brauch mit > 4bit nicht weiter machen.> Lehre deinen Enkeln die Grundlagen
Meine Güte, kann hier eigentlich niemand ohne persönliche Angriffe
posten?
"Wer das Bit nicht verstanden hat..."
Darauf könnte man ja gleich antworten "Wer Dativ und Akkusativ nicht
verstanden hat, braucht mit der Sprache/dem Schreiben nicht weiter zu
machen."
Lehren wird mit Akkusativ verwendet, nicht mit Dativ.
Und: "Wer brauchen ohne zu gebraucht, ist nicht zu gebrauchen."
Danke für die vielen Posts!
Mir ist es egal ob die AVRs später noch hergestellt werden - wenn nicht
gründe ich später mal eine Firma die das tut ;)
Außerdem habe ich noch ca. 50 allein von den ATtiny13A zu Hause - die
sind sehr nützlich
Ich verfolge diverse Fragen in diesem Forum schon einige Zeit. Dieser
Beitrag hier hat mich gerade auch interessiert...
Was mir auffällt: Stefanus schreibt sehr oft Kommentare, die völlig
subjektiv sind und überheblich klingen. Der Typ ist doch nicht ganz
normal, oder?
nicht weiter machen schrieb:> Meine Güte, kann hier eigentlich niemand ohne persönliche Angriffe> posten?> "Wer das Bit nicht verstanden hat..."
Das ist und war kein persönlicher Angriff!!
Aber wo ist dein Beitrag der was nützliches zum Thema beigetragen hat ??
Oli, du hast korrekt erkannt, das ich hier oft meine persönliche Meinung
basieren auf meiner persönlichen Erfahrung kund tue. Ich denke das dies
unter anderem der Sinn von Diskussionsforen ist. Wir diskutieren hier
Fakten und Meinungen.
Da dich dieses Thema interessiert teile uns doch bitte auch deine
Meinung ZUM THEMA mit.
Stefan ich bin immer sehr dankbar, gerade für deine Meinung, die auf
vielen Erfahrungen beruht.
Ebenso wie von anderen hochkarätigen Mitglieder (da sind auch einige
Gäste mit gemeint).
Das ist es gerade, was für mich dieses Forum ausmacht.
Wenn du was über Metall wissen willst, ist Bernd sicher immer ne gute
Hausnummer. Atmel Programmierung, da ist Jörg ganz vorne dabei.
Alle mögliche Elektronik und insbesondere Schiffe, frag Matthias.
Der Hauptvorteil der 8-Bitter ist, daß alles streng synchron und
vorhersagbar ist. Es gibt nur einen einzigen Takt für CPU, Busse und IO.
Damit sind z.B. Delayschleifen auf den Zyklus genau berechenbar. Und es
gibt auch keine spurious Interrupts, Exceptions, falsche Daten im Cache
usw.
Auch der große Spannungsbereich ist oft von Vorteil. Man kann einen
Lithiumionenakku (2,5 .. 4,3V) direkt ohne Spannungsregler benutzen.
Peda,
die Vorteile die du da für 8 bit µC genannt hast treffen auf alle mir
bekannten 8 bit Mikrocontroller zu. Gibt es denn wirklich keine 32 bit
Controller die ebenfalls all diese Vorteile haben?
Klar wäre das aus Kosten der Performance, aber die muss eben nicht immer
maximiert werden. Hauptsache, die sind für den Anwendungsfall schnell
genug.
Stefanus F. schrieb:> Gibt es denn wirklich keine 32 bit> Controller die ebenfalls all diese Vorteile haben?
Nein.
Mir zumindest nicht bekannt.
Es ist immer ein Abwägen.....
AVR: 1,8 bis 5,5V
Alleine da kommt kein mir bekannter ARM mit
Viel Konfiguritis könnte man durch sinnvolle Defaults erreichen. Wobei
das beim STM32F1 größtenteils schon der Fall ist.
Nur abstrahiert die HAL (bzw. SPL) das wieder derart weg, dass man
normalerweise jedes einzelne Konfigurationsbit ausdrücklich
programmiert, bevor man den I/O Pin anspricht.
Ich gehöre ja eher zu den Leuten, die sich auf das Datenblatt verlassen.
Wenn da steht, dass der Port durch einen Reset soundso eingestellt wird,
dann verlasse ich mich darauf. Entsprechend weniger Zeilen Code brauche
ich dann, um ihn (ohne HAL) zu benutzen.
Soweit ich bisher mitbekommen habe, kann man beim STM32F1 fast alle
Register außer acht lassen, die man vermutlich gerade nicht benötigt.
Bei den AVR ist das mit den Defaults sogar perfekt umgesetzt, finde ich.
Nachtrag: Toll, jetzt ist der Bezug zu meiner Antwort gelöscht worden.
> Toll, jetzt ist der Bezug zu meiner Antwort gelöscht worden.
Logisch, Hausverbot ist Hausverbot, der Forumsbetreiber kann sich doch
nicht ganz offen zum Affen machen lassen (und das ist dann auch zum
Besten aller anderen hier). Der Betroffene sollte sich vielleicht ein
anderes Pseudonym zulegen, dann wäre es nicht gar so offensichtlich und
eventuell ließe sich damit leben.
Ok.
Für diejenigen, die den Beitrag zur "Konfiguritis" nun nicht mehr lesen
können: jemand hatte kritisiert, dass größere Mikrocontroller zunehmend
aufwendig konfiguriert werden müssen. Unter anderen auch, weil sie immer
mehr Features anbieten, die man nur selten benötigt.
So habe ich das jedenfalls im Gedächtnis.
ATtiny13A geek schrieb:> Hallo Leute, kann jemand mir erklären, was beim Reset passiert
Im Prinzip passiert nichts weiter, als dass der ProgramCounter auf den
Wert 0 gesetzt wird. Es werden noch ein paar weitere einzelne Bits
gesetzt bzw. gelöscht: z.B. DDR, InterruptEnable, usw. Das steht alles
im Datenblatt beim der jeweiligen Registerbeschreibung.
RAM wird nicht gelöscht.
Der Reset ist quasi ein Interrupt mit dem Interruptvector 0, bei dem
noch ein paar Bits mehr beeinflusst werden.
Stefanus F. schrieb:> Für diejenigen, die den Beitrag zur "Konfiguritis" nun nicht mehr lesen> können: jemand hatte kritisiert, dass größere Mikrocontroller zunehmend> aufwendig konfiguriert werden müssen. Unter anderen auch, weil sie immer> mehr Features anbieten, die man nur selten benötigt.
Das liegt daran, dass es mittleierweile möglich ist, sehr viel Hardware
in einen einzelnen Chip zu packen. Es sit billiger nur eine Variante
herzustellen, als mehrere verschiedene uC mit verschiedenen
Ausstattungen.
Die Mentalität der Käufer ist doch auch so: Da ist mehr drinne für den
gleichen Preis als beim anderen und deshalb wird der mit mehr Features
genommen, egal ob man die Funktionalität braucht oder nicht.
> Im Prinzip passiert nichts weiter, als dass der ProgramCounter> auf den Wert 0 gesetzt wird.
Das sämtliche I/O Register auf einen definierten Wert gesetzt werden,
gehört meiner Meinung nach zum "Prinzip" schon noch dazu.