NETIO4 All – eine intelligente Steckdose

Net_IO_ArtikelNicht selten komme ich in die Verlegenheit, das in meiner Kellerwerkstatt noch irgendetwas ohne meine Beteiligung beendet werden will, sinnlos daneben stehen und warten muss ich aber auch nicht unbedingt haben.

 

Manchmal ist der PC länger beschäftigt, ein anderes Mal hängen noch Akkus am Ladegerät, in jeden Fall wird Strom benötigt. Nun bin ich aber auch niemand, der gerne alle Geräte einfach Energie vor sich hin verbrauchen lässt, die Sicherheit noch gar nicht betrachtet. Gerade wenn Akkus unbeaufsichtigt vor sich hin laden bin ich immer etwas misstrauisch, auch wenn in den Jahren so gut wie nie etwas auffälliges geschehen ist.

Net_IO_Artikel_ASchön wäre bzw. ist also eine Lösung, mit der ich von anderer Stelle aus meine Geräte Ein-/Ausschalten kann. Noch schöner ist es, wenn man durch unerwartete Umstände zu einem Gerät kommt, welches dieses per LAN, WLAN und (theoretisch) sogar Bluetooth 4.0/LE) erledigen kann.

 

In diesem Falle ist dies die „NETIO4 All“ Steckdosenleiste (PDU) von ‚KOUKAA‘. Ich habe eigentlich Hemmungen das Gerät als Steckdosenleiste zu bezeichnen, das ist einfach zu niedrig angesetzt. Für die ausführlichen Daten -> Link zum Hersteller!

Net_IO_Artikel_SKurz gesagt, eine eierlegende Wollmilchsau für mich. Neben den vier, per Netzwerk und direkt, schaltbaren Steckdosen, kann diese Version auch noch den Stromverbauch der angeschlossenen Last messen und, fast schon selbstverständlich, verschiedene Zeitfunktionen bedienen. Abgerundet wird der Funktionsumfang durch einen Watchdog. Angeschlossene Geräte mit Netzwerkfähigkeit können so in einstellbaren Zeitspannen angepingt und bei Bedarf neu gestartet werden. Einfach ausschalten – warten – einschalten. Sollte der Watchdog wiederholt auslösen, kann der an dieser Steckdose betriebene Verbraucher einfach dauerhaft aktiv oder inaktiv bleiben. Abgerundet wird die Funktion durch die Möglichkeit per Email benachrichtigt zu werden, wenn ein Ereignis eingetreten ist.

Net_IO_Artikel_BFür die erste Inbetriebnahme habe ich die Leiste per U-PNP gefunden, eingebunden via DHCP. Da dies in meinem Heimnetzwerk ungünstig ist, hat das Gerät gleich beim ersten Anschluss eine feste IP-Adresse bekommen. Ich greife per WLAN darauf zu, eine Funktion als Accesspoint ginge auch, brauche ich aber im Moment nicht. Lediglich für die Inbetriebnahme musste die NETIO an ein LAN-Kabel. Der gleichzeitige Anschluss LAN/WLAN ist auch möglich, die kabelgebundene Verbindung wird dann als Backupanschluss genutzt, wenn das WiFi-Netz aus irgendeinem Grund nicht verfügbar sein sollte.

Da ich meinen Arbeitsplatz zufällig auch in vier einzelne Stromkreise aufgeteilt habe, kann ich nun recht bequem die einzelnen Stränge beliebig ausschalten, egal von wo. Ich habe Messplatz, Computer, Maschinen und Licht auf eigene Verteiler gelegt, ist schon ein schöner Luxus, bestimmte Aufgaben aus anderen Räumen schalten zu können :mrgreen: Ein bisschen Einarbeitung ist allerdings Pflicht, die mitgelieferte Dokumentation ist, nun ja, eher dürftig ;-)

Für die eigene Einarbeitung darf die NETIO zunächst meinen Router, eine Telefonstation, den WLAN-Drucker und mein NAS bedienen. Alles Geräte, die ich nicht immer eingeschaltet lassen will, zu denen ich aber immer hinlaufen muss, wenn sie denn doch benötigt werden. Ausnahme ist natürlich der Router ;-) Kein Router -> kein Netzwerk -> keine IP-Steckdose. Für ihn nutze ich allerdings die Zeitschaltfunktion, einmal täglich gibt’s einen Neustart. Evtl. ordne ihm ihm auch einen Watchdog zu, allerdings soll die Steckdosenleiste ja in den Keller… Vielleicht doch eine zweite kaufen?!..? Mal sehen…

