555 Baustein als Taktgeber für µC

OP Persönliche Seite #1020895
Lesenswert?

Ich wollte es nur mal in Erfahrung bringen ob es überhaupt möglich ist, 
ich hab keinen verfusten AVR, also das Bauelement kommt also an den 
XTAL1 dran. Die Sache warum es für mich interessant ist, ist einfach 
weil ich am 555 die Taktrate einstellen kann, deshalb wollte ich es mal 
wissen. Ich hab es übrigens gefunden, es steht unter External Clock im 
Datenblatt des 11er's wenn es das richtige ist. Danke für die schnellen 
Antworten.
OP Persönliche Seite #1020908
Lesenswert?

Ich bin kein AVR Profi, ich weiß zwar bissl wie man die Dinger 
programmiert und einsetzt, aber viele Sachen sind mir noch nicht 
geläufig (z.B ADC). Ich weiß das mit NF-Bereich der Bausteine, bloß ich 
brauch ne immer solche hohen Frequenzen, gerade wenn ich Verzögerungen 
programmiere die auch mal bissl länger sein können macht sich das mit 
niedrigeren Frequenzen besser (weniger Code). Gibt bei solchen niedrigen 
Frequenzen Probleme mit dem µC zwecks der Programmausführung ?
#1020912
Lesenswert?

Nein, den AVR kannst du auch mit 50Hz betreiben. Nur darf die 
ISP-Frequenz dann nicht über 12,5Hz liegen. Das Flashen ist dann 
folglich eher was für sehr geduldige Gemüter.

Niedrige Takte kriegt man allerdings auch mit dem externen RC-Oszillator 
hin, nix anderes als was der 555 macht nur weniger genau und selten 
verwendet. Und neuere AVRs haben eine programmierbaren Prescaler, der 
den Takt erheblich reduzieren kann.
Persönliche Seite #1020917
Lesenswert?

Tony G. wrote:
> ich Verzögerungen
> programmiere die auch mal bissl länger sein können macht sich das mit
> niedrigeren Frequenzen besser (weniger Code).

Ähm, wenn du der Meinung bist, dass Codegröße und Dauer von 
irgendwelchen Verzögerungen maßgeblich zusammenhängen, gibt es wohl noch 
fundamentalen Nachholbedarf bei den eingebauten Timern! Also nix gegen 
eine Taktrate des µC, die nicht unnötig über dem liegt, was benötigt 
wird, aber den Controller aus obigem Grund auszubremsen ist schon arg 
seltsam.
OP Persönliche Seite #1020918
Lesenswert?

Das heißt immer ein Viertel der Betriebsfrequenz ist die ISP Frequenz, 
ne programmiert wird ja mit dem Board bloß dort wo der dann zum Schluss 
eingebaut (Platine) wird könnte eine niedrigere Betriebsfrequenz sein. 
Ich selber hab ein Evaluationsboard von Pollin, ich weiß das das Ding ne 
grad gern gesehen ist, aber das STK500 is mir zu teuer und für meine 
Zwecke reicht das Board allemal zu.
#1020921
Lesenswert?

Tony G. wrote:
> gerade wenn ich Verzögerungen
> programmiere die auch mal bissl länger sein können macht sich das mit
> niedrigeren Frequenzen besser (weniger Code).

Lach,

der Faktor 256 kostet Dich genau ein Register mehr, also 2 Words Code 
(LDI+SBCI), diese Einsparung läuft unter "merkt absolut niemand".

Abgesehen davon macht man lange Delays (>256 Zyklen) besser mit nem 
Timer.


Peter
OP Persönliche Seite #1020923
Lesenswert?

Hä wie schreibt ihr sowas in Assembler, ich hab mir mal so ein 
Codegenerator runtergezogen, wo man die Zeit und Taktrate eingibt und 
dann spuckt das Ding den Code raus, um so länger die Dauer desto länger 
der Code, deshalb besorgt mich das, wenns anders auch geht, dann schreib 
mal ein Codebeispiel hin, wie gesagt Assembler is für mich Neuland. 
Übrigens die Delays sind manchmal länger als eine Sekunde, also viele 
Zyklen.
OP Persönliche Seite #1020933
Lesenswert?

Da haperts wieder mit den Englischkenntnissen, aber Groben versteh ichs 
in etwa, trotzdem Danke erstmal an euch alle für die schnelle Hilfe. Ich 
müsste sowieso das Tutorial erstmal komplett beenden, ich denk mal das 
klären sich noch viele Fragen. Ein Frage hätte ich an euch noch, kann 
man ein ADC auch PC betreiben, weil ich mir eine Temperatursteuerung 
bauen will die aber ohne PC auskommen soll (Schalten eines Relais in 
einem Temeperaturbereich).
#1020942
Lesenswert?

T. G. wrote:
> Hä wie schreibt ihr sowas in Assembler, ich hab mir mal so ein
> Codegenerator runtergezogen, wo man die Zeit und Taktrate eingibt und
> dann spuckt das Ding den Code raus, um so länger die Dauer desto länger
> der Code

stimmt, 53 min bei 8MHz benötigen schon riesige 9 Words:
1
.equ    wait = 0xFFFFFFFF       ;wait 25769803770 Cycle (53min at 8MHz)
2

3
        ldi     r19, byte4(wait)
4
        ldi     r18, byte3(wait)
5
        ldi     r17, byte2(wait)
6
        ldi     r16, byte1(wait)
7
loop:
8
        subi    r16, 1   ; 1
9
        sbci    r17, 0   ; 1
10
        sbci    r18, 0   ; 1
11
        sbci    r19, 0   ; 1
12
        brne    loop     ; 2  = 6 cycle loop time

Da sind dann schon gewaltige 0,05% Flash beim ATmega32 weg.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren