Hallo.
Ich will das UART Protokoll zwischen einem Handheldgerät und dessen Akku
analysieren. Dafür würde ich gerne wissen, was man für einen LA braucht,
um das zu tun. Ich weiß dass es günstige Analyzer gibt, weiß aber nicht,
ob die bei hohen Baudraten noch was taugen, oder ob man da doch was
besseres = schnelleres braucht. Ich kenne die Baudrate der UART
Kommunikation nicht genau, ich dachte es wäre 9600, aktuell sieht es
aber eher nicht mehr danach aus als ob dem so wäre.
Espressif schrieb:> Ich kenne die Baudrate der UART Kommunikation nicht genau, ich dachte es> wäre 9600, aktuell sieht es aber eher nicht mehr danach aus als ob dem> so wäre.
Dann solltest du das klären, z.B. mit einem Oszi. Für den Einsatz eines
LA musst du sowieso die Logikpegel kennen.
Die höchste Rechteckfrequenz, die auftreten kann, ist die Hälfte der
verwendeten Baudrate.
Sieh Dir also an, was auf den beiden Datenleitungen passiert.
Wieso eigentlich ein neuer Thread zum Thema?
Dein "Handheldgerät" war hier doch letzte Woche schon unterwegs.
Espressif schrieb:> Ich will das UART Protokoll zwischen einem Handheldgerät und dessen Akku> analysieren. Dafür würde ich gerne wissen, was man für einen LA braucht,> um das zu tun. Ich weiß dass es günstige Analyzer gibt, weiß aber nicht,> ob die bei hohen Baudraten noch was taugen, oder ob man da doch was> besseres = schnelleres braucht.
Diese billigen "24MHz 8Ch" Teile bei Amazon und anderen sind für übliche
UARTs bis 1MBit/s auf jeden Fall schnell genug. Sie können aber nur
normale Logiksignale verarbeiten - bei RS232, RS422, RS485 und ähnlichem
musst Du noch passende Transceiver davorhängen.
fchk
Vermutlich willst du mithören, das über die serielle Verbindung geht.
Dafür reicht ein COM-Port an einem PC, auch so ein USB-COM-Port Adapter.
Du schließt RX vom PC parallel an die Datenleitung an und kannst dir mit
einem Terminalprogramm (z.B. Putty) den Datenverkehr ansehen. Um den
Verkehr in beiden Richtungen gleichzeitig anzuschauen brauchst du 2
COM-Ports oder Adapter. Den Logikanalysator brauchst du nur, wenn du
irgendwelche Störungen vermutest. Und auch da reicht meist ein Oszi.
Bernd
Bernd schrieb:> Den Logikanalysator brauchst du nur, wenn du irgendwelche Störungen> vermutest. Und auch da reicht meist ein Oszi.
Klar, ein Gerät für mehrere hundert Euro reicht, wenn es ein für den TO
locker geeigneter Logikanalysator für 10 Euro auch tun würde.
Den Pegel kann man mit einem Multimeter bestimmen, wenn man weiß, was
man tut. Die Baudrate sieht man dem Signal auf dem LA an. Ein paar
Grundlagenkenntnisse zur asynchronen seriellen Übertragung wären
allerdings von Vorteil.
Bernd schrieb:> Dafür reicht ein COM-Port an einem PC, auch
Soweit war ich schon, aber so finde ich die Baudrate nicht raus, und
9600 ist wahrscheinlich wie ich mittlerweile vermute falsch.
Wenn die schlau waren, haben die die Baudrate auf was ungewöhnliches
gesetzt, so kriegt man schonmal die meisten Bastler usw. los, weil dann
nur Kauderwelsch ankommt beim mitlesen, so wies bei mir ja auch zu sein
scheint.
Frank K. schrieb:> musst Du noch passende Transceiver davorhängen.
Und was für Transceiver sind passende?
Ich seh da schon kommen, ich werde irgendwoher ein gescheites Oszi /
Logikanalyser (Gibt ja Dinger die beides können) beschaffen müssen.
Ich weiß ja noch nicht mal ob das überhaupt RS232 oder sonstwas ist, und
die Messgeräte sind da meine Augen, wennste nix siehst kannst auch nicht
weiterkommen, auch für Zukunftsprojekte wird sich die Anschaffung eines
solchen Gerätes lohnen.
Wenn man jetzt mal nicht so auf den Preis achtet, was wären denn gute
Geräte dahingehend die dann auch was professioneller sind, d.h.
nichtmehr das totale Einsteigersegment? Es kann dann in der Zukunft auch
sein dass ich damit auch mal an Schaltungen in Rechnern, usw. ran will.
Da wäre natürlich ein Oszi mit eingebautem Logikanalyser sinnvoll.
DerEgon schrieb:> Wieso eigentlich ein neuer Thread zum Thema?
Weil es im letzten Thread darum ging das Mitgeschnittene zu analysieren,
das sich jetzt aber wohl als völlig unbrauchbar erwiesen hat. Daher
jetzt erstmal Werkzeugbeschaffung, Oszi und LA stehen bei mir eh schon
lange auf der Liste, dann aber vielleicht gelich ordentliche Geräte mit
denen man später auch an komplexere Sachen ran kann.
Espressif schrieb:> Ich will das UART Protokoll zwischen einem Handheldgerät und dessen Akku> analysieren. Dafür würde ich gerne wissen, was man für einen LA braucht,> um das zu tun
Schon wieder ?
Gar keinen.
Espressif schrieb:> Oszi und LA stehen bei mir eh schon lange auf der Liste,
Du willst einfach nur kaufen. Kauf ein Eis.
Espressif schrieb:> Ich weiß ja noch nicht mal ob das überhaupt RS232 oder sonstwas ist
Dann kläre das doch erst mal, bevor du unpassende Hardware kauft.
Mit einem Oszilloskop (ab 30 Euro) kriegt man das wohl an schnellsten
hin, aber es geht auch anders. Du könntest z.B. mal damit anfangen, die
Ruhepegel zu messen.
Espressif schrieb:> jetzt erstmal Werkzeugbeschaffung, Oszi und LA stehen bei mir eh schon> lange auf der Liste, dann aber vielleicht gelich ordentliche Geräte mit> denen man später auch an komplexere Sachen ran kann.
Meine Güte! Um die Baudrate auszumessen sollte bereits ein ein ganz
einfaches, mittels Soundkarte improvisiertes Oszi genügen. Im Datenstrom
suchst Du Dir die schmalsten Rechteckpulse heraus. Deren Breite (in
Sekunden) ist dann genau der Kehrwert der Baudrate des Signals.
Zur Analyse der Kommunikation zweier, über RS232 kommunizierender
Geräte, solltest Du zwei RS232-Empfänger verwenden, da Du beide
TxD-Signale parallel aufzeichnen solltest. Übrigens sind die Baudraten
der USB-Usarts von FTDI in einem weiten Bereich einstellbar und sollten
sich somit auch an krumme Baudraten anpassen lassen. Zumindest unter
Linux geht das problemlos. Ob und, wenn ja, wie das mit Mikey$oft
funktioniert, kann ich nicht sagen.
Es gibt dann gerne noch weitere Gemeinheiten. So kommunizieren die
Hameg-Messgeräte der 81xx-Serie über eine RS232-Schnittstelle mit 312,5
kBd und 9 Datenbits. Das 9. Bit unterscheidet zwischen "Nutzlast" und
internen Kommandos. Das alles ließ sich problemlos mit meinem alten
HM205-2 analysieren.
Grüßle,
Volker
Ein Oszi ist gut, um "1 Bit/Byte" zu analysieren. Flanksteilheit, Pegel,
Baudrate, Symmetrie.
Ein LS-Analyzer ist gut, mehrere Bytes zu beobachten.
Ein LS-Analyzer ist unschlagbar, um geclockte Signale zu beobachten, da
Doppelimpulse oder falsche Flanken oftmals nur schwer (mit viel
Erfahrung) am Oszi triggerbar sind, während ein LS genau dafür gemacht
ist mit "beliebig" langen Datenreihen davor und danach
A. S. schrieb:> Ein LS-Analyzer ist unschlagbar, um geclockte Signale zu beobachten, da> Doppelimpulse oder falsche Flanken oftmals nur schwer (mit viel> Erfahrung) am Oszi triggerbar sind, während ein LS genau dafür gemacht> ist mit "beliebig" langen Datenreihen davor und danach
Also doch besser Logicanalyser?
Espressif schrieb:> Also doch besser Logicanalyser?
Erstmal müssen die Signalpegel klar sein, dann kann man den passenden
Logic Analyzer oder Adapter besorgen.
Espressif schrieb:> Also doch besser Logicanalyser
Nein. Du hast keine geklockten (synchrone) Signale.
Pegel und baudrate herausfinden und dann mitlesen am PC.
Terminalprogramm oder was eigenes.
Logikanalyzer ist bei Fehlern besser oder anderen Bussen, die es nicht
am PC gibt (I2C, SPI, ...). Und natürlich bei > 2/4 Signalen parallel.
Zum Protokoll: mit Multimeter Ruhepegel bestimmen. Mit LED die lange der
Pakete, Polung und Pegel.
Wenn es passt, am PC verschiedene baudrate ausprobieren. Oder was an
Messtechnik da ist. Notfalls Oszi ausleihen. Oder an Soundkarte.
Espressif schrieb:> Gibt es dazu irgendwas wo man lesen kann wie man das mit dem Oszi macht?
Man liest erst mal, was so ein UART prinzipiell macht, wie so ein
UART-Telegramm aufgrebaut ist, was ein Start- und Stopbit ist, wozu ein
mögliches Paritybit gut ist und in welcher Reihenfolge die Datenbits
kommen.
https://de.wikipedia.org/wiki/RS-232https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitterhttps://www.rohde-schwarz.com/de/produkte/messtechnik/oszilloskope/educational-content/uart-verstehen_254524.html
usw, usf...
Und dann misst man mal die Pegel dieses UART-Signals, ob es ein
RS232-Pegel mit negativer Ruhespannung oder ein TTL-UART mit 5V/3V3
Ruhepegel ist.
Und dann versucht man mal das, was man auf dem Oszibild sieht, mit dem,
was man vorher gelesen hat, in Deckung zu bringen.
> Also ich meine die Baud eines UART Signals analysieren?
Man misst auf dem Oszi die Dauer vom Startbit bis zum Stopbit und teilt
diese Zeit durch die Anzahl der Bits. Dann noch den Kehrwert davon und
schon hat man die Baudrate. Wenn da was anderes herauskommt als die
"üblichen" Baudraten, dann macht man diese Messung besser nochmal.
A. S. schrieb:> Logikanalyzer ist bei Fehlern besser oder anderen Bussen
Zuerst muss man wissen, welche Spannungen man auf dem Bus hat und wie
das Bussigal aussieht. Und wenn man das weiß, dann kann man den LA für
die Untersuchungen nehmen.
Espressif schrieb:> Geht das mit sowas:> https://www.ebay.de/itm/334494398647
Wenn du schon was kaufst, dann kauf das billigste Picoscope, das hat
schon mal 2 Kanäle. Und das Ding kann UART decodieren und auf der
Festplatte speichern, bis die voll ist. Dieses EBAY-Ding liegt schon
bald in der Ecke, das Picoscope ziehst du immer wieder raus...
Lothar M. schrieb:> Nimm lieber ein DSO150
Wenn die open source software dafür stabil ist, wäre das aber ja super,
dann kann ich mir auch gleich mal den Quellcode durchlsesn (Nicht dass
ich ihn so wirklich verstehen würde) aber interessant ists trotzdem.
Ich seh mich jetzt mal nach einem DSO150 um, und les mir das ganze über
RS232 durch, ich will wissen wie dieser Akku kommuniziert, und wenns nur
um das Herausfindens Willen ist.
Espressif schrieb:> ich will wissen wie dieser Akku kommuniziert
Das wirst du mit dem kleinen Ding beim Analysieren nicht viel Freude
haben.
Espressif schrieb:> Er kommuniziert über UART mit dem Gerät, 9600 Baud
Aber wenigstens siehst du dann, ob es überhaupt wie vermutet eine
asynchrone Schnitte ist. Oder nicht eher ein synchroner Bus wie z.B.
I²C...
Bedenkt man, daß das Gerät, das hier mit dem nichtssagenden Begriff
"Handheld" beschrieben wird, ein PC ist, ist es eher unwahrscheinlich,
daß die Kommunikation mit dem Akku über eine UART erfolgt --
wahrscheinlicher ist SMBus, der ist nämlich in PCs für so etwas da.
Auch, wenn der PC in der Hand gehalten werden kann.
Ansonsten bietet sich ein Oszilloskop nur für die Grobanalyse
(Signalpegel und grobes Zeitverhalten) an, Details kann man (sofern die
Spannungpegel passen) mit einem Logikanalysator wie den üblichen
Saleae-Klonen deutlich besser und vor allem über einen längeren Zeitraum
erfassen.
Lothar M. schrieb:> Aber wenigstens siehst du dann, ob es überhaupt wie vermutet eine> asynchrone Schnitte ist. Oder nicht eher ein synchroner Bus wie z.B.> I²C...
Darum ging es mir bei der Empfehlung. Erstmal die Pegel und das Timing
ermitteln, dann kann man passende Transceiver besorgen.
Habe das Gerät mal aufgemacht. Die Akku RX und TX hängen garnicht am
Gerätemainboard selber, sondern an einem ESP32. Kann man darüber
irgendwie rauskriegen wie das ganze kommuniziert?
Espressif schrieb:> Kann man darüber> irgendwie rauskriegen wie das ganze kommuniziert?
Es bleibt bei der gleichen Vorgehensweise. Messe zumindest die
Ruhepegel* dann kannst du (falls überhaupt nötig) passende Transceiver
kaufen. Und den Logic Analyzer.
*) Warum hast du das immer noch nicht gemacht? Willst du voran kommen,
oder labern?
Stefan ⛄ F. schrieb:> Warum hast du das immer noch nicht gemacht? Willst du voran kommen,> oder labern?
Noch kein Oszi vorhanden, bestelle jetzt das DSO150 dann wird Ruhepegel
gemessen.
Mal noch eine andere Frage: Kann man das ROM des ESP32 (Vorausgesetzt
nicht gelockt) auslesen?
Espressif schrieb:> Noch kein Oszi vorhanden, bestelle jetzt das DSO150 dann wird Ruhepegel> gemessen.
Für den Ruhepegel reicht ein simples Multimeter. Je nach dem, welche
Spannung dabei heraus kommt kann man schon recht treffsicher erraten,
welche Schnittstelle es ist. Ich vermute du wirst 3,0 bis 3,3V messen,
dann ist es UART und du kannst den Logiktester direkt anschließen. Ich
hoffe, du hast einen bestellt.
> Mal noch eine andere Frage: Kann man das ROM des ESP32 (Vorausgesetzt> nicht gelockt) auslesen?
Sicher kann man, mit dem esptool. Aber ich bezweifle, dass du binären
Maschinencode verstehen kannst.
Stefan ⛄ F. schrieb:> Sicher kann man, mit dem esptool. Aber ich bezweifle, dass du binären> Maschinencode verstehen kannst.
Das bezweifle ich auch, aber wenn ich einen zweiten ESP32 mit dem
Programm aus dem von dem Gerät flashen könnte, wird der vielleicht den
Akku auch entsperren.
Espressif schrieb:> Noch kein Oszi vorhanden, bestelle jetzt das DSO150 dann wird Ruhepegel> gemessen.
Zum Messen des Ruhepegels brauchst du kein Oszi, solange die
Schnittstelle in Ruhe ist. So ein DC-Signal misst jedes Multimeter. Ob
auf deiner Schnittstelle geeignete Ruhepausen sind, weißt du ja bereits.
Espressif schrieb:> Habs grad gemessen. Ruhepegel ist 1,6v
Bei einem ESP? Der arbeitet mit 3.3V
Da hast du vermutlich eher einen Mittelwert über einen Datenstrom
erwischt.
Wolfgang schrieb:> Espressif schrieb:>> Habs grad gemessen. Ruhepegel ist 1,6v>> Bei einem ESP? Der arbeitet mit 3.3V> Da hast du vermutlich eher einen Mittelwert über einen Datenstrom> erwischt.
Hab den RX und TX vom Akku gegen GND gemessen als der Akku draußen war,
daher hatten RX und TX keine Verbindung zum Gerät. Wenn der Akku mit dem
Gerät verbunden wird, quatscht der die ganze Zeit, werd aber mal
versuchen ihn wenn er verbunden ist in einer Pause zu erwischen, weiß
nur nicht ob mir das gelingt, der fängt sobald er eingesetzt wird an zu
quasseln
Wobei das Gerät erst den Akku anzusprechen scheint, also fängt das als
erstes an zu quasseln, sobald er eingesetzt wird. Dann labert der Akku
zurück, und das geht dann so die ganze Zeit ohne Unterbrechung sowohl
von akku zu gerät als auch von Gerät zu Akku
Ich verwende diesen LA und bin sehr zufrieden damit.
Bis 40 MHz mit großer Aufzeichnungstiefe.
InnoMaker LA2016 USB Logik Analysator volle 16-Kanal 200MHz Abtastrate
mit PC Software Handheld Instrument, Unterstützung Windows
(32bit/64bit), Mac OS, Linux, (LA2016) https://amzn.eu/d/fboGxSa
Unterstützte Standardprotokolle:
UART/RS-232/485, I2C, SPI, CAN, DMX512, HDMI CEC, I2S/PCM, JTAG, LIN,
Manchester, Modbus, 1-Wire, UNI/O, SDIO, SMBus, USB1.1, PS/2, NEC
Infrarot, Parallel, etc.
Espressif schrieb:> Noch kein Oszi vorhanden, bestelle jetzt das DSO150 dann wird Ruhepegel> gemessen.Stefan ⛄ F. schrieb:> Für den Ruhepegel reicht ein simples Multimeter. Je nach dem, welche> Spannung dabei heraus kommt kann man schon recht treffsicher erraten,> welche Schnittstelle es ist. Ich vermute du wirst 3,0 bis 3,3V messen,> dann ist es UART und du kannst den Logiktester direkt anschließen. Ich> hoffe, du hast einen bestellt.
Es ist völlig egal was der Typ bestellt, da der von Elektronik
genausoviel Ahnung hat wie ich von einer Herztransplation - nämlich
keine. Der hat sich jetzt nur in den Kopf gesetzt mal was mit Elektronik
zu machen - macht doch jeder, kann nicht so schwer sein.
Stefan ⛄ F. schrieb:> Warum hast du das immer noch nicht gemacht? Willst du voran kommen, oder> labern
Er will kaufen.
Kaufen löst alle Probleme.
Kaufen spart denken.
Espressif schrieb:> Habs grad gemessen. Ruhepegel ist 1,6v
OK, das ist entweder kein UART oder er kommuniziert ununterbrochen (kein
Ruhepegel). Dur brauchst wohl doch das Oszilloskop.
MaWin schrieb:> Du willst einfach nur kaufen. Kauf ein Eis.
Hahaha!👍😂
UART, mach einen Stecker dazwischen und mit einem Terminalprogramm am PC
gucken.
Konnte früher fast jeder.
Bei Reichelt gibt es schon einfache Standoszilloskope ab 170€.
https://www.reichelt.de/digital-speicher-oszilloskop-5-mhz-2-kanaele-peaktech-1400-p321522.html?&trstct=pol_4&nbc=1
Ok, nur 5 MHz. Aber für Uart und I2C reicht das vollkommen hin. Wenn man
Spi langsamer taktet, evtl auch noch.
170€, das sind 2 Tankfüllungen.
Oder 2 Helene Fischer Karten in Bremen.
Oder eine Minitrix Elok, Spurweite N.
Das kann man auch für ein Scope bezahlen. Jedes Hobby kostet.
Und für den doppelten Preis gibt es schon 100 Mhz Geräte.
Mit Oszilloskops Protokollanalyse zu betreiben würe ich vorsichtig sein.
Meist macht die geringe Speichertiefe die Analys sehr schwierig. Ich
besitze beides und will einen LA nicht missen.
Stefan ⛄ F. schrieb:> Gerald K. schrieb:>>> Mit Oszilloskops Protokollanalyse zu betreiben>> Darum geht es nicht, sondern darum, die Signalpegel und das Timing zu> erkennen.
Das können viele Oszis in der Grundausstattung, aber meistens kann man
kurze Telegrammsequenzen speichern.
Beim LA LA2016 lassen sich die Schaltschwellen einstellen und auch
mehrere Schnittstellen gleichzeitig beobachten.
Auch kommt man manchmal nicht mit zwei Kanäle aus. Z.B Handshakesignale,
CS ...
Wenn es um die Untersuchung von Störungen geht ist ein Oszi von Vorteil.
Ich hab die RX und TX am Gerät weiter verfolgt. auf der Platine im Gerät
mit dem ESP 32 sitzt auch ein ST3485EB, zu dem die RX und TX vom Akku
gehen (Gemessen per Durchgangstest) also RS485, oder RS422, das Ding
(ST3485EB) scheint nämlich nix anderes zu können. Das dürfte die Suche
nach dem Protokoll eingrenzen.
Espressif schrieb im Beitrag #7176715:
> Ich hab die RX und TX am Gerät weiter verfolgt. auf der Platine im> Gerät> mit dem ESP 32 sitzt auch ein ST3485EB, zu dem die RX und TX vom Akku> gehen (Gemessen per Durchgangstest) also RS485, oder RS422, das Ding> (ST3485EB) scheint nämlich nix anderes zu können. Das dürfte die Suche> nach dem Protokoll eingrenzen.
Wenn du mit einem Scope einfach für 5 Sekunden die Messspitze an den Tx
gehalten hättest, dann wüsstest du jetzt die Baudrate und das
Spannungslevel.
Das hätte hier jetzt 49 Posts gespart.
Also besorg dir endlich vernünftige Laborhardware für Fakten, dann hört
diese Spekuliererei endlich auf.
Gerald K. schrieb:> Beim LA LA2016
Guck mal, wieder was gelernt.
Will im Winter wieder mit Elektronik anfangen und hab auch überlegt mir
einen richtigen (hab so ein billig Ding) LA zu kaufen.
Danke für den indirekten Tipp!
Espressif schrieb:> Ich hab die RX und TX am Gerät weiter verfolgt. auf der Platine im Gerät> mit dem ESP 32 sitzt auch ein ST3485EB, zu dem die RX und TX vom Akku> gehen
Der ST3485EB besitzt am Ausgang kein RX und TX, sondern arbeitet mit den
differentiellen Signalen A und B für einen bidirektionalen Bus.
Kein Wunder, dass du Hausnummern misst.
Frank O. schrieb:> Guck mal, wieder was gelernt.> Will im Winter wieder mit Elektronik anfangen und hab auch überlegt mir> einen richtigen (hab so ein billig Ding) LA zu kaufen.
Diese Billigdinger sind so schlecht nicht!
Ich hatte auch schon überlegt, mir ein Industriegerät zuzulegen (hp,
Tektronix, DLI : ebay ab ~150€), aber A) brauche ich nicht 100-te von
MS/sec, B) keine >= 64 Kanäle, C) nicht die flexibel konfigurierbaren
Probes, D) sind Protokoll-Analyzer dafür oft nur als Option zu haben und
E) braucht das alles richtig Platz auf dem Basteltisch.
Für die Fälle, bei denen ich mit 5V-TTL nicht klar komme, frickle ich
mir schnell was auf einem Lochraster-Rest zusammen (siehe Foto:
Adaptierung auf z.B. 3.3V).
Sollte mir mein Billigding mal abrauchen (was noch nie passiert ist),
hol ich mir für 10€ ein Neues.
Espressif schrieb:> Ich hab die RX und TX am Gerät weiter verfolgt. auf der Platine im Gerät> mit dem ESP 32 sitzt auch ein ST3485EB, zu dem die RX und TX vom Akku> gehen (Gemessen per Durchgangstest) also RS485, oder RS422, das Ding> (ST3485EB) scheint nämlich nix anderes zu können.
Der TO könnte sich da analog z.B. einen ST3485 ran frickeln und mit dem
an Pin 8 (Vcc) gemessenen Wert versorgen ...
(Übrigens erübrigt sich damit die Messung des "Ruhepegels" - und Bitrate
bekommt man per LA mit links raus ...)
Wieso der TO einem 2-ten Faden aufgemacht hat - neben
Beitrag "Kommunikation zwischen Akku und Gerät herausfinden", und nun hier
dieselbe Soße ein weiteres mal aufgewärmt wird - das mag verstehen,
wer's will ...
Ich bin jedenfalls entgültig raus, lieber lerne ich meine Raufasertapete
auswendig oder rede mit meiner Südwand!
Wolfgang schrieb:> Der ST3485EB besitzt am Ausgang kein RX und TX, sondern arbeitet mit den> differentiellen Signalen A und B für einen bidirektionalen Bus.> Kein Wunder, dass du Hausnummern misst.
Und wie komme ich da jetzt weiter?
Dich interessieren die Signale an Pin 1 und Pin 4 des Treibers.
Die haben Logikpegel (Versorgungsspannung des Treiberbausteins, zwischen
Pin 8 und Pin 5 zu messen), d.h. Du kannst da direkt einen
Logikanalysator der Art billiger Saleae-Klon anschließen und den
seriellen Decoder in der Software verwenden. Pin 5 muss natürlich auch
an den LA angeschlossen werden, das ist GND.
DANKE das ist mal richtig brauchbares Input. Sorry dass ich mich hier so
blöde anstelle, aber das ist halt echt das erste mal dass ich mit dieser
Art Kommunikation zu tun hab.
Espressif schrieb:> Und wie komme ich da jetzt weiter?
Du könntest am Receiver Output RO und Driver Input DI des ST3485 messen.
Dort sind die Pegel bekannt und die Signale der beiden Datenrichtungen
liegen getrennt vor.
Espressif schrieb:> Wofür ist eigentlich der St3485 gut?
Das ist ein RS485-Treiber.
> Warum schließen die nicht den ESP32> direkt an die RX und TX zum Akku an?
Weil der Akku keine RX und TX hat, sondern offensichtlich eine
RS485-Schnittstelle.
DerEgon schrieb:> Dich interessieren die Signale an Pin 1 und Pin 4 des Treibers.> Die haben Logikpegel (Versorgungsspannung des Treiberbausteins, zwischen> Pin 8 und Pin 5 zu messen), d.h. Du kannst da direkt einen> Logikanalysator der Art billiger Saleae-Klon anschließen und den> seriellen Decoder in der Software verwenden. Pin 5 muss natürlich auch> an den LA angeschlossen werden, das ist GND.
Ich würde versuchen den LA mit zwei Kanäle (1 UND 4) anzuschließen. Den
GND des Gerätes mit dem GND des LA verbinden (LA2016 unterstützt ±5V).
Damit bleibt die Symmetrie der seriellen Leitung erhalten. Man bekommt
dann am LA zwei gegenphasige Signale angezeigt.
Den LA mit GND an eine der beiden Signalleitungen anzschließen zerstört
die Symmetrie total. Im schlimmsten Fall kommt es zum Kurzschluß.
Also die Seite vom ST3485 zum Akku geht, und nicht die zwischen ESP32 zu
ST3485?
Die Frage ist, wenn ich es je hinkriegen sollte, rauszukriegen, wie
diese Kommunikation funktioniert, kann ich dann mit einem normalen µC
oder einem RS485 Adapter mit dem Akku reden, oder brauche ich dann den
ESP32, plus ST3485 plus Hühnerfutter, plus wasauchimmer noch auf dem
Board in dem Gerät sitzt auch?
Wenn ich weiß die das kommuniziert, wäre die optimal solution natürlich
eine kleine Platine, die einen µC enthält, mit der man den Akku dann
wecken kann.
Espressif schrieb:> Also die Seite vom ST3485 zum Akku geht, und nicht die zwischen ESP32 zu> ST3485?
Wer ist an den von mir genannten Pins 1 und 4 angeschlossen?
DerEgon schrieb:> Wer ist an den von mir genannten Pins 1 und 4 angeschlossen?
Sobald ich wieder zuhause bin schau ich nach.
Wie findet man eigentlich die Baudrate einer RS485 raus?
Mitm Logic Analyzer oder Oszi?
Espressif schrieb:> Wofür ist eigentlich der St3485 gut? Warum schließen die nicht den ESP32> direkt an die RX und TX zum Akku an?
Sieh dir einfach mal in denren Datenblätter an, was die jeweiligen Pins
aushalten. Und dann stell dir vor, da gibt es winters so eine hübsche
kleine elektrostatische Entladung mit ein paar kV beim Akkuwechsel.
Welcher der Pins hat da wohl mehr Chancen zu überleben?
Espressif schrieb:> Die Frage ist, wenn ich es je hinkriegen sollte, rauszukriegen, wie> diese Kommunikation funktioniert
Ist die Frage ernst gemeint? Und du willst eine ehrliche Antwort?
Dann lautet die: so wie du derzeit ohne jeglichen Plan und Selbstantrieb
herumdümpelst, wird das nie was.
Espressif schrieb:> aber das ist halt echt das erste mal dass ich mit dieser Art> Kommunikation zu tun hab.
Wenn dir das Ganze aber wirklich ernst ist, dann lass dir Zeit, wir
anderen konnten das auch nicht von Geburt an. Wir mussten uns mit dem
Thema auch erst mal ein wenig selber beschäftigen, uns dazu einlesen
und ein paar Erfahrungen sammeln. Das hat dann schon mal eine Woche
oder durchaus auch länger gedauert.
Bis dein neuer LA also da ist, kannst du dich z.B. einfach mal zum Thema
RS485 aufschlauen.
EDIT:
Espressif schrieb:> Wie findet man eigentlich die Baudrate einer RS485 raus?> Mitm Logic Analyzer oder Oszi?
Hatte ich bereits geschrieben. Alternativ kannst du einfach mal selber
anfangen über deine Aufgabe nachzudenken.
Ich bin raus, das ist fast schon tragisch hier...
Lothar M. schrieb:> Bis dein neuer LA also da ist, kannst du dich z.B. einfach mal zum Thema> RS485 aufschlauen
Da bin ich schon dran. Auch das DSO150 (Befürchte aber Clone) ist
bestellt.
Stefan ⛄ F. schrieb:> Gibt es das überhaupt in Original? Das ist ein chinesisches Produkt.
merkwürdige Frage. Die Chinesen können nichts selber entwerfen?
J. S. schrieb:>> Gibt es das überhaupt in Original? Das ist ein chinesisches Produkt.> merkwürdige Frage. Die Chinesen können nichts selber entwerfen?
Soweit ich weiß gehören chinesische Entwicklungen der Volksrepublik.
Jeder der eine Lizenzgebühr an die Behörden bezahlt darf das
produzieren.
hmm, von einigen wie WeAct, Nextion, Waveshare habe ich aber schon
gelesen das die vor counterfeits warnen. Kopien mit schlechter Qualität
schaden ja schon dem Namensgeber, da wäre das sehr verwunderlich. Aber
gelesen das es so oder nicht so ist habe ich es auch noch nicht.
Beim DSO150 ist beim Nachbau nicht nur die mangelnde (Noch mangelndere
Qualität wie beim Original) das Problem.
Denen ihre Firmware (Die "originale") hat die fiese Eigenschaft sich zu
sperren wenn sie auf ein counterfeit Produkt gespielt wird, siehe hier:
Beitrag "jyetech DSO150 Cortex Firmware decompile Fake Board"
Man muss dann von der Platine des Gerätes einen Code lesen, und ihn an
die Firma schicken, die dann einen Freischaltcode sendet, mit dem man
das Gerät entsperren kann, DAS GEHT ABER NUR WENN DAS GERÄT ORIGINAL
IST, sonst gibt von der Firma keinen Freischaltcode.
Diese Sperre wurde anscheinend schon ausgehebelt, aber die zweite in der
Originalfirmware anscheinend nicht: Solange die Firmware nicht
freigeschaltet ist, lässt sich die Timebase nicht verstellen.
Wobei ich auf meinem wahrscheinlich eh die Open Source Firmwaere
installiere. Weis nur noch nicht, ob man das danach auch neu
"kalibrieren" muss.
DerEgon schrieb:> Wer ist an den von mir genannten Pins 1 und 4 angeschlossen?
Hallo.
Habs nochmal nachgemessen. An Pin 1(RO) und Pin 4(DI) vom ST3485 hängt
der ESP32.
Nun, dann häng' da Deinen LA ran, oder Dein Oszilloskop, und zeichne
auf.
Zeig einen Screenshot davon, dann kann man --vielleicht-- Dir beim
Bestimmen der Baudrate weiterhelfen.
Ich hätte da bevor ich das Messen anfange noch eine kurze Frage:
Ich habe hier:
https://www.wut.de/e-6wwww-11-apde-000.php
Folgendes gelesen Zitat: "Differenzmessungen (Messung Bus A gegen B),
besonders mit einem Oszilloskop, können nur mit einem vom Massepotential
galvanisch getrennten Messgerät durchgeführt werden. Viele Hersteller
legen den Bezugspunkt des Messeinganges auf Masse, was bei Messungen an
einem RS485-Bus zum Kurzschluss führen kann."
Da das Handheldgerät und der Akku ja nicht am Netz hängen wenn ich dran
rummesse (Das Oszi aber über den Netzadapter schon) sollte das ja aber
kein Problem sein.
Aber gegen was soll ich messen? Leitung - gegen +, andersrum, oder - und
+
einfach gegen GND?
Ich weiß leider auch noch nicht welche der beiden Leitungen zwischen
ESP32 und dem ST3485 RS485 + und welche - ist.
Espressif schrieb:> Aber gegen was soll ich messen? Leitung - gegen +, andersrum, oder - und> +> einfach gegen GND?
Kanal_1 an +, Kanal_2 an -, GND an GND und im Scope dann Kanal_1 -
Kanal_2 anzeigen.
Oh man, ist das eine schwere Geburt.
Mit so einem Teil:
Frank K. schrieb:> Diese billigen "24MHz 8Ch" Teile bei Amazon und anderen sind für übliche> UARTs bis 1MBit/s auf jeden Fall schnell genug.
und Pulseview:
- Datenblatt ST3485EB anschauen, mit Resultat:
DerEgon schrieb:> Dich interessieren die Signale an Pin 1 und Pin 4 des Treibers.
- Drei Kabel zum Logicanalyzer verbinden (1+4 und GND an Pin5)
- Pulseview einige Zeit aufzeichnen lassen
- "Guess Bitrate"-Decodermodul reinklicken
- Baudrate ablesen
- UART-Decoder-Modul reinklicken, Baudrate aus vorhergehendem Schritt
einstellen.
- ggfs. Andere Einstellungen vom UART-Decoder durchspielen (Parity,
Stop-Bits, Invert RX/TX...), bis keine Framing-Errors mehr angezeigt
werden.
- ...
- Profit.
- Bonus: Evtl. passt noch ein anderer Decoder dazu, der sich hinter den
UART-Decoder "stacken" lässt.
Im Screenshot: Komplett sinnfreie Demo-Daten, und ein "UART->Modbus
Decoder", was auch keinen Sinn macht.
Habe das ganze jetzt mal mit dem LA5016 gelesen. GND auf GND vom ST,
Kanal 0 auf Pin 1 vom ST, Kanal 1 auf Pin 4 vom St. Auf Kanal 0 gibt es
bei einer Baudrate von 115207 sporadisch framing errors, auf Kanal 1
(Der an Pin 4 vom ST hängt) gibt es bei dieser Baudrate keinerlei
framing errors.
Ich könnte jetzt versuchen, das mit dem LA gelesene einfach mal per
RS485 Adapter an die Batterie zu senden, und sehen ob sie sich davon
beeindrucken lässt. Aber wie mache ich das? Der LA wirft werte wie 0x62,
0x65, 0x74 raus. Wie sende ich die in Hterm über einen RS485 Adapter an
die Batterie?
schrieb:> Aber wie mache ich das? Der LA wirft werte wie 0x62,> 0x65, 0x74 raus. Wie sende ich die in Hterm über einen RS485 Adapter an> die Batterie?
Im HEX Modus ohne <CR><LF> am Ende.
schrieb:> Ich könnte jetzt versuchen, das mit dem LA gelesene einfach mal per> RS485 Adapter an die Batterie zu senden, und sehen ob sie sich davon> beeindrucken lässt. Aber wie mache ich das? Der LA wirft werte wie 0x62,> 0x65, 0x74 raus. Wie sende ich die in Hterm über einen RS485 Adapter an> die Batterie?
Keine Ahnung von nichts >> lass es sein oder mache Dich schlau. Kleiner
Tip: Lesen bildet. Wer sich alles nur vorkauen lässt lernt halt nichts.
Du demonstrierst da gerade recht eindrucksvoll.
Gerald K. schrieb:> Im HEX Modus ohne am Ende.
Im HEX Modus ohne **CR** **LF** am Ende
Anmerkung zu meiner Korrektur: spitze Klammerung um CR LF funktioniert
nicht!
Zeno schrieb:> Keine Ahnung von nichts >> lass es sein oder mache Dich schlau. Kleiner> Tip: Lesen bildet. Wer sich alles nur vorkauen lässt lernt halt nichts.> Du demonstrierst da gerade recht eindrucksvoll.
Dann sag mir halt WO LESEN? Wenn ich QUellen fpür sowas finden würde,
würde ich ja lesen. Ich würde auch gerne Kapieren warum das mit dem LA
gelesene auf dem einen Kanal sinn ergibt, und auf dem anderen mit den
selben Einstellung nix als framing errors gibt.
Also WO lesen? sagt mir helt wenigestens wo.
schrieb:> Ich würde auch gerne Kapieren warum das ...> auf dem anderen mit den selben Einstellung nix als framing errors gibt.
(Es geht um Pin 4, dem Logic-Level Input des RS485 Treibers.)
Weil die Signale halt nicht den UART Protokoll überein stimmt. Oder du
hast die falsche Baudrate eingestellt. 115207 ist ungewöhnlich, die
nächste normale Baudrate ist 115200. Aber ich denke, der feine
Unterschied wird wohl nichts an deinen Framing Errors ändern.
Wenn du uns so ein Bild zeigen würdest, wie der Ernst B es vor gemacht,
könnten wir mehr dazu sagen. Normalerweise kann man die Signale auch in
eine Datei aufzeichnen und hier an Anhang bereit stellen.
Wenn das alles Klappt bekommst du eine Folge von Bytes, deren Sinn du
genau so wenig verstehst, wie eine fremde Sprache. Was willst du ohne
"Wörterbuch" damit anfangen?
MaWin schrieb:> Du willst einfach nur kaufen. Kauf ein Eis.
Es ist ein Trauerspiel...
Nun hat der TO gekauft - und die ganzen Spezialisten, die vorher
lautstark bestimmte Chinakracher empfohlen haben (nach dem Motto: Hab'
ich auch zuhause, muss also einfach gut sein), haben sich in ihren
Löchern verkrochen...
Jester schrieb:> Es ist ein Trauerspiel...> Nun hat der TO gekauft
Er hat bekommen, was er wollte. Er wollte die Kommunikation auf dieser
Schnittstelle analysieren. So weit ist er nun.
Dass er mit dem Ergebnis der Analyse wahrscheinlich auf die Schnelle
nicht anfangen kann, war zu erwarten. Nur sehr wenige Geräte
kommunizieren mit Klartext auf deutsch oder englisch.
Klar gibt es hier Experten, die ihm weiter helfen könnten, wenn er seine
Geräte nun dazu benutzen würde, den nötigten Input zu liefern. Nur wenn
das in der Qualität weiter geht, wie bisher, dann stirbt er vorher an
Altersschwäche. Dafür können jedoch die Experten nichts.
Ich hätte als nicht-Experte schon vor dem Messen den Akku zerlegt und
ermittelt, welcher Chip da drin ist. Dann nach dessen Dokumentation
gesucht. Wenn ich da nicht heran gekommen wäre, hätte ich das Projekt
abgebrochen. Digitale Kommunikation ohne Doku zu hacken ist nämlich, wie
das Entschlüsselung einer Fremdsprache ohne Wörterbuch. Das artet
schnell zu einem Lebenswerk aus.
Wer misst ... schrieb:> Zeig doch mal einen Screenshot von dem, was Dein Logikanalysator da> ausspuckt.
Hier mal alles was ich so habe, die Project file muss man mit dem
KingView Programm öffnen, der LA5016 funktioniert nicht mit Pulseview
schrieb:> Akku_BMS_UART_Analyse.JPG
Bitte Channel 1 so darstellen, dass man das Timing der High/Low Phasen
ablesen kann.
> King_View.zip
Ohne die exportierten Rohdaten der Messung kann ich mit dem Programm
nichts anfangen. Siehe
http://www.inno-maker.com/wp-content/uploads/2019/02/Kingst_Virtual_Instruments_User_Guide.pdf
Seite 23.
Darfst du die Software einfach hier veröffentlichen? Ich weiß, ich mache
das mit einigen Programmen auch auf meiner Homepage, aber da habe ich
vorher um Erlaubnis gefragt.
Ich denke man darf das Programm hier hochladen, das ist ja ohne den LA
so gut wie nutzlos und nur als Reader zu gebrauchen. Außerdem kann man
das eh soweit ich weiß auf der Herstellerseite downloaden.
Hier mal die Rohdaten und ein Screenshot mit dem Timing.
Ich hab da mal weiter probiert. Ich weiß zwar noch nicht warum die
framing errors auf Kanal 0 passieren, aber die Kommunikation auf Kanal 1
(An Pin 4 des ST) ist bei jedem Einsetzen des Akkus die gleiche, daher
denke ich nicht, dass es ein verschlüsseltes System, oa ist, sonst wären
die Daten doch jedes mal anders?