Net_IO_Artikel_ScreenAdministriert wird die NETIO4 Schaltleiste über den Webbrowser und/oder die passende Android-App (Playstore) bzw. die IOS Version, die ich mangels Apfel-Gerät allerdings nicht testen kann. Im Manual befinden sich QR-Codes, welche die Informationen zum Download der jeweiligen Mobilprogramme bieten. Die Bedienoberfläche ist dabei aufgeräumt und intuitiv zu bedienen, lediglich das Einloggen schlägt gelegentlich fehl bzw. es dauert etwas, bis der Anmeldeschirm angezeigt wird, jedenfalls wenn nicht der Ethernetanschluss benutzt wird.

00AA-NETIO4-A

Im obersten Menü werden die grundlegenden Schaltfunktionen und die Bedingungen für die einzelnen Steckdosen festgelegt. Schalten, Watchdog und Timer können für jeden einzelnen Anschluss getrennt konfiguriert und genutzt werden.

 

00AA-NETIO4-BBluetooth an oder aus… Bisher habe ich allerdings noch keine Möglichkeit gefunden, per BT Zugriffe zu erzeugen. Tablet, Telefon und Notebook finden kein Gerät.

 

 

00AA-NETIO4-CDie Benutzerverwaltung für Zugriffsberechtigte. Es können verschiedene Administrationsrechte festgelegt werden.

 

 

00AA-NETIO4-DNatürlich kann auch jede Dose ein eigenes Zeitprofil bekommen. Einmal erstellt, kann es unterschiedlich zugewiesen werden. Da mein Router gelegentlich neu gestartet werden will, lasse ich dies z. B. um 4 Uhr morgens erledigen.

00AA-NETIO4-EZusätzlich kann die ‚NETIO4 All‘ noch auf weitere Ereignisse reagieren, hier habe ich aber (noch) nichts genutzt oder getestet.

 

 

00AA-NETIO4-FDie Netzwerkverwaltung und einige Grundfunktionen wie Uhrzeit und Maileinstellungen. Eigentlich selbsterklärend, wenn man die Seite vor Augen hat. WLAN oder nicht und mit welchen Parameter und wie spät, all diese Funktionen eben :-)

 

00AA-NETIO4-GWas wann und manchmal auch warum geschehen ist, findet sich im Protokoll. Interessant ist auch die Möglichkeit, täglich das Protokoll per Mail an eine beliebige Adresse zu versenden.

 

Die beiden Antennen dienen übrigens für die Bluetooth- und WLAN  Verbindungen, jeweils eine Antenne für BT und eine für’s Funknetzwerk.

Abgerundet wird die Bedienung durch den Wippenschalter, mit dem das komplette Gerät abgeschaltet werden kann, ebenso durch eine rücksetzbare Sicherung. Pro Steckdose können 8 Ampere geschaltet werden, maximal 16A für das komplette Gerät. Die Stromaufnahme liegt laut Hersteller ‚KOUKAAM‘ bei ca. 4,1W.

OK, soweit mal eine kleine Übersicht zur „NETIO4 All“ :-D Das Gerät ist in den Farben Schwarz und Silber erhältlich, ebenfalls in einer günstigeren Variante ohne Bluetooth und Strommessfunktion.

Wenn der Rex RS 460 wieder nicht will… Update 2

Rex_RS_460_2014Wieder mal der Roller als Thema :-D

Wie erwähnt, soll die Kaltstart-Automatik, auch E-Choke genannt, ebenfalls getauscht werden. Eher als Zusatzleistung, seit dem Austausch des Benzinhahnes springt der Rex nämlich zuverlässig an. Aber ich habe das Teil nun hier neu liegen, also kann es auch eingebaut werden. Wenn es denn nicht deutlich größer wäre und ich deshalb mit der Halterung nicht die dafür vorgesehene Nut erreichen kann. Übrigens, habe ich schon erwähnt, dass ein Motorroller durchaus zur Wochenbeschäftigung werden kann? ;-)

