• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Integrierter Pegelwandler / Inverter

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
Moin, ich bin verzweifelt auf der Suche nach einem integrierten Pegelwandler+Inverter.

Auf der einen Seite sitzt ein UART mit positiver Logik (0=0V, 1=3,3V) sowie getrenntem RX und TX, auf der anderen Seite ein Singlewire-Bus mit invertierter Logik (0=5V, 1=0V) welcher per Pullup auf 5V gezogen wird und alle Teilnehmer ziehen den Bus auf 0 um eine 1 zu senden. Im Idle liegt auf der 3,3V-Seite vom Master permanent eine logische 1 an, auf der 5V-Seite soll der Pegel auf 0 sein.

Kennt jemand einen passenden uC? Der Platz ist leider ziemlich knapp, ich muss 4 Kanäle auf einer einzigen Checkkartengroßen Lochrasterplatine unterbringen.

Ich bin an das Singlewire-Konstrukt gebunden, die Servos verstehen leider nur dieses Protokoll.

Ich *glaube* dass ich einfach 2 geeignete Hex-Inverter nehmen kann, den einen mit 3,3V, den anderen mit 5V versorgen (für 3,3V->5V und umgekehrt). Vor jedem Inverter nen passenden Vorwiderstand um den Pegel nicht runter zu ziehen bzw. keinen Kurzschluss zu verursachen.

Allerdings blicke ich da gerade nicht durch. Bis jetzt weiß ich nur, dass der M74HC04 nicht geeignet ist da ich zumindestens für 5V->3,3V einen Inverter brauche der höhere Pegel an den Eingängen erlaubt.

Der 74HC4049 könnte geeignet sein?
 
Zuletzt bearbeitet:

HE2432

Neu angemeldet

Registriert
19 Juli 2013
Beiträge
30
BC546 + Basiswiderstand + das was Du Pullup nennst :-)
 

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
  • Thread Starter Thread Starter
  • #3
Danke, werde ich wohl so machen müssen. Der Versuch mit dem 74HC4049 ist auf jeden Fall schief gegangen, mit den 2mA die ich auf der 3,3V-Seite vom uC bekomme schaltet der nicht mal sauber durch.

3,3->5V:
2kOhm funktionieren auf der 3,3V-Seite als Basiswiderstand? Mit 2mA kann ich den UART maximal belasten, 1,65mA sollten es mit 2kOhm sein.
Vor den Kollektor würde ich dann 200 Ohm als Pullup gegen 5V hängen, hat in einer früheren Revision gut funktioniert. Heißt bis zu 25mA die durch fließen wenn einer der Slaves auf Open-Collector schaltet (<5 Ohm), im HighZ-Modus haben die Slaves einen Parallelwiderstand von 940 Ohm.

5V -> 3,3V:
4 kOhm Basiswiderstand, 3,3V über 200 Ohm an den Collector? Transistor parallel zum UART?


Sorry für die dummen Fragen, aber ich bin mit den elektrischen Eigenschaften von Transistoren nicht wirklich vertraut. Insbesondere nicht damit, wann die Teile durchschalten.
 
Zuletzt bearbeitet:

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
  • Thread Starter Thread Starter
  • #4
Kann da kurz jemand drüber schauen? Nur kurz durchrechnen ob das Limit von 2mA bei den UARTs des Prozessors nicht überschritten bzw. alle Vorwiderstände richtig gewählt wurden. Ich will nicht schon wieder völlig umsonst ein Board löten...

test.png
Den Chip oben rechts ignorieren, das ist nur ein Gyroskop.

(Mit dem vorherigen Atmega64 war das simpler, der konnte invertierte Pegel und Opendrain...)
 
Zuletzt bearbeitet:

HE2432

Neu angemeldet

Registriert
19 Juli 2013
Beiträge
30
So gehts definitiv nicht.
T4 invertiert nicht und wandelt auch keine Pegel.
T3 kannst Du direkt als invertierer verwenden!
Vom Professor das TX (Senden) direkt auf R6 (4k7 ist OK) - und da wo jetzt U0RX dran steht hast Du Dein invertiertes TX Signal.
Wobei mich eh die Verschaltung von RX und TX etwas wundert - Aber egal, mir muss auch nicht immer alles einleuchten.
Ach ja, 200 Ohm Pullup finde ich schon etwas knackig. Wahrscheinlich reicht 1k oder 2k2 genauso - Ich zumindest besitze kein eigenes Atomkraftwerk und versuche immer Strom zu sparen.

Warum machst Du Dich nicht mit der Transistor - Grundschaltung vertraut?
- Darum habe ich auch nicht auf Deine erste Frage geantwortet...
 

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
  • Thread Starter Thread Starter
  • #6
