Jump to content

neue Firmware flashen von arm


gridrix

Recommended Posts

Also, zuerst hatte ich Probleme, das der Dreh-Poti auf einen Winkel kalibriert war, der nurungefähr 90 Grad groß war. Mit neu Kalibrieren funktioniert der jetzt aber super. Vielleicht hab ich auch nur was verstellt beim spielen mit dem Brick-viewer.

 

Mein zweites Problem ist das IO16 Bricklet. Ich wollte erst mal die neueste master-version draufmachen bevor ich das berichte. Also:

Ich habe verbunden:

Laptop, usb-hub(mit 2A Stromversorgung) und master brick (1.1.1)

Am Master hängt dann IO16 (1.1.0) und ein Rotary-Poti.

Am IO16 ist ein bzw zwei Relais angeschlossen (http://www.reichelt.de/Reedrelais-Magnete/MS-7175-L-5V/index.html?;ACTION=3;LA=2;ARTICLE=27674;GROUPID=3291;artnr=MS+7175-L+5V;SID=10T1Ttin8AAAIAAGckXaY271f018c20027159f9d9c6ab6eef7a2a#av_tabtech).

 

Der Master zeigt im Brick-Viewer:

Stack Voltage: 36.3V

Stack Current: 6.6A

 

Wenn ich ein Relais schalte dann liegen dort 4 Volt an, bei zwei Relais nur noch 3.5 Volt. Nach ein paar mal schalten hängt dann meistens der Stack und nur noch ein reset hilft.

 

Link to comment
Share on other sites

Also ich denke wir haben es mit zwei verschiedenen Problemen zu tun.

 

Das erste ist, dass irgendwas mit dem Master nicht zu stimmen scheint. Du betreibst den Master nicht im Stack, d.h. er sollte da 0V und 0A anzeigen. Jemand anderes hat ein ähnliches Problem, wir prüfen gerade ob wir es hier mit einem Hardware Problem zu tun haben oder ob es vll. woanders dran liegen kann.

 

Das zweite Problem ist die 5V Geschichte. Dein USB Hub wird irgendwas um die 5V liefern, da wir technisch eine Diode dazwischen gesetzt haben können unter Last auch nur mal 4.3V auf unserer "5V" Leitung liegen. Bei deinem Aufbau solltest du ja nicht im "Volllast" bereich liegen und selbst wenn würden die 4.3V für unser System immernoch ausreichen.

 

Teste doch mal bitte ein anderes USB Kabel sofern du eins zur Hand hast.

 

 

Link to comment
Share on other sites

Wirklich komisch. Der IO Expander (MCP23017) auf der IO16 kann pro Port maximal 20mA und insgesamt maximal 150mA schalten. Von den kleinen Relais solltest du also eigentlich sogar 16 Stk ohne Probleme schalten können (bei 7mA pro Relais). Ich könnte mir höchstens vorstellen das die beim Umschalten einen zu großen Peak haben?

 

Ich werde mal versuchen das hier nachzustellen.

Link to comment
Share on other sites

Wenn der Strom zu hoch ist fällt die Spannung ab, das würde ich schon erwarten.

 

Geht es denn wenn du sie getrennt an unterschiedlichen Ports schaltest?

 

Edit: Ah, Moment, ich hab Port gesagt aber ich meinte Pin. 20mA pro Pin nicht Port.

 

Edit2: Ich kann das hier gerade leider nicht nachstellen, ich hab keine Relais hier die klein genug sind das man sie direkt mit der IO16 schalten könnte.

 

Ich würde auf jedenfall versuchen die Relais nacheinander zu Schalten, also eins schalten, 100ms warten und dann das andere Schalten, damit nicht beide ihre Peak Ströme gleichzeitig ziehen.

Link to comment
Share on other sites

Habs schon nur mit einem Relais probiert, dann ist die Spannug zwar etwas höher (4V) aber nach ein paar Schaltvorgängen reagiert der Stack trotzdem nicht mehr.

 

Ich würde auch erwarten, das die Spannung abfällt, aber nach dem Schalten scheinen ja 7mA (bzw 14mA) zu reichen, also warum ist die Spannung da immer noch so niedrig?

 

edit: nach diversen resets ist jetzt der brickd abgestürzt und gibt seine Ports scheinbar auch nicht mehr frei:

*** stack smashing detected ***: python terminated

brickd von Hand starten:

Traceback (most recent call last):
  File "/usr/share/brickd/brickd_linux.py", line 150, in <module>
    brickd.daemonize()
  File "/usr/share/brickd/brickd_linux.py", line 140, in daemonize
    self.start()
  File "/usr/share/brickd/brickd_linux.py", line 84, in start
    reactor.listenTCP(config.PORT, BrickProtocolFactory())
  File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 419, in listenTCP
    p.startListening()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 867, in startListening
    raise CannotListenError, (self.interface, self.port, le)
twisted.internet.error.CannotListenError: Couldn't listen on any:4223: [Errno 98] Address already in use.

Link to comment
Share on other sites

Habs einfach zwischen GND und A0 gehabt. Wenn ich es über "+" (an der einzelnen Klemme) zu A0 anschließe, dann liegen bei im low state 4.3V an.

Aber manchmal geht das relais nicht aus (A0 nicht auf high) auch wenn der brick-viewer dies anzeigt!

Dabei scheint A0 kurz auf high gegangen zu sein (das Lämpchen am Relais geht kurz aus), aber danach wieder in den low state zurückzufallen (wegen überlast?)

Auch ist der stack nach einer Weile wieder eingefroren.

Link to comment
Share on other sites

Sorry aber bei uns werden immer mehr Fragen aufgeworfen.

Was für ein Lämpchen leuchtet auf? Das Relais selbst scheint ja keins zu haben.

 

Bei einem Strom von 7mA sollte kein Überlast auftreten. Kannst du bitte nochmal verifizieren das es 7mA sind und nicht 30mA. Auch solltest du daran Denken das ein Multimeter sehr träge ist, wenn die IO16 nur kurz schalten sollte dann könnte das Multimeter viel zu wenig anzeigen.

Link to comment
Share on other sites

Hab doch noch ein Relais gefunden das klein genug ist um es mit der IO16 zu schalten (http://pewa.panasonic.com/assets/pcsd/catalog/js-m-catalog.pdf):

http://i.imgur.com/mtgYR.jpg

 

Ich messe im geschalteten Zustand (A7=low):

30mA last

4,68V zwischen + und -

3,88V zwischen + und A7

 

Ich messe im nicht geschalteten Zustand (A7=high):

4,76V zwischen + und -

0V zwischen + und A7

 

Das ist ziemlich genau was ich erwartet hab, die Spannung vom Bricklet selbst bricht nicht ein, an dem belasteten Pin allerdings schon.

 

Kannst du das so bestätigen bei dir?

 

Ich kriege es bei mir allerdings nicht hin irgendwas zum abstürzen zu bringen damit. Ein unterschied ist, dass dein Relais ein Reed Relais ist und meins nicht, ich weiß nicht ob da nicht vielleicht die Peak Ströme höher sind.

Link to comment
Share on other sites

Ich befürchte das bedeutet, dass der IO Expander deine Reed Relais nicht Schalten kann (Aufgrund zu hoher Peak Ströme oder zu hoher Induktivität oder so, man weiß es nicht).

 

Wenn wir das nächste mal etwas bei Reichelt bestellen bestelle ich mal so ein kleines Reed Relais mit, wir können dann mal genauer nachmessen woran es liegt.

 

D.h. wenn du mit der IO16 Relais schalten willst muss da wohl ein Transistor oder MOSFET o.ä. her: http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

Link to comment
Share on other sites

Bei unserer nächsten Reicheltbestellung werden wir mal so ein Relais mitbestellen. Ist wirklich nicht ganz einfach zu sagen was da genau passiert. Grundsätzlich ist es so, dass der "Treiber" der in der IO16 sitzt je nach Strom mehr oder weniger Spannung liefern kann. Wenn man größere Lasten bewegen möchte, dann müsste man also nach der IO16 erst noch einen Treiber zwischenschalten der dann die Last bewegt. Allerdings hätte ich auch die Vorstellung gehabt, dass dein Relais steuerbar sein sollte. Wie gesagt werden es testen sobald wir es hier haben (dauert aber etwas).

 

Sorry das wir dir momentan so nicht weiterhelfen können.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...