Klar ist, das was mit meinem Timing nicht ganz stimmt.
Es handelt sich um Bitbanging, da es kein echtes I2C ist.
Eigentlich bestätigt der TMC1637 den Empfang, indem er die Datenleitung
auf low zieht..auf dem Bild sieht man aber wie die Spannung von 3,3V auf
1.08 Runter bzw rauf gezogen wird?
Es sind 4,8K R Pull Up vorhanden, andere Werte ändern nichts.
Eigentlich versuche ich sofort nach dem senden den Datenausgang als
Eingang umzuschalten, aber offenbar funktioniert das nicht oder es ist
nicht der Grund...
Ich würde sagen der Controller versucht die Datenleitung hoch und der
TMC runter zu ziehen..in der Anleitung steht das am ende vom 9. Takt die
Datenleitung vom TMC wieder freigegeben wird.
Warum springt er dann aber doch auf 0? Obwohl gar nicht getaktet wird?
ich habe ja ein extra langes Delay eingefügt um es besser zu sehen, der
Controller macht in der Zeit also wirklich nichts.
Was ist der Grund?
Gegeg J. schrieb:> Klar ist, das was mit meinem Timing nicht ganz stimmt.
Ich sehe nur 8 gültige Taktflanken, ein I2C Transfer besteht
aber aus 9. Ein Ack des Slaves wird beendet durch eine neunte
Clockflanke des Masters.
Du beschreibst nicht von wo nach wo du sendest bzw steuerst.
Da kann man sich alles Mögliche zusammenreimen.
Gegeg J. schrieb:> Eigentlich versuche ich sofort nach dem senden den Datenausgang als> Eingang umzuschalten,
Ein I2C Clock- und Datenport muss Open-Drain sein, nicht einfach
Push-Pull-Ausgang.
"Ein Ack des Slaves wird beendet durch eine neunte
Clockflanke des Masters."
Ja, schon klar..aber wieso zieht der Slave dann nicht auf 0 sondern auf
1.08V herunter?
Darum geht es mir in der Frage...und wieso dann plötzlich später klapp
es..obwohl der Controller nur wartet,,,
Gegeg J. schrieb:> Ja, schon klar..aber wieso zieht der Slave dann nicht auf 0 sondern auf> 1.08V herunter?
Weil 2 Ausgänge gegeneinander arbeiten.
Dreimal lesen und danach hundert mal selber meißeln:
> Ein I2C Clock- und Datenport muss Open-Drain sein, nicht einfach> Push-Pull-Ausgang.
Gegeg J. schrieb:> mit Open Drain sieht es irgendwo falsch aus?!
Nicht gut, das stimmt, aber tendenziell besser.
Jetzt auch noch den Takt....
Warum sehe ich da keine e Flanken?
Gegeg J. schrieb:> Es sind 4,8K R Pull Up vorhanden
Nach diesem Bild
Gegeg J. schrieb:> osci2.jpg
sicherlich nicht.
Vermutlich nicht an beiden Leitungen SCL und SDA.
Und wenn welche vorhanden sind dann sicherlich falsche Werte.
Gegeg J. schrieb:> Es sind 4,8K R Pull Up vorhanden
Schon die Wert-Angabe lässt grosse Zweifel aufkommen.
Wenn es schon so los geht weiss man nicht was man tut.
Bist du sicher dass du einen TMC1637 "meinst"? Ich kenne nur einen
TM1637 (LED 7-Segmentanzeigetreiber).
Wenn dem so ist, dann ist schlicht schon die Frage, ob das ein I2C Bus
ist, denn:
- ich hatte den einmal als eine "Art I2C Bus" bezeichnet, weil er wie
ein I2C angesteuert wird ohne eine Angabe einer Deviceadresse. Der
Baustein nimmt "sofort" Kommandos entgegen. Jemand meinte dann, dass das
dann eher ein SPI Bus sei und im Datenblatt des TM1637 steht Two-Wire
Interface.
Wie auch immer: Wenn du einen TM1637 meinst, findest du hier:
Beitrag "Siebensegment und Tasten ansteuern mit TM1651 \ TM1637"
Software zum Chip (die auch mittels Bitbanging realisiert ist) und sich
leicht an jeden Controller anpassen läßt (du hast ja keinen Controller
angegeben, den du verwendest).
Hallo,
gibt es denn zu Deiner Ansteuerung auch mal einen Schaltplan, auf dem zu
sehen ist, wo die PullUps liegen, ob weitere Widerstände / Kondensatoren
etc. vorhanden sind, und welche Pins mit welchen verbunden sind???
Ich vermute mal, dass es noch irgendwo Serienwiderstände in den
Leitungen gibt. Mit welcher Spannungsversorgung arbeitest Du (ich sehe
da ca. 3V3)?
Gruß
TK
Im verlinkten Beitrag ist doch der Schaltplan aus dem Datenblatt mit
angehängt ! Aber gerne noch einmal hier.
Lt. Datenblatt sind die Pullup-Widerstände 10k groß. Serienwiderstände
gibt es keine.
Das ganze wird mit 5V betrieben.
Ralph S. schrieb:> Bist du sicher dass du einen TMC1637 "meinst"? Ich kenne nur einen> TM1637 (LED 7-Segmentanzeigetreiber).
Oha...
Einen TMC1637 habe ich nicht gefunden, also so auch keine Chance das zu
überprüfen.
Bin bei meinen Ansagen davon ausgegangen, dass I2C verwendet wird.
Tja... so kanns kommen....
Bitte vergesst meine Ansagen, wegen Irrtum, auf Grund von Nebelkerzen..
Hallo Ralph,
es geht mir doch nicht um den Schaltplan aus dem "verlinkten Beitrag",
sondern um den Schaltplan, den Gegeg (also der TO) umgesetzt hat.
Denn alleine schon die 5V passen mit den Oszi-Bildern nicht überein!
Die Kondensatoren sind ebenfalls in dieser Größe kontraproduktiv usw....
Also bitte den richtigen Schaltplan anfügen (und natürlich auch die
Seite, die vom Controller kommt!)
Alles andere ist Glasklugel!
Ach so, vielleicht mal die "IIC" Geschwindigkeit auf unter 100kHz
reduzieren - kann auch manchmal hilfreich sein.
Gruß
TK
Ich sagte oben bereits das es ein eigenes Protokoll ist..ÄHNLICH i2C!
"Es handelt sich um Bitbanging, da es kein echtes I2C ist."
wer lesen kann ist klar im Vorteil.....Irrtümer passieren, dann aber
nicht so tun als ob ich nicht klar geschrieben hatte!!
"Kondensator Ladekurven.
Man darf sie ruhig sehen, allerdings nicht so ausgeprägt, wie bei
dir..."
War der entschediende Tipp:-)
Die dumm dumm Chinesen haben nicht wie im Datenblatt angegebeen 10pf auf
Takt udn Datenleitung gelegt, sondern 1nf!!
Es liegt nicht an 3,3V(Siehe Datenblatt!) und auch nicht an 10K auch 1K
sollten problemlos gehen oder auch 20k vermutlich.
Nein, die Chiensen haben zu große Kondensatoren verbaut.habe sie jetzt
komplett ausgelötet.
Hatte es inzwischen auch im Netz gefunden, das jemand anders das gleiche
Problem hatte:-)
Seltsam ist nr...hätte ich es bei ebay bestellt..ok..china Schrott
halt..aber das war bei Reichwlt gekauft..da hätte ich gedacht, die haben
das getestet oder Rückmeldungen von Kunden.
Also doch gleich zum 1/2 Preis bei ebay bestellen..alles der gleiche
Kack
Ja ich meine TM..nicht TMC, hatte mich verschrieben
Wie kann ich eigentlich bei google links kopieren, OHNE das der ganze
GOOGLE Link mit angehängt wird?!? Angezeotgt wird z.B. der Link www.
xyz.com..gehe ich dann auch Link kopieren liegt in der Zwischenablage
www.google.com./urlganz vieltext/www.xyz.com
Anbei das Datenblatt:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwjGid3RjsHlAhUTxMQBHf3xBAQQFjAAegQIARAC&url=https%3A%2F%2Fwww.mcielectronics.cl%2Fwebsite_MCI%2Fstatic%2Fdocuments%2FDatasheet_TM1637.pdf&usg=AOvVaw1i-d2E48YngSMkGmcUo5SN
Und der Reichelt Link
https://www.reichelt.de/arduino-display-grove-4-zahlen-tm1637-grv-4num-display-p191185.html?&trstct=pos_0
Vielleicht hat der Hersteller den Fehler bei V1 bemerkt?
https://www.reichelt.de/makeblock-me-7-segment-display-rot-v1-mb-7-segment-v1-p202118.html?&trstct=pos_1
Aber der Fehler habe ich ja nun gefunden..
Anstatt rumzupalabern wäre es sinnvoller einfach mal den dämlichen
Pull-Up zu ändern und verschiedene Werte auszuprobieren. Das ist er
einzig logische Schritt den jeder ernst zunehmende Entwickler nach
Messung der oben dargestellten Bilder anstreben würde.
Was man auf dem aller ersten Foto hier sieht ist, dass der Treiber in
den Tri-State geht. Das Signal floatet. Von wegen "der Slave kann nicht
auf 0 V ziehen"...
Anfänger...
flowten tut da sicher nichts...das liegt daran das das Osci aufgrund
eines Timingproblem gerade umgesprungen ist als das Foto gemacht wurde
Du Anfänger;-)
Du erkennst es deutlich daran das er genauso flach ist die der andere
"Huckel"
Apropo..durch das Chinesische Datenblatt hat es sich erledigt..dort ist
sogar ein Quellcode enthalten..bescheuerterweise wurde das im Englischen
entfernt!!
Gegeg J. schrieb:> das liegt daran das das Osci aufgrund> eines Timingproblem gerade umgesprungen ist als das Foto gemacht wurde> Du Anfänger;-)
Was ein Schmarn gibts du hier von dir.
Ein Timing-Problem? Im Messgerät? Was "springt" da um?
Bei t=30 us sieht man ein floatendes Signal.
Da ist noch viel zu tun mein Jung.
Im Übrigen heißt es Oszi.
Msd schrieb:> Bei t=30 us sieht man ein floatendes Signal.
Das liegt allein schon deshalb nahe, weil der Takt dort nicht mehr aktiv
ist. Bei einigen Bussystemen wird dann der Treiber in den Tri-State
geschaltet. Siehe e-MMC oder SD-Card. Das wäre ein weiteres Indiz für
meine Erklärung.
Du kannst natürlich auch weiter rumlammentieren anstatt einfach mal
weiter zu messen...
@Msd
Die falschen Pillen genommen?
Dem Autor: Gegeg J. (cdfgdfgdfhsdklklk) kann man ja einiges vorwerfen.
z.B.:
Falsche Bauteilbezeichnungen als Nebelkerze einzusetzen.
Die Nebelkerze, zu setzen, irgendwas als I2C Diagramm zu bezeichnen,
worauf nix von I2C zu sehen ist.
Unfreundlich mit Kritik umzugehen (Mitschuld weit weg schiebend)
Die Unfähigkeit Datenblätter zu verlinken, Code und Schaltplan zu
zeigen.
Aber immerhin hat er das Problem erkannt/gefunden, und die
ordnungsgemäße Funktion hergestellt. (wenn auch etwas zäh)
Wie auch immer:
Floatende Leitungen, sind auf dem Oszi Bild nicht zu sehen/erkennen.
Sowas sieht anders aus. Und da du Msd das offensichtlich nicht erkennst,
fehlt dir wohl die Kompetenz/Erfahrung das beurteilen zu können.
Aber dafür reißt du das Maul erstaunlich weit auf.
Ok, du blamierst dich scheinbar gerne selber.
Also: Weiter so!
@Msd
Timing Problem vom Osci könnte natürlich was meinen?!? Trigger
vielleicht?!!! dafür das einige sich hier für solche Experten halten
sind einige echt Begriffsstutzig.
Das jemand der kein Experte ist, vielleicht mal den falschen Begriff
verwendet sollte für einen Experten kein Hindernis sein zu verstehen was
der andere meint.
Und was soll der dämliche Spruch kein Datenblatt verlinkt zu haben?!
Einfach TM1637 eingeben und der erste Link führt zum Datenblatt..nur
darum ging es gar nicht in meiner Frage.
Es ging generell darum eine zweite Meinung zu bekommen..ich verstehe
nicht..das wenn jemand die Frage mich versteht, weshalb man dann
überhaupt meint antworten zu müssen...
Ich bedanke mich bei den anderen für die sinnvollen Beiträge, wie der
Tipp mit der Kondensatorladekurve..sagt im ersten Moment nicht viel aus,
manchmal sind aber bereits solch kleine Dinge hilfreicher als das
sinnlose rumgeblubber vieler andere die selbst mit einem ganzen Buch
noch nicht genug Infos hätten..
Oder sich an Pull Up Werten hochziehen...
Gegeg J. schrieb:> Einfach TM1637 eingebenGegeg J. schrieb:> TMC1637
Ob beabsichtigt oder nicht, es ist eine Nebelkerze.
Wie kommst du auf die Idee, dass ich (oder irgendwer anderes) da einfach
mal da das C weg lassen soll.
Bist du auch so irre, wie der Msd?
Gegeg J. schrieb:> Das jemand der kein Experte ist, vielleicht mal den falschen Begriff> verwendet sollte für einen Experten kein Hindernis sein zu verstehen was> der andere meint.
Klar, wenn er Hellseher ist.
Paul P. schrieb:> einfach nur ein Verschreiber?!
Ja sicher!
Durchaus wahrscheinlich.
Aber davon auszugehen, dass ein jeder den Vertipper korrigieren kann,
ist vollkommen egozentrisch.
Er kennt den Baustein, hat das Datenblatt vor sich.
Kann aber nicht realisieren, dass diese Umstände nur bei ihm vorliegen
und nicht bei den Lesern. Das liegt offenbar weit außerhalb seines
Vorstellungsvermögens. Denn selbst nach Hinweiß darauf, keinerlei
Einsicht.
Er hat den Fehler gemacht, aber anstatt etwas Demut zu zeigen, tritt er
um sich.
Nee...
Mangelhafte Kooperationsbereitschaft/Informationsversorgung, gepaart mit
einer überzogenen/unrealistischen Erwartungshaltung.
OMG schrieb:> Die Anzahl an Antworten lässt tief blicken wie qualifiziert> die Mitglieder dieses Forums sind.
Ich korrigiere mich:
Die Mitglieder dieses Forums kennen den User "corado" bereits
so gut dass sie nicht mehr auf seine Beiträge eingehen wollen.
Auch noch ein Crossposting.
Oha, noch viel egozentrischer, als ich dachte....
OMG schrieb:> Die Anzahl an Antworten lässt tief blicken wie qualifiziert> die Mitglieder dieses Forums sind.
Die im anderen Forum sind klüger, lassen ihn links liegen.
> Wie kann ich eigentlich bei google links kopieren...
Wenn es nicht anders geht klicke ich auf "diese Seite übersetzen" und
dann steht ganz oben der korrekte Link, mit einem Punkt dahinter, der
muss noch weg.
Ersatzweise geht auch der Cache, je nachdem was Google einem anbietet.
Angeblich kann man diese dumme Verhalten von Google irgendwie abstellen,
aber der Tipp hat bei mir nicht funktioniert.
Gegeg J. schrieb:> Das jemand der kein Experte ist, vielleicht mal den falschen Begriff> verwendet sollte für einen Experten kein Hindernis sein zu verstehen was> der andere meint.
Nö ich verstehe nicht was er mit Timing-Problem meint. Auch wenn ich den
Begriff durch Trigger wie von dir geschilder ersetze, macht das für mich
keinen Sinn. Warum triggert das Oszi falsch? Oder hat das Oszi
getriggert, als die Tastköpfe nicht angeschlossen waren?
Spielt aber keine Rolle denn:
Arduino Fanboy D. schrieb:> Floatende Leitungen, sind auf dem Oszi Bild nicht zu sehen/erkennen.> Sowas sieht anders aus. Und da du Msd das offensichtlich nicht erkennst,> fehlt dir wohl die Kompetenz/Erfahrung das beurteilen zu können.> Aber dafür reißt du das Maul erstaunlich weit auf.> Ok, du blamierst dich scheinbar gerne selber.> Also: Weiter so!
Doch genau so können floatende Signale aussehen. Ich sage nicht dass sie
auch anders aussehen können, denn das hängt davon ab welche Größen auf
die Signale einwirken (von außen) und wie groß die "hochohmige"
Grundlast ist, aber genau so kann es aussehen, wenn auf einer Leitung
z.B. ein sehr hochohmiger PU (wie er häufig in Mikroprozessoren zu
finden ist >>100k) UND ein niederohmiger Messpfad anliegt. Dann entsteht
ein Mittenpegel sobald niemand mehr aktiv treibt. Letzteres ist der Fall
an den Stellen wo der Takt aus ist. Andere messtechnische Nachweise dazu
fehlen hier.
Die Frage vom Ersteller, warum der Sender nicht in der Lage ist das
Signal nicht auf "0 V" zu ziehen ist ebend irreführend, denn es ist kein
Beweis erbracht, dass dieser überhaupt treibt.
Darüber hinaus: Natürlich ist im Bild zu sehen, dass zwei Signalverläufe
überlagert dargestellt sind, ab 30 us sieht man jedoch nur eine Kurve
und das ist doch sehr eigenartig, wenn es sich doch um eine
Fehltriggerung halten sollte, die hier einfach so als "normal" verkauft
wird.
Msd schrieb:> Darüber hinaus: Natürlich ist im Bild zu sehen, dass zwei Signalverläufe> überlagert dargestellt sind,
Blitzmerker!
Nennt sich "Nachleuchten der Phosphorschicht". Bei Digitaloszis auch
gerne in Software realisiert.
Msd schrieb:> aber genau so kann es aussehen, wenn auf einer Leitung> z.B. ein sehr hochohmiger PU (wie er häufig in Mikroprozessoren zu> finden ist >>100k) UND ein niederohmiger Messpfad anliegt. Dann entsteht> ein Mittenpegel sobald niemand mehr aktiv treibt.
Das ist bei Open-Drain auf der einen Seite und Push-Pull auf der
anderen, so wie anfangs gewesen, garantiert nicht der Fall.
Die scharfen Ecken sprechen gegen jede Art von Hochomigkeit.
"
Die Anzahl an Antworten lässt tief blicken wie qualifiziert
die Mitglieder dieses Forums sind."
Owe...also tatsächlich gibt es Foren da kommen wesentlich weniger
Antworten als hier..nur das da ein oder zwei bdreits reichen und das
Problem gelöst ist..
Was sagt das wohl über DIESES Forum hier aus?....
Und natürlich Crossposting! Was bist Du denn für ein Vollhonk??!!? Wenn
in der Sprache mit dem Compiler gearbeitet wird, fragt man
selbstverständlich zuerst dort!!
Msd hat ganz offensichtlich keine Ahnung.
Auf dem Fotos sieht man DEUTLICH das es kein Floating ist..der Grund
wurde bereits genannt...aber rafft es immer noch nicht
es wurde sogar schon mehrere Gründe genannt weshalb es kein Flotaing
sein KANN!
Msd nimmt sich wichtig und vermutlich weiß er auch immer alles besser
als sein chef