mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Neuling


Autor: Dirk Bischof (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

da ich ein AVR-Neuling bin bitte ich eure Hilfe.

Ich möchte einen langsamen Zähler durch einen Atmel erstellen.

Der Zählerstartwert soll nach jedem Zählschritt in
einen nichtflüchtigen Speicherbereich (Flash oder EEPROM)
geschrieben werden.

Beim Einschalten des AVR soll an diesem gespeicherten Wert
mit der Zählung begonnen werden.

An 2 gewissen Zählerständen sollen je 1 Ausgang gesetzt werden.

Das wohl komplizierteste:
Der Zählerstartwert soll durch ein von mir geschriebenes
Windows-Programm über die serielle Programmierschnittstelle
vergegeben werden, wenn die Freigabe durch einen Code
(der im AVR gespeichert ist) richtig übertragen wurde.

Ich habe mich schon ein wenig informiert über AVR (AVR Studio3.56 und 
einen 4433 habe ich schon).

Hab Ihr tipps für eine Vorgehensweise ?

Gruß Dirk

Autor: ERDI - Soft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zuerst mal das AVR-Tutorial auf dieser Seite durcharbeiten. Das sollte 
schon mal einige Fragen (vor allem Grundlagenfragen) klären.

Was auch hilft, ist, sich zuerst mal einen Programmablaufplan zu 
erstellen. Damit kann man den Programmfluß grafisch darstellen, erste 
Fehler ausmerzen und optimieren, und nachher ganz einfach damit 
programmieren.

Nicht zu vergessen sind die Datenblätter und App-Notes bei 
www.atmel.com.

Autor: formtapez (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo !

meinst du mit "serielle Programmierschnittstelle" den UART ? also 
sozusagen den COM-Port des AVRs oder meinst du die ISP schnittstelle ?

wieviel "impulse" willst du denn zählen (und abspeichern) ? das EEPROM 
lässt sich nur 10.000 oder 100.000 mal (je nach AVR) beschreiben, dann 
ist sense.

MfG
formtapez

Autor: Dirk Bischof (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schonmal für Ihre Antwort.

Da ich Elektroniker bin werde ich mich schon einarbeiten.

Aber prinzipiell sollte das Projekt doch möglich sein?

Welcher AVR wäre denn passend (Speicher, Flash, EEPROM u.s.w.)?

Gruß Dirk

Autor: ERDI - Soft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglich ist es auf jeden Fall. Würde den ATmega8 benutzen, da die 
'normalen' AVR's abgekündigt werden. Der sollte auf jeden Fall genug 
Speicher haben, und auch von der Geschwindigkeit her ist er top. (Denke 
mal, dass du nicht mehr als ein paar 100 events pro sekunde zählst?)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dirk!

Außerdem musst du noch die Geschwindigkeit des EEPROMS beachten. Es 
dauert nämlich einige ms bis die Information hineingeschrieben wurde.

Martin

Autor: Dirk Bischof (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

vielen Dank nochmals!

Geschwindigkeit ist völlig uninteressant!!
(nur alle 1..5 minuten ein Zählimpuls)

Aber ich denke gerade über das speichern des
Zählerstandes nach.( Antwort von formtapez)

Wo liegt denn normal das Programm ? Doch im Flash oder?
Wo könnte man denn noch den Zählerstand speichern?
im internen EEPROM, externen EEPROM oder C-MOS RAM mit Batterie?

Gruß Dirk

Autor: Dirk Bischof (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so wo ist denn der Unterschied
zwischen der "serielle Programmierschnittstelle" dem UART
und einer ISP Schnittstelle?

Sind das nicht beides serielle Programmierschnittstellen?

Ich mochte über die serielle Programmierschnittstelle
auch eine Komunikation mit einenm Windows Programm
herstellen!

Gruß Dirk

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um mit dem PC zu kommunizieren, brauchst Du den UART. Zusätzlich noch 
einen Pegelwandler (MAX232 und 4 Kondensatoren) weil der COM-Port mit 
+/- 12 V arbeitet, der Atmel mit 5 Volt.
Der 4433 ist für Deine Anwendung auf jeden Fall geeignet, völliger 
Quatsch, einen ATMega zu kaufen, wenn Du schon einen 4433 hast.
Den Zählerstand kannst Du im internen EEPROM speichern, allerdings mit 
dern Einschränkung, daß dies nicht unbegrenzt oft geht. Aber da gibts 
einen Trick, den ich schon oft angewendet habe: Der Controller wird mit 
einem dicken Elko gepuffert, so daß er ca. 0,25 Sec. ohne Spannung 
läuft. Einen Port-Pin habe ich direkt an der Spannungsversorgung (vor 
dem Elko, Diode nicht vergessen!). Sobald die Spannung ausfällt, wird 
der aktuelle Zählerwert ins EEPROM geschrieben (0,25 Sekunden sind mehr 
als ausreichend, der Schereibvorgang dauert nur ein paar ms).
Somit wird das EEPROM nur dann beschrieben, wenn die Spannungsvesorgung 
ausfällt (dürfte wohl nicht so oft der Fall sein).

Autor: Dirk Bischof (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke thkais !!

Gute Idee!

Damit wird das EEPROM nur bei jedem
Stromverlust beschrieben.

Jetzt habe ich erstmal genug Info's für weitere Gedanken.

Vielen Dank nochmals an alle

frohe Pfingsttage, Dirk

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.