Am T4 habe ich den Bus jetzt vom Emitter auf den Kollektor gelegt, damit sollte es Invertieren und Pegel wandeln. Keine Ahnung was ich mir da gedacht hatte.

Was meinst du am T3 mit "Direkt als Invertierer verwenden"?

Pullup am RX habe ich auf 1k angehoben, 2mA reichen dem Prozessor.

Auf dem Bus gingen max. noch 500 Ohm, da bis zu 5 Servos parallel, jeder 4k7, sprich <800 Ohm Parallelwiderstand. Ist mir aber IMHO zu knapp da ich noch einen Drop am Linearregler habe und VCC vom Akku leicht auf <6V fällt. Laut vorherigen Experimenten brauchts min. 2,4V überm Servo für eine logische 1, bei Servoaktivität kann die Spannung noch weiter abfallen, ich rechne mit Einbrüchen auf bis zu 3,5-4V im 5V-Netz im Worstcase.

Anhang anzeigen 9989

Transistor-Grundschaltungen schaue ich mir gerade an.
 
Zuletzt bearbeitet:

EDI

Neu angemeldet

Registriert
16 Juli 2013
Beiträge
16
Hey Exterminans,

ich an deiner Stelle würde die Pull-Ups für die Servos an der 5V-Schiene von 200 Ohm auch eher so in den K-Ohm Bereich verschieben. Also eher so 10k. Das ist so ein Standard-Wert für Pull-Ups. Die sollen ja auch nur hochziehen und nicht deine 5V aussaugen.
Du schreibst ja selber, dass du mit Spannungs-Einbrüchen auf der 5V-Schiene rechnest. Ganz verstanden hab ich allerdings nicht, warum.

Was ich immer noch nicht so ganz verstehe ist die ganze Kommunikation. Ich frag jetzt nur mal interessehalber. Geben die Servos auch wirklich was aus? Ist das überhaupt ein Bus? Das Interface schaut für mich nach 3-PIN Modellbauservos aus. Auch das verbaute Gyroskop spricht für eine (Flug)-Modellbau Applikation.
Die Modellbau-Servos, die ich kenne bekommen einfach ne PWM und sind intern geregelt.


Oder ist das so ne Anwendung:
http://www.mhm-modellbau.de/futaba-s-bus.php

Weil im Moment schauts so aus, als ob du dein UART-Signal *irgendwie* im Kreis schickst. Kommt mir halt komisch vor. Aber du schreibst ja, dass du das alles schonmal mit nem ATMEGA64 zum laufen bekommen hast. Also scheints ja irgendwie zu gehen. Jedenfalls, würde mich interessieren, wie das ganze funktionieren soll.

LG,
EDi
 

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
  • Thread Starter Thread Starter
  • #8
Die Servos haben wirklich eine serielle Schnittstelle, so seltsam das auch klingt. Ein 0x80 mit 19,2 kBaud gesendet (^= 416us Impuls) schaltet vom PWM in den seriellen Modus. Das Protokoll erlaubt bis zu 255 Servos parallel an einem einzigen Bus. Elektrisch entspricht jeder Servo einem 4k7, jeweils bis zu 5 Servos hängen parallel.
Der Haken ist, es hängen insgesamt 18 Stück am Roboter und wenn die alle gleichzeitig anlaufen, dann fällt die Spannung überm Akku von 7,2V teilweise auf <6V ab. Bei <2,3-2,7V überm Servo erkennt der den Pegel auf dem Bus bereits als low.

Das ist eine halbwegs brauchbare Doku für die Servos: http://robosavvy.com/Builders/i-Bot/HSR8498HB Servo.pdf
Der Hersteller hüllt sich über die genauen Spezifikationen der Schnittstelle in Schweigen. Die 30kOhm aus der eben verlinkten Doku kann ich nicht bestätigen, nach meinen Messungen war der effektive Widerstand deutlich geringer.

Eine Alternative die ich schon gesehen habe ist Pullup über 1k direkt auf die VCC, sprich die 7,2V von der Batterie. Hat den Vorteil dass ich das 5V-Netz komplett einsparen kann. Sollte bis 6V auf VBAT noch funktionieren. Ich denke 500Ohm als Pullup wären angemessener.
Allerdings hätte ich damit im Leerlauf (keine Servos angeschlossen) eine negative Basis-Kollektor-Spannung am T3... Heißt ich muss da wohl auf einen CMOS anstelle eines Bipolar-Transistors gehen.

Mehr zu dem Thema zu lesen gibts hier: https://plus.google.com/118048021200279907759/posts/LabmsKWM1mF (Hoffe der Link funktioniert)
 
Zuletzt bearbeitet:
Oben