Forum: Projekte & Code kleiner Wachhund für CNC-Steuerungen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Lötlackl *. (pappnase) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Zuge der Modernisierung meiner Käsefräse entstand dieser kleine 
Wachhund.
Klein sollte es werden, damit es auf meinem selbst kreierten 
Breakout-Board paßt, so entschied ich mich für einen ATtiny4.
Dieser Wachhund soll bewirken, daß die Maschine die Signale vom 
Druckerport ignoriert, solange die CNC-Software noch nicht läuft.

In meinem Fall ist es LinuxCNC in Verbindung mit der HAL-Komponente 
"charge_pump", welches ein Signal im kHz-Bereich liefert.
Näheres dazu findet der geneigte Leser in der LinuxCNC-Wiki.
Mach3 hat so was ähnliches zu bieten, da sind es wohl 12,5kHz, so mein 
Wissensstand.

Zur Funktion: Sobald ein entsprechendes Signal an "IN" anliegt, wird ein 
Counter runtergezählt bis Null,
dann wird der Watchdog-Ausgang "OUT" aktiviert, das kann nach Belieben 
Low oder High sein, je nachdem, wie man möchte.
Sollte aber nur ein einziges mal die ermittelte Pulslänge nicht passen, 
wird sofort der Watchdog-Ausgang deaktiviert.

Der Wachhund spricht in einem weiten Frequenzbereich von ca. 2kHz bis 
etwa 13kHz an.
Zudem gibt es einen Ausgang (CLK), an dem man mit geeignetem Equipment 
messen kann, wie oft die ISR angesprungen wird.

Der ATtiny4 läuft mit dem internen RC-Oszillator, ohne Vorteiler und 
12MHz.
Eigentlich läuft der interne RC-Oszillator mit 8MHz, aber mit einer 
höheren Taktfrequenz bekomme ich noch sauber 13kHz detektiert.
Wem das zu sehr außerhalb der Spezifikation des internen Oszillators 
deucht,
kann gerne die Zeile
1
OSCCAL = CAL_12_MHZ;
, dessen Wert empirisch ermittelt wurde, auskommentieren oder gar 
löschen.
Dann sollte man aber auch "DEBOUNCE" entsprechend auf "50000" 
reduzieren, da sonst nicht mehr sichergestellt werden kann,
daß zwischen den Interrupts genügend Takte für die Abarbeitung der 
Hauptschleife vorhanden sind.

Einen Schaltplan erspare ich mir aufgrund der Trivialität, kann ihn aber 
gerne bei Interesse nachreichen.
Der Schaltplan besteht eh nur aus einem ATtiny4, einem 
100n-Abblockkondensator und meinetwegen der 
TPI-Programmierschnittstelle.

Hilfreiche Anregungen, Verbesserungsvorschläge und konstruktive Kritik 
sind gerne willkommen, den Rest ignoriere ich.

von Uwe B. (uwebre)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
.. am Beispiel einer Interfacekarte für eine alte ISEL-Steuerung
Die Software müßte natürlich angepasst werden was die Ports betrifft.

Grüße,
Uwe

: Bearbeitet durch User
von Lötlackl *. (pappnase) Benutzerseite


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Nachdem ich immer mißmütiger mein obiges Geschreibsel betrachtete, 
fühlte ich mich dazu genötigt, noch mal Hand anzulegen.
Dadurch wurde das Programm etwas schlanker und vielleicht auch 
verständlicher.
Keine Ahnung, was mich da geritten hat.

mfg

von Lötlackl *. (pappnase) Benutzerseite


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
OMG, PullUps werden beim Tiny4 etwas anders aktiviert.
Tja, Datenblatt lesen hilft.
Hier nun die hoffentlich finale Version.

mfg

Beitrag #6582069 wurde von einem Moderator gelöscht.

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]
  • [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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.