Einsteigerfragen zu AVR Microcontroller und Allgemein

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 28 3 2024  09:23:22      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Einsteigerfragen zu AVR Microcontroller und Allgemein

    







BID = 551417

Minotaurus1337

Stammposter

Beiträge: 267
 

  


Jo ...

Ich hab die Tutorials gelesen die hier in einem Beitrag gepostet wurden und hab aber ein wenig Verständnissprobleme also es sind ein paar Grundlegende Fragen offen geblieben die ich aus dem Text nicht beantwortet bekommen habe. Vielleicht war es ein fehler das ich vorher ein Tutorial gelesen habe für PIC Controller. Aber naja es wäre schön wenn ich hier Antworten auf meine Fragen bekäme und ihr mein Bisheriges Wissen auf Fehler überprüfen könntet =).

Also zuerst einmal was ich glaube zu wissen.

Alles was man an Hardware benötigt um einen Microcontroller zu Programmieren ist eine Schaltung die sich Brenner nennt (Bauanleitungen habe ich schon gefunden) und einen PC wo der Brenner dran angeschlossen wird.

Was man an Software benötigt ist ein Editor mit dem man den text in Assembler (hab mir diese Sprache ausgesucht) schreibt. Einen Assembler mit dem man diesen Code in Maschienensprache übersetzt und ein programm mit dem man die .hex file zum Brenner schickt (hierzu fehlt mir der name).

Soweit so gut.

Jetzt meine Fragen:

In den Tutorials steht immer wieder das man den Microcontroller in der Schaltung Programmieren soll aber wozu dann der Brenner ?
Ich hatte es mir so vorgestellt das man den Chip im Brenner Brennt und dann in die Schaltung einfügt um dann zu sehen obs Funktioniert.

Wenn ich mir nen brenner zusammenbastle kann man dann in diesem nur eine Sorte Microcontroller Brennen ? Also das die Pinzahl die selbe sein muss ist mir Klar denke ich aber spielt sonst noch etwas eine Rolle dabei ?

Die Register, ist es Software oder Hardware ? Ich gehe mal davon aus das es Software ist, ist dann jeder Register ein Befehl ? Oder ist ein Register die angabe wie lang ein Befehl sein kann ? Kann mir jemand eine Bildliche vorstellung davon geben was ein Register ist ?

Vielleicht fallen mir noch ein Paar Fragen ein ...

Danke für die Antworten =)...


BID = 551424

Rambodischien

Schreibmaschine

Beiträge: 1341
Wohnort: Österreich

 

  

Hi

Ich kenne mich nur etwas mit den Atmega's von Atmel aus.

Viele Mikrokontroller der Atemage-Reihe habe eine sogenannte ISP-Schnittstelle. Das Bedeutet In System Programable also im System programmierbar. Du kannst auch den Chip zuerst Programmieren und danach in das System integrieren.

Also ich habe mit einem Mikrokontrollerboard von myAvr und der Sprache C gestartet.


_________________
Mfg Rambodischien

[ Diese Nachricht wurde geändert von: Rambodischien am 25 Sep 2008 14:34 ]

BID = 551438

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Die Register, ist es Software oder Hardware ?
Hardware!
Das sind einfach Speicherzellen, bei den einfachsten Mikrocontrollern gewöhnlich 8 Bit lang.
Allerdings sind sie ziemlich intensiv in die Maschinerie eingebunden und deshalb kann man damit einiges machen, was mit einer gewöhnlichen RAM Speicherzelle nicht geht.

Beispielsweise ist ihre Adresse im Befehl enthalten, sodass der Zugriff sehr schnell geht, ihr Inhalt kann selber als Adresse dienen um einen anderen Speicherplatz zu bezeichnen und man kann einige arithmetische Operationen wie herauf- und herabzählen oder den Inhalt verschieben damit machen ohne sie explizit zu lesen und zurückzuschreiben, also schnell.
Eine wichtige Eigenschaft ist es, dass man sie incrementieren und dekrementieren kann, ohne dass dabei die Flags im Statusregister verändert werden. Das deshalb, weil sie als Zeiger auf andere Operanden dienen können, und man ja nicht bei z.B. einer mehrstelligen Addition den Übertrag oder das Zwischenergebnis Null vergessen möchte.
INC R5 bewirkt also etwas anderes als ADD R5,1 .




_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

BID = 551454

Minotaurus1337

Stammposter

Beiträge: 267

Also sind Register sowas wie Variablen, man kann etwas reinschreiben und Verändern. Gibs nochmal ein Expliziten Speicher in einem Microcontroller oder gibs nur die Register ? Im letzteren fall würde sich die Größe eines Microcontrollers die in KB angegeben wird aus den Registern ergeben ? Also wenn ich einen 80 Bit großen MC hab ergäbe das 10 register bei 8Bit Registergröße ?

[ Diese Nachricht wurde geändert von: Minotaurus1337 am 25 Sep 2008 17:13 ]

BID = 551465

PhyMaLehrer

Schriftsteller



Beiträge: 908
Wohnort: Leipzig

Es gibt Register, die allgemein der "Manipulation" mit Daten dienen (Verschieben, Verknüpfen, Maskieren z. B.) und auch solche, die eine feste Verwendung haben, also z. B. der Einstellung der Arbeitsweise von Ein- und Ausgängen, Timern usw. dienen. Manche dieser Register lassen sich auch nur lesen, aber nicht verändern.
Daneben gibt es aber noch den Speicher, in dem das Programm untergebracht ist und den du auch für selbst definierte Variablen benutzt.

Die ISP-Schnittstelle hat den Vorteil, daß man eben nicht den Mikrocontroller jedesmal aus der Schaltung nehmen, ins Programmiergerät stecken und wieder zurück in die Anwendungsschaltung stecken muß. Er kann sogar dort fest eingelötet sein. Man muß nur die benötigten Anschlüsse (Masse, Reset, MOSI, MISO und Clock) an eine Anschlußbuchse führen, wo dann über eine entsprechende mehrpolige Leitung der Brenner angeschlossen wird.

BID = 551468

Ltof

Inventar



Beiträge: 9254
Wohnort: Hommingberg

Register sind nichts anderes als Speicherzellen, also RAM. Nun gibt es frei verfügbare Speicherzellen für Variablen Deines Programmes und eben diese Register, die, wie Perl schon schrub, auf die Hardware des µC einwirken, bzw. von der Hardware benutzt werden.

Ein Beispiel: Register X ist für einen Timer festgelegt, in dem der Zählerstand des Timers steht. Das Register ist direkt vom Programm aus schreib- und lesbar. Man könnte sogar dieses Register für eine beliebige Variable benutzen, falls der Timer nicht benutzt wird. Sowas macht man aber besser nicht. Ob der Timer benutzt wird und wie, wird in einem anderen Register festgelegt.

So ist es bei PICs. Bei Atmels mag das ein wenig anders sein. Bei PICs heißen die Register "Special Function Register".

Es ist möglich - was ich auch schon gemacht habe - ein Programm zu schreiben, welches völlig ohne Variablen auskommt und nur die Register benutzt.

Bei der Größenangabe des Speichers musst Du unterscheiden zwischen Programmspeicher (heutzutage Flash), nichtflüchtiger Datenspeicher (EEPROM - hat nicht jeder µC) und Arbeitsspeicher (RAM für Variablen und Register).

Es gibt auch µCs, die in ihren eigenen Programmspeicher schreiben können. Das ist fein für Datenspeicherung, die beispielsweise über die Kapazität des EEPROMs hinaus gehen. Das kann aber auch übel nach hinten losgehen, wenn der µC sein eigenes Programm zerhackt.

Gruß,
Ltof

_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)

BID = 551476

Minotaurus1337

Stammposter

Beiträge: 267

Ich denke ich habe das mit den registern nun verstanden =) ... Danke erstmal für die klärung dieser Fragen =) ... Aber eine hab ich noch zu den Registern: Wo steht welche Register was sind und wie ich auf diese Zugreifen kann also die Adresse des registers sozusagen. Steht das im Datenblatt des Microcontrollers ? Ich hab auch schon gelesen das eine .lib also eine Bibliothek mitgeliefert wird zu den Controllern steht das da drin ?

BID = 551478

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Wo steht welche Register was sind und wie ich auf diese Zugreifen kann also die Adresse des registers sozusagen. Steht das im Datenblatt des Microcontrollers ?
Meist ja, insbesondere für die Register mit Sonderfunktionen wie Timer oder Ergebnis des AD-Wandlers.
Für die Allzweckregister und wie man sie adressiert, findet man diese Information aber leichter in der "Instruction Set Reference".
Dort ist dann jeder Maschinenbefehl und auch der bitweise Aufbau der Opcodes genauestens erklärt.

P.S:
Die Libraries enthalten Informationen, evtl. auch kurze Programmstücke, für den Assembler oder Compiler, also für die automatisierte Übersetzung des Quellcodes in Maschinensprache.
Zum Verständnis des Prozessors trägt ihr Inhalt nicht viel bei.


_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

[ Diese Nachricht wurde geändert von: perl am 25 Sep 2008 18:55 ]

BID = 551479

Ltof

Inventar



Beiträge: 9254
Wohnort: Hommingberg


Zitat :
Minotaurus1337 hat am 25 Sep 2008 18:42 geschrieben :

Steht das im Datenblatt des Microcontrollers ?

Ja!

Schau Dir doch mal so ein Datenblatt genauer an.

In den Libs sind die Namen der Register mit den Adressen verknüpft.

Zum Beispiel: Der Zählerstand des Timers steht in dem Register mit der Adresse X. Sich das zu merken, ist beim Schreiben etwas umständlich. Man schreibt im Programm einfach "Timer" (oder wie auch immer das Register heißt) und der Assembler schaut in der zu diesem µC passenden Lib nach, welches Register mit dem Namen "Timer" gemeint ist.

Gruß,
Ltof

_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)

BID = 551495

Rambodischien

Schreibmaschine

Beiträge: 1341
Wohnort: Österreich


Bei den Datenblatt des Atmega8 stehen dort sogar Beispielcodes.

z.B.: Wie man einen Timer mit den Registern einstellt oder eine Uart-Schnittstelle


_________________
Mfg Rambodischien

BID = 551509

Minotaurus1337

Stammposter

Beiträge: 267

Cool gut gut Registermäßig ist alles klar =) ... frage mich warum die das nich so verständlich in die Tutorials schreiben da steht noch extra das die für Anfänger sind naja ^^ ...

BID = 551903

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

Hallo Minotaurus1337,

noch zu Brenner und ISP usw:

Ein Brenner kann oft unterschiedliche Typen programmieren. Häufig sind auch
mehrere Sockel darauf, so dass man unterschiedliche IC-Größen einsetzen und
programmieren kann.

Dann hat so ein AVR-Brenner eigentlich immer eine ISP-Schnittstelle heraus-
geführt, dort kann man dann ein Kabel anschliessen, was zu Deiner Schaltung
geht in der ein AVR-Chip drin steckt. Dieser lässt sich dann auf diese Weise
dann _in_ der Schaltung programmieren.
Die benötigten Signale sind bei AVRs eigentlich immer die gleichen ( siehe Post
von PhyMaLehrer), sie sind halt auf den verschiedenen Chips an anderen Pins
herausgeführt. D.h. wenn man einen Brenner einmal hat, kann man damit über die
ISP-Schnittstelle fast alle Atmels programmieren.
Ich habe hier dafür z.B. das ATMEL Evaluations-Board von Pollin, da sind neben
dem Brenner auch noch paar Taster und LEDs drauf, so dass man einfache
Progamme direkt auf dieser Platine laufen lassen und antesten kann.

Für PIC-Prozessoren braucht man allerdings eine eigene Brennerhardware, der
Rest ist aber ähnlich.

Das Programm zum Brennen nennt man ( oder ich ) Brenn-Programm oder
Programmier-Software. Bei den Atmels nutze ich dafür AVRdude, bei den Pics ein
Programm von Sprut ( sprut.de ).

Gruß
Stefan


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 2 Beiträge verfasst
© x sparkkelsputz        Besucher : 180674851   Heute : 3409    Gestern : 13317    Online : 301        28.3.2024    9:23
15 Besucher in den letzten 60 Sekunden        alle 4.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0343000888824