RS460-KSBBei näherer Betrachtung ist die Größe allerdings eher ein kosmetisches Problem. Jaja, die Größe spielt eben manchmal doch eine Rolle :mrgreen: Der im Bild (rechts) zu sehende neue Kaltstarter ist grundsätzlich das gleiche Bauteil, lediglich die obere Abdeckkappe ist zu groß. Diese lässt sich aber recht einfach entfernen, wenn die auf der Unterseite zu findenden Haltenasen etwas zur Seite gedrückt werden. Der ‚Deckel‘ kann anschließend einfach abgezogen werden. Habe leider nicht zu allen Details Fotos, knippsen beim Schrauben ist mit Benzin und Dreck an den Händen immer so eine Sache… :-) Im Prinzip aber keine große Geschichte, kann man alles recht gut durchschauen, wenn man die Teile in Händen hat.

 

RS460-KSABeim Vergleich der beiden E-Chokes habe ich allerdings festgestellt, dass die Nadel/Stift des alten Teils doch schon etwas zum herumwackeln geneigt hat. Ich könnte mir durchaus vorstellen, dass es zum Verkanten gekommen ist oder irgendwann kommen würde. Im Bild rot eingekreist übrigens die Montagestelle am Vergaser.

Bleibt jetzt noch die Lösung des Leistungsproblems. Eigentlich läuft der Motor wieder rund, sprint kalt wie warm gut an, nur ist eben keine Kraft vorhanden. Ich kann nicht sicher sagen, ob er nun nicht auf volle Drehzahl kommt oder einfach keine Kraft hat. Ich habe allerdings gefühlt den Eindruck, dass es auch an Beschleunigung mangelt. Das kann aber auch Einbildung sein, im Normalfalle fahre ich meinen 2-Takter Sym, der hat ohnehin mehr ‚Kick‘, das kann schon täuschen. Also weiter mit der Fehlersuche…

 


 

Wenn der Rex RS 460 wieder nicht will… Update 1

Rex_RS_460_2014Die Teile sind da, Juhu!

OK, ob ‚Juhu‘ sehe ich noch…

 

 

Raus an den Roller (ohne irgendwas gemacht zu haben), starten -> orgeln -> nix! Springt nicht an!

Eigentlich aber gut so, der Fehler sollte besser zu lokalisieren sein, wenn er auch auftritt.

Test 1: CDI

Weil sie am einfachsten zu tauschen ist, kommt die CDI als erstes an die Reihe. Zwei Stecker ab, zwei wieder dran – starten! Und? Nix! Das scheint es schon mal nicht gewesen zu sein. Bei der Gelegenheit aber sofort wieder die Zündkerze raus und sehen, ob’s funkt. Zündfunke ist aber klar und deutlich zu erkennen, allerdings ist die Kerze gut nass und es riecht deutlich nach Benzin…

Test  2: Benzinhahn

Also nun das Teil, von dem ich sicher bin, dass es defekt ist. Ohne Unterdruck am entsprechenden Anschluss kann ich beim neuen Exemplar pusten wie ich will, da geht nichts durch. Beim Alten hingegen, spielt der Unterdruck keine Rolle, immer offen. Kerze wieder rein, Anlasserknopf drücken… Da war doch ein Blubbern…?! Richtig, mit gefühlvoll Gas geben er springt an! Den Gasgriff darf ich aber noch nicht loslassen, dann geht er sofort wieder aus. Ich denke aber, dass dies auch/vor allem mit dem verstellten Vergaser zusammenhängt. Um den einzustellen muss der Roller aber erst ein bisschen warm gefahren werden. Diese Aufwärmfahrt ist allerdings gerade keine reine Freude, im Gegensatz zu früher fehlt da einiges an Leistung oder zumindest Geschwindigkeit. Bergauf hier in der Straße ist bei 40 km/h Schluss, das war vorher definitiv besser.

Ich werde den Roller nun erst einmal warm fahren und über den Tag immer wieder schauen, ob er weiterhin anspringt, dann mal weiter sehen. Nebenbei kann ich den E-Choke (noch?) nicht tauschen, das neue Modell ist deutlich größer. Kann sein, dass er trotzdem passt und nur das Gehäuse anders ist, kann ich aber ohne Ausbau des Altteils nicht vernünftig sehen. Was ich aber auch auf jeden Fall machen darf, ist das nachsehen aller elektrischen Kontakte. Die Stecker sind teilweise mittlerweile so locker, dass sie von alleine abfallen könnten. Ich kann mir vorstellen, dass der eigentliche Fehler auch an einer von diesen Stellen zu suchen ist. Von Vorteil sind unsichere Kontakte mal sicher nicht, der Rex ist sowieso gerade ziemlich zerlegt, was soll’s ;-)

Übrigens ist es eine gute Idee, bei allem was man so lösen kann (vor allem bei den Schläuchen) die Verbindungen zu prüfen und ggf. zu erneuern, so richtig langlebig sind die Chinateile eben nicht. Vor allem die Benzinschläuche wechsle ich auf jeden Fall gleich mit.

Wenn der Rex RS 460 wieder nicht will…

Rex_RS_460_2014Es ist mal wieder soweit, der Rex will nicht. Das heißt, mal will er – mal will er nicht… Vorweg, ich habe noch keine Lösung! Vielleicht auch eine Fortsetzung, des alten Ausfalls? So viel ist er durch den Umzug nach Fürth im letzten Jahr und den folgenden Winter nicht unterwegs gewesen….

 

Wenn (WENN!) er anspringt, läuft er völlig normal. Danach ist alles Glückssache. Egal ob kalt oder warm, wenn er nicht auf Anhieb startet, tut sich nichts mehr. Ist besonders angenehm, wenn man irgendwo am  Ars… Popo der Welt steht und irgendwie MIT Roller wieder nach Hause will bzw. muss. Bisher hat meine Frau Glück gehabt, irgendwann hat er’s gepackt und fuhr, so geht es aber nun nicht. Russisch Roulette auf Moped ;-)

Also mal wieder die typische Checkliste:

Zündfunke? – Vorhanden

Benzin? – kriegt er, vielleicht sogar zu viel…!?! Kerzenbild recht dunkel, ist nach der Orgelei beim Anlassen aber vielleicht auch nicht weiter verwunderlich.

Trotzdem Versuch mit Starthilfespray? – Ohne Wirkung

Also Vergaser ab und reinigen. Dabei fällt auf, dass auch ohne Unterdruck der Benzinhahn öffnet, besser gesagt voll offen ist. Dazu sollte ich sagen, dass ich in den letzten Monaten immer wieder mal den Vergaser ‚magerer‘ stellen musste, um einen vernünftigen Motorlauf bei niedrigen/mittleren Drehzahlen zu bekommen. Sollte das an Überflutung des Vergasers gelegen haben, ist die Einstellung natürlich völliger Blödsinn. Nebenbei sollte ja in dem Fall auch zusätzlich das Schwimmernadelventil schließen, scheint auch nicht der Fall zu sein. Ansonsten alle Düsen sauber, der ganze Vergaser sieht aus wie neu.

Da Rex-Teile zum Glück nicht die Welt kosten, ordere ich jetzt Benzinhahn, E-Choke und auch eine neue CDI, kann nix schaden. Zusätzlich mal nach einem Schwimmernadelventil schauen, wenn dann alles in einem Abwasch.

Hab ihn jetzt erst mal wieder grob zusammengebaut, prompt springt er sofort an… :shock: Vorher ist allerdings der Anlasser einige Runden ohne eingesetzte Zündkerze gelaufen, doch abgesoffen? Na, wir werden sehen, was er mit den neuen Teilen macht…
 

 

 

 

 

SMD 2 THT Spider :-)

SMD2THT_SpiderSo manches mal wäre es gut, wenn moderne Elektronik etwas größer wäre. Im aktuellen Fall möchte ich gerne eine Versuchsplatine auf Lochraster aufbauen. Das passende IC steht mir aber nur als SMD-Version zur Verfügung, also dann wieder ein wenig frickeln, SMD goes THT eben :-)

Am Rande erwähnt: Ich habe es nicht so mit den Spinnentieren…! Den biologischen, lebenden, krabbelnden… Ihr könnt Euch vielleicht vorstellen, dass man durchaus mal zusammenzucken kann, wenn das abgebildete Teil im (noch dunklen) Keller auf dem Arbeitstisch liegt :mrgreen:

