Erster Blinkversuch ATmega328

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Re: Erster Blinkversuch ATmega328

Beitragvon Mathias » 15. Okt 2017, 20:39 Re: Erster Blinkversuch ATmega328

Ich denke, es wird momentan das besten sein die Fuses in ruhe zu lassen. Der AVR ist komplexer als er auf den ersten Blick aussieht. :wink:
Wen ich eine Takt oder sonst was ändern will, kann ich dies (momentan) noch über die Arduino-IDE machen.
Wen der AVR vorbereitet ist, kann ich mit Lazarus weiter machen.

Ist ein Fuses vergleichbar mit eine INI-Datei, welche die Konfigurationen für den AVR speichert ?

Dass die Arduino-IDE hier die Baudrate ändert liegt wahrscheinlich nur daran, dass die IDE annimmt: Ok, der Controller läuft mit niedrigem Takt, dann kannst Du nur mit 9600 Baud übertragen weil der Uart bei niedrigem Takt die 115kBaud nicht schafft. Und dann Avrdude den Befehl gibt, mit niedriger Baudrate zu arbeiten.

Sowas habe ich fast vermutet. Ich wollte den UART meines Arduinos auch mal manuell programmieren, aber da war bei ca. 9600Baud fertig.
Mit den Arduino-Libs kommt man bis auf 1'000'000 Baud ! Dies habe ich schon probiert.

@Timm Thaler
So wie es scheint, hast du dich schon recht tief in den AVR eingearbeitet. :shock:
Ich muss wohl noch viel lernen, viel mehr als direkte Portmanipulation habe ich bis jetzt nicht gemacht, ansonsten habe ich Arduino-Libs verwendet :roll:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3194
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 15. Okt 2017, 21:41 Re: Erster Blinkversuch ATmega328

Mathias hat geschrieben:Ich denke, es wird momentan das besten sein die Fuses in ruhe zu lassen. Der AVR ist komplexer als er auf den ersten Blick aussieht.


Nein, ist er nicht. Du interpretierst da zu viel rein. Und die Fuses fasst man einmal an, wenn man den AVR einsetzt, und vielleicht ein zweites Mal wenn das Programm fertig ist und man ihn weitergeben und dabei vor Auslesen schützen will.

Mathias hat geschrieben:Ist ein Fuses vergleichbar mit eine INI-Datei, welche die Konfigurationen für den AVR speichert ?


Ein Controller ist kein Prozessor. Ein Controller ist ein Stück Hardware, welches mit festverdrahteten Schaltungsstrukturen (And, Or-Gatter, Vergleicher, Addierer, Subtrahierer, Zähler) ein quasi-festverdrahtetes Programm (den in den Flash eingeschriebenen Maschinencode) abarbeitet. Dabei spielt es auch keine Rolle, ob der Maschinencode bis zu 10.000 mal neu eingeschrieben werden kann. Ist er einmal drin, kann er als festverdrahtet betrachtet werden.

Ein Fuse-Bit ist eine Speicherzelle. Diese Speicherzelle bildet einen Schalter, mit dem sich bestimmte Funktionen am Controller ein- oder ausschalten lassen. Umschalten interner Takt, externer Takt, Taktfrequenz durch 8 teilen, Brown-out einschalten usw. 8 dieser Schalter werden praktischerweise zu einem Fuse-Byte zusammengefasst.

Fuses heisst das deswegen, weil das früher wie eine Sicherung arbeitete: Die Fuses waren bei der Herstellung des Controllers gesetzt (1) und wurden buchstäblich durchgebrannt, wenn man sie auf (0) haben wollte. Zurück ging nicht. EPROM - Elektronisch programmierbarer Nur-Lese-Speicher.

Später entwickelte man Technologien, wie man Bits auch wieder zurücksetzen konnte. EEPROM - Elektronisch programmierbarer und löschbarer (erase) Nur-Lese-Speicher.

Auch heute ist es so, dass die Bits im Flash anfangs auf (1) stehen und beim Programmieren die entsprechenden Bits auf (0) gesetzt werden. Man kann keine Bits von (0) auf (1) setzen. Dazu muss man den Flash vorher löschen (erase), dann stehen alle Bits wieder auf (1), und dann kann man ihn programmieren (nötige Bits auf 0). Deswegen ist bei einem Programmiervorgang eigentlich immer ein Erase nötig, dass macht der Programmer aber von allein - wenn man es ihm nicht verbietet.

Und deswegen kann man z.B. Lock-Bits auch nur zurücknehmen (Programm nicht vor Auslesen geschützt), wenn man vorher den ganzen Chip löscht. Was ungemein praktisch ist, sonst könnte jemand einfach die Lock-Bits zurücksetzen und Dein Programm auslesen.
Timm Thaler
 
Beiträge: 431
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.6 FPC3.0.0, Raspbian Jessie Laz1.6 FPC3.0.0 | 
CPU-Target: Raspberry Pi 3
Nach oben

• Themenende •
Vorherige

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried