Forum: Mikrocontroller und Digitale Elektronik AVR Neuling


von Dirk Bischof (Gast)


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

von ERDI - Soft (Gast)


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.

von formtapez (Gast)


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

von Dirk Bischof (Gast)


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

von ERDI - Soft (Gast)


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?)

von Martin (Gast)


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

von Dirk Bischof (Gast)


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

von Dirk Bischof (Gast)


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

von thkais (Gast)


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).

von Dirk Bischof (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.