Im ersten Anlauf wollte ich zunächst eine Adapterlösung mit Sockel bauen, für die aktuelle Anwendung ist das aber unnötig bzw. vielleicht sogar von Nachteil.

SMD2THT_HeaderAlso IC einspannen und verzinnen…

 

 

SMD2THT_Holder… mit Kupferlackdraht etwas anschlussfreundlicher gestalten…

 

 

 

 

 

SMD2THT_Spider… ekeliges Aussehen erzeugen…

 

 

 

 

 

 

SMD2THT_Top

 

und montieren!

 

 

 

 

 

 

 

SMD2THT_Bottom

 

 

 

 

 

 

 

 

 

 

 

Aufbauen will ich übrigens mal wieder einen Spannungswandler von 1,2V auf mindestens 3V, wahrscheinlich deutlich höher.

Diesmal mit dem PR4404 statt dem PR4402, dieser kann rund 300mA liefern, also deutlich mehr als der 4402. Neben dem Vorteil wenige externe Bauteile zu benötigen, reizt mich einfach die Tatsache, dass die Bauteile eigentlich als LED-Treiber gedacht sind ;-)

Der PIC 12F675 Teil 6 – PIR1 Register

PIC © 12F675 Das nächste Register: PIR1, liegt in Bank 0.

Noch einmal der Hinweis darauf, dass einige der Bits in etlichen Registern eher lesend ausgewertet werden müssen. Also z. B. 1 = ist was passiert, 0 = nichts ist passiert. Auf Nummer sicher gehend, würde ich die entsprechenden Bits VOR ausführen der entsprechenden Funktionen manuell zurücksetzen, wird an den meisten Stellen ohnehin notwendig sein.

 

BIT 7:

1 = EEPROM schreiben fertig, Bit muss manuell gelöscht werden

0 = EEPROM schreiben nicht beendet.

BIT 6:

1 = A/D Wandler fertig, manuell löschen.

0 = A/D Wandler nicht fertig

BIT 5:

Nicht belegt, zu betrachten als ‚0‘

BIT 4:

Nicht belegt, zu betrachten als ‚0‘

BIT 3:

1 = Änderung am Comparator Eingang, manuell zu löschen

0 = Keine Änderung am Comparator

BIT 2:

Nicht belegt, zu betrachten als ‚0‘

BIT 1:

Nicht belegt, zu betrachten als ‚0‘

BIT 0:

1 = Timer 1 (TMR1) Überlauf, manuell löschen

0 = TMR1 kein Überlauf

 

 

 

Der PIC 12F675 Teil 5 – PIE1 Register

PIC © 12F675 Mit den Einstellungen vom ‚PIE1‘-Register werden weitere Funktionen (bzw. Unterfunktionen) der Interruptmöglichkeiten des Controllers eingestellt.

Man muss beachten, dass die generelle Funktion der Interrupts in ‚INTCON‚ eingeschaltet werden muss, sonst geht nix :-) Also dort Bit 7 und ggf. Bit 6 auf „1“ setzen.

 

 

Bit 7:

1 = Interrupt bei Ende eines EEPROM-Schreibvorganges aktiv.

0 = Interrupt bei Ende EEPROM schreiben inaktiv.

Bit 6:

1 = Interrupt bei Ende eines A/D-Wandler Vorganges

0 = Kein Interrupt nach A/D Wandlung.

Bit 5:

Nicht genutzt, zu lesen als „0“

Bit 4:

Nicht genutzt, zu lesen als „0“.

Bit 3:

1 = Interrupt durch Comparator ein.

0 = Interrupt durch Comparator aus.

Bit 2:

Nicht genutzt, zu lesen als „0“.

Bit 1:

Nicht genutzt, zu lesen als „0“.

Bit 0:

1 = Interrupt durch Timer 1 möglich.

0 = Interrupt durch Timer 1 inaktiv.

 
 

Der PIC 12F675 Teil 4 – INTCON Register

PIC © 12F675 Das INTCON Register beinhaltet die Settings zu den Interruptfunktionen des 12F675.

Herstellerseitig wird empfohlen, die betreffenden Bits vor der Benutzung über die Software zurückzusetzen, um eine sichere Funktionen zu gewähren.

