Micro:bit Kurzschluss-Sicherung      

           
Elektronik-Labor   Projekte   Microbit 

 

https://www.mbed.com/en/

Einige haben sich ja schon Sorgen gemacht, ob die vielen englischen Schüler nicht laufend Kurzschlüsse an den Ports verursachen und damit alles in Rauch aufgehen lassen. Aber bisher wurden noch keine schwarzen Wolken über den britischen Inseln gesichtet. Und das hat einen Grund, den ich ganz zufällig entdeckt habe: Die Entwickler des Micro:bit unter der Federführung der BBC haben nämlich einen Kurzschluss-Sicherung für die Ports eingebaut!

Das ganze habe ich ganz zufällig gefunden, als ich die Belastbarkeit und den On-Widerstand der Ports untersuchen wollte. Wenn ich den Ausgang hochohmig mit 10 kOhm belaste, ist noch alles normal. Es kommen ca. 3,3 V raus. Eine Belastung mit nur 100 Ohm ging manchmal gerade noch. Die Spannung am Port war dann schon auf ca. 1,5 V zusammengebrochen. Das bedeutet 15 mA, und mehr geht  nicht! Wenn ich nämlich die Belastung noch etwas erhöhe, schaltet der Port ab! Beim ersten Mal dachte ich, Schreck lass nach, alles durchgebrannt. Aber nach einem Reset ist alles wieder wie neu.





Also erstmal ein Testprogramm geschrieben, das schnell mit einem Port wackelt. Die Wartezeiten waren insgesamt nur 20 ms. Am Oszi sehe ich allerdings, dass alles viel langsamer abgeht. Die On-Zeit beträgt ca. 12 ms, die Offzeit allerdings aufgrund der Endlosschleife 36 ms.




Und dann kommt's: Sobald ich den Port überlaste, wird nach 5-6 ms umgeschaltet. Nicht schneller und auch nie wesentlich später.  Das folgende Bild zeigt die Abschaltung bei 100 Ohm und 15 mA.



Und nicht nur das, die Sicherung funktioniert auch in der anderen Richtung. Wenn ich meinen Lastwiderstand gegen VCC anschließe, gibt es wieder eine Grenze bei ca. 15 mA. Aber dann schaltet der Port hoch! Die Vermutung ist nun: Der Port wird laufend überwacht. Wenn ich einen High-Zustand ausgebe, aber den Port so weit überlaste, dass 1/2 VCC unterschritten wird, schaltet sich der Portzustand um. Genial!



Jetzt kommt natürlich die Frage auf, auf welcher Ebene passiert das? Ist das schon eine Eigenschaft des Controllers? Oder gibt es das nur in den Blocks? Also erstmal ein Testprogramm mit Python geschrieben.


 

Der Test mit Python zeigt keine Sicherung. Die Portausgaben sind hier wesentlich schneller, was ja auch seine Vorteile haben kann. Aber Kurzschluss bleibt Kurzschluss. Das Bild zeigt eine Belastung mit 47 Ohm. Die Spannung ist bereits unter 1 V abgesunken. Aber von Abschalten findet man keine Spur. Der maximale Strom ist dabei etwa 20 mA. Auch kein Beinbruch, wahrscheinlich passiert dabei nichts. Die Ports des Controllers sind wesentlich hochohmiger als bei AVR-Controllern. Deshalb kann man hier sogar LEDs ohne Vorwiderstand anschließen. Der Strom liegt dann meist bei ca. 10 mA.  



Ein weiterer Test mit Mbed zeigt das gleiche: Keine Sicherung! Der Versuch wurde rein statisch durchgeführt, indem der Controller selbst die Spannung am Port gemessen hat. Wahrscheinlich sieht das anders aus, wenn man microbit.h verwendet. Aber dann hat man ja die Wahl: Entweder schnell und schmutzig, oder langsam und sicher.



Aber warum dauert das mit den Blocks überhaupt so lange? Ich weiß nur, dass der echte Programmierer in Schichten und Instanzen denkt. Wenn ich mir die Microbit-Quelltexte ansehe, verstehe ich nichts mehr, nur dass alles fürchterlich kompliziert ist. Ich stelle mir vor, dass mehrere Instanzen daran beteiligt sind und sie am Ende wie in einer Redaktionskonferenz der BBC demokratisch abstimmen:

Eingangs-Inspektor: Hast du nicht gerade P1 eingeschaltet?
Ausgangs-Bevollmächtigter: Hab ich.
Eingangs-Inspektor: Aber ich lese hier nur eine Null! Was soll das?
Sicherheits-Beauftragter: Da hat wieder einer n´ Kurzschluss gebaut. Die lernen das nie!
Eingangs-Inspektor: Und was machen wir jetzt?
Ausgangs-Bevollmächtigter: Ich könnte abschalten, aber nur, wenn das von einer Mehrheit getragen wird.
Eingangs-Inspektor: Lieber abschalten! Besser ist das!
Sicherheits-Beauftragter:  Mir egal! Passiert sowieso nichts.
Ausgangs-Bevollmächtigter: Ich bin auch für Abschalten, sicher ist sicher.
Eingangs-Inspektor: Zwei gegen eine Enthaltung für Ausschalten. Schalt ab!
Ausgangs-Bevollmächtigter: Ist abgeschaltet. Und was ist wenn der Kurzschluss aufgehoben wird?
Sicherheits-Beauftragter: Dann muss er eben mal Reset drücken. Vielleicht kapiert er es dann.

So stelle ich mir das vor, und das dauert dann schon mal fünf Millisekunden oder etwas länger.



Elektronik-Labor   Projekte   Microbit