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


von Lötlackl *. (pappnase) Benutzerseite


Angehängte Dateien:

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:

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:

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:

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