INTCON liegt in Bank0.

 

 

Bit 7:

0 = Alle Interrupts deaktiviert.

1 = Alle aktiviert.

Es ist zu beachten, dass die Interrupts auch ggf. noch in den betreffenden/weiteren Registern aktiviert werden müssen.

Bit 6:

0 = Alle Interrupts deaktiviert, die intern vom PIC ausgelöst werden können.

1 = Alle Interrupts aktiviert, die intern vom PIC ausgelöst werden können.

Es ist zu beachten, dass auch die Interrupts auch ggf. noch in den betreffenden/weiteren Registern aktiviert werden müssen. Insbsondere Register PIE1 spielt hier eine große Rolle!

Bit 5:

0 = Timer0 Interrupt abgeschaltet

1 = Timer0 Interrupt aktiv

Bit 4:

0 = GP2 Interrupt abgeschaltet

1 = GP2 Interrupt aktiv

Bit 3:

0 = GPIO Interrupt abgeschaltet

1 = GPIO Interrupt aktiv

Dies bezieht sich nicht nur auf einen einzelnen Pin wie bei Bit 4, ein Pegelwechsel an einem Pin des gesamten GPIO-Ports kann einen Interrupt auslösen. Beim 12F675 kann dies jeder Pin des Ports sein.

Bit 2:

1 = Timer0 hat in Register TMR0 einen Überlauf ausgelöst

0 = Timer0 hat keinen Überlauf ausgelöst.

Man kann also auslesen, ob der Timer durchgezählt hat. Wichtig: Das Bit wird NICHT vom Controller zurückgesetzt, das muss im Programm geschehen (bcf INTCON,2).

Bit 1:

1 = Interrupt an GP2 wurde ausgelöst

0 = Kein Interrupt an GP2 ausgelöst.

Auch hier muss das Bit manuell zurück gesetzt werden, z. B. mit „bcf INTOCON,1“.

Bit 0:

0 = Kein Pegelwechsel an GPIO

1 = Pegelwechsel hat an einem Pin von GPIO stattgefunden.

Auch hier muss das Bit im Programm gelöscht werden.

 

 

Der PIC 12F675 Teil 3 – OPTION Register

PIC © 12F675 Weiter geht es mit der Beschreibung der PIC12F675. Ich kann übrigens nicht versprechen, dass die Blogbeiträge alle zeitnah und direkt nacheinander erscheinen, also nutze ich mal aus, dass heute gerade Zeit übrig ist :-)
 

 

OK, das nächste Register:

OPTION_REG:

In diesem Register werden Einstellungen zum Timer, dem Watchdog und auch möglichen Pull-Up Funktionen festgesetzt. OPTION liegt in Bank 1!

Bit 7:

0 = Pull Up’s aktiv

1 = Pull Up’s deaktiviert.

Pull-Up Widerstände dienen dazu, einen definierten Pegel an einen Port-Pin zu legen. Ist ein Pin beispielsweise als digitaler Eingang definiert, muss er einen festen Pegel aufweisen, ‚L‘ oder ‚H‘. Der Pull-Up Widerstand ist so in der Lage, einen festen ‚High‘-Pegel zu erzeugen, bis aus der Schaltung eine Änderung eintritt, welche einen sicheren ‚Low‘-Pegel liefert. So ist sichergestellt, dass kein undefinierter Zustand eintreten kann. Ich persönlich realisiere aber solche Lösungen immer mit externen Widerständen, so kann ich den Widerstandswert selber bestimmen.

Bit 6:

1 = Interrupt bei steigender Flanke an Pin GP2

0 = Interrupt bei fallender Flanke an Pin GP2

Interrupts dienen dazu, das laufende Programm bei auftreten einer bestimmten Situation zu unterbrechen und eine Aktion auszuführen. Der PIC hat mehrer Möglichkeiten dies zu vollziehen, in diesem Fall durch eine Pegeländerung an Pin GP2

Bit 5:

Hier wird festgelegt, aus welcher Quelle der Timer0 seinen Takt bezieht. Dies kann entweder durch ein externes Signal an GP2 geschehen oder durch einen internen Taktgeber. Auf die Timer komme ich auch noch gesondert zu sprechen.

