mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 555 Baustein als Taktgeber für µC


Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte mal nachfragen ob man einen 555 Timerbaustein irgendwie an 
die XTAL Anschlüsse eines µC als externer Taktgeber anschließen kann ?

Autor: Daniel P. (polzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schau doch mal ins Datenblatt. Beim ATtiny11 gehts und das ist der 
kleinste, also sollte es eignetlich bei allen gehen. Die Taktquelle muss 
an XTAL1- XTAL2 ist NC, also nicht beschalten, aber vielleicht als IO 
benutzbar. Wie gesagt, schau ins Datenblatt.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte allerdings die CMOS-Version vom 555 sein. Bei der bipolaren 
Version, also dem klassischen NE555, reichen die Pegel nicht.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich wollte mal nachfragen ob man einen 555 Timerbaustein irgendwie an
>die XTAL Anschlüsse eines µC als externer Taktgeber anschließen kann ?

Was soll das bringen?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evtl. will er einen verfuseten AVR retten.

Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der 555 ist ein NF-IC, d.h. 32kHz sind kein Problem, aber 8 oder 20MHz, 
wo sich ein AVR so richtig wohl fühlt, kannste knicken.

Nimm besser nen 2.AVR und setze die CLK-out Fuse.


Peter

Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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:
.equ    wait = 0xFFFFFFFF       ;wait 25769803770 Cycle (53min at 8MHz)

        ldi     r19, byte4(wait)
        ldi     r18, byte3(wait)
        ldi     r17, byte2(wait)
        ldi     r16, byte1(wait)
loop:
        subi    r16, 1   ; 1
        sbci    r17, 0   ; 1
        sbci    r18, 0   ; 1
        sbci    r19, 0   ; 1
        brne    loop     ; 2  = 6 cycle loop time

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


Peter

Autor: T. G. (getle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, also is das Generierungsprogramm einfach nur Mist, was ich 
hab.

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.