1 = Takt an GP2

0 = Interner Takt

Bit 4:

Auslösen des nächsten Timerschrittes, wenn Takt an GP2 anliegend.

1 = Pegelwechsel von ‚H‘ nach ‚L‘

0 = Pegelwechsel von ‚L‘ nach ‚H‘

Bit 3:

Festlegen, ob der Vorteiler dem Timer0 oder dem Watchdog zugeordnet ist, siehe auch Beschreibung Bit 0-2

Bit 0,1,2:

Der PIC arbeitet mit einem Arbeitstakt von einigen Hz bis zu etlichen Mhz. Der Vorteiler kann eingesetzt werden, um die Zählgeschwindigkeit zu reduzieren. Je nach Einsatz, kann der Muttertakt bis zum Verhältnis 1:256 (1:128 beim Watchdog) geteilt werden. Hier muss wieder mal das Datenblatt her, wenn man die Funktionen detailliert betrachten möchte. Setzt man die Bits 0,1,2 auf 111, arbeitet in diesem Falle der Timer0 mit einem Teilungsverhältnis von 1:256, bei 000 auf 1:2.

Der PIC 12F675 Teil 2 – STATUS Register

PIC © 12F675 Eines der größten Probleme beim Programmieren von PIC’s ist der Umstand, dass man die Funktionen des Innenlebens zumindest grob kennen muss. Immer öfter bekomme ich Anfragen zu Problemen, die ursächlich nicht aus dem eigentlichen Programm, sondern der Einstellung des Controllers an sich kommen. Bei genauerer Überlegung logisch, wie soll z. B. der A/D Wandler arbeiten, wenn er gar nicht aktiviert wurde? Ich versuche in diesem (und dem ersten Teil und vielleicht folgenden) Beitrag mal, das Ganze anhand des 12F675 ein wenig zu entwirren. Vorweg sei gesagt, dass man um das Datenblatt trotzdem nicht herumkommt, zu vieles ist sehr tief verschachtelt oder setzt weitere Kenntnisse voraus, die ich in einem Beitrag hier einfach nicht komplett erfassen kann. Oftmals muss man aber so tief gar nicht graben, vielleicht fehlte beim letzten Versuchsaufbau ja nur ein einziges Bit, damit das Programm läuft oder eben der PIC einfach macht, was er soll.

Ich nehme als Beispiel den 12F675, er ist günstig und für die allermeisten Kleinprojekte ausreichend. Darüber hinaus, kann man die Kenntnisse auf sehr viele weitere Controller anwenden, Unterschiede liegen hier eher in den Details -> Datenblatt! ;-) Ich werde in diesem Teil die wichtigsten Register ein wenig beschreiben, mal sehen, wie umfangreich dieser und die wahrscheinlich folgenden Beiträge werden. Bestimmte Parameter kann man nicht wirklich gut erklären, wenn der Leser die elektronischen Funktionen nicht kennt, welche dahinter stehen. Oft hilft einfach experimentieren Glücklicherweise sind diese Möglichkeiten des Mikrocontrollers für die meisten Funktionen nicht unbedingt notwendig, in Standardschaltungen jedenfalls. Auf solch spezielle Funktionen werde ich also nur eingehen, wenn es unumgänglich ist. Will sagen: wenn jemand diese Funktionen benötigt, dann weiß er mesit auch, um was es geht :mrgreen: Nebenbei wird es sicher wieder Mails geben, in denen typische Dinge wie ‚Es geht aber auch anders…‘ und ‚… ganz korrekt wäre aber…‘ stehen, das ist sicher alles richtig, kenne ich aber so nicht, habe ich noch nicht getestet oder erscheint mir aus irgendeinem Grund für den Artikel unpassend, akzeptiert das bitte. Meine Beiträge sind keine Doktorarbeiten, sie sollen dem Interessierten bei einem kleinen Schritt auf einem langen Weg einfach etwas helfen, schreib ich andauernd, ist mir klar ;-)

Link: -> 12F675 Teil 1

Ich starte in den nächsten Beiträgen mit den Registern in der Reihenfolge, in der sie auch im Datenblatt aufgeführt sind.

Sei noch darauf hingewiesen, dass es i. d. R. 8 Bit pro Register gibt, welche von RECHTS NACH LINKS beginnend mit ‚0‘ bezeichnet sind! 

Geschrieben sieht dies also so aus:

Bit 7 – Bit 6 – Bit 5 – Bit 4 – Bit 3 – Bit 2 – Bit 0

Möchte man z. B. das erste Bit in einem Register bearbeiten, dann ist dies im Assembler Bit ‚0‘. Mit

bsf ADCON,0

würde zum Beispiel das 1. Bit im Register ADCON auf ‚1‘ oder ‚HIGH‘ setzen,

00000001

wäre also der Inhalt, wenn alle anderen Bits vorher auf ‚0‘ standen.


 

STATUS 

Im STATUS Register des Controllers kann man hauptsächlich feststellen, was der PIC gerade erledigt hat bzw. welches Ereignis gerade eingetreten ist. STATUS befindet sich in Bank 0 und Bank 1!

 Bit 7

In diesem PIC nicht relevant

Bit 6

In diesem PIC nicht relevant

Bit 5

Bankauswahl, dazu kommt noch ein eigener Artikel. Dient dazu, Register in Bank 0 oder Bank 1 auszuwählen. In welcher Bank welches Register zu finden ist, steht im Datenblatt. Beim 12F675 gibt es Bank 0 und 1, in anderen PIC’s noch weitere. Setzen von Bit 5 (bsf STATUS,5) schaltet in Bank 1. Befindet man sich im Programm in der falschen Bank, kann man auf Register die eben in der anderen liegen nicht zugreifen.

Bit 4

Feststellen oder beeinflussen des SLEEP Modus bzw. des Watchdog, muss ich auch in einem eigenen Beitrag bearbeiten.

Bit 3

Siehe Bit 4 :-)

Bit 2

Zeigt an, ob das Ergebnis der letzten Operation ‚0‘ war. Hat der Controller also z. B. 10 – 10 = 0 gerechnet, wird dieses Bit  auf ‚1‘ gesetzt.

Bit 1

Wird ‚1‘, wenn ein Überlauf der unteren 4 Bit der letzten Operation stattgefunden hat. Ich weiß, das klingt jetzt völlig Ballaballa, ich drösel’s später noch auf ;-)

Bit 0

Wird ebenfalls ‚1‘, wenn ein Überlauf stattgefunden hat, hier aber auf die kompletten 8 Bit bezogen. Durch seine 8 Bit, kann der 12F675 von 0-255 zählen. Addiert man nun zu 255 +1, ergibt das nicht 256, der Zähler „springt um“, er steht auf ‚0‘, mehr als 255 gehen eben nicht. Um festzustellen, ob dies geschehen ist, kann man STATUS,0 abfragen. Das gleiche gilt für oben genanntes Bit 1, nur eben auf die unteren 4 Bit bezogen. In der Praxis kann man beispielsweise ein Register immer um +1 erhöhen, wenn eine Ereignis eingetreten ist und abfragen, ob es einen Überlauf gab. Dieser Überlauf könnte dann eine Signal-LED einschalten oder einen anderen Programmteil starten. Lädt man dieses Register schon vorher mit einem bestimmten Wert, können auch weniger als 255 Schritte gewählt werden, der Überlauf erfolgt dann eben eher. Alternativ oder ergänzend rechnet man nicht +1 sondern +2 oder +11 oder was auch immer, die Möglichkeiten sind zahlreich.

Etwas unübersichtlicher wird es bei Subtraktionen, da verläuft das Spiel umgekehrt. Wird also beim Minusrechnen die 0 unterschritten (Beispiel:1-2 dann = 255), ist das Bit NICHT gesetzt, in allen anderen Fällen ja.

Vereinfacht betrachtet ist dies der Sinn bzw. die Aufgabe des STATUS-Registers mit den Funktionen, die für einfachere Anwendungen benötigt werden.

Tipp zu ersten Programmierübungen:

4 LEDs an GP 0 – 3 des PIC anschließen und die unteren 4 Bit des STATUS-Registers nach Operationen in GPIO kopieren und (mit Pause) anzeigen lassen. So kann man gut prüfen, was wirklich im Register erschienen ist. Für reine „Trockenübungen“ eignet sich hier auch der MPLAB eigene Simulator gut.