Forum: Mikrocontroller und Digitale Elektronik I2C Diagramm, Hilfe, TMC1637


von Gegeg J. (Gast)


Angehängte Dateien:

Lesenswert?

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?

von OMG (Gast)


Lesenswert?

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.

von OMG (Gast)


Lesenswert?

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.

von Gegeg J. (Gast)


Lesenswert?

"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,,,

von Einer K. (Gast)


Lesenswert?

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.

von Gegeg J. (Gast)


Angehängte Dateien:

Lesenswert?

mit Open Drain sieht es irgendwo falsch aus?!
Ich hatte es schon beim ersten mal vernommen!

von Einer K. (Gast)


Lesenswert?

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?

von Gegeg J. (Gast)


Lesenswert?

was sind e Flanken?
Jetzt funktioniert das Display auch nicht mehr..vorher funktionierte es 
mit Push/Pull

von hinz (Gast)


Lesenswert?

Gegeg J. schrieb:
> mit Open Drain sieht es irgendwo falsch aus?!

Pullup fehlt.

von Gegeg J. (Gast)


Lesenswert?

wie oben geschrieben..ist der vorhanden...

von hinz (Gast)


Lesenswert?

Gegeg J. schrieb:
> wie oben geschrieben..ist der vorhanden...

Sieht aber nicht so aus.

von Einer K. (Gast)


Lesenswert?

Gegeg J. schrieb:
> was sind e Flanken?
Kondensator Ladekurven.
Man darf sie ruhig sehen, allerdings nicht so ausgeprägt, wie bei dir...

von OMG (Gast)


Lesenswert?

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.

von OMG (Gast)


Lesenswert?

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.

von Ralph S. (jjflash)


Lesenswert?

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).

von TK (Gast)


Lesenswert?

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

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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..

von TK (Gast)


Lesenswert?

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

von Gegeg J. (Gast)


Lesenswert?

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..

von Msd (Gast)


Lesenswert?

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.

von Msd (Gast)


Lesenswert?

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...

von Gegeg J. (Gast)


Lesenswert?

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!!

von Msd (Gast)


Lesenswert?

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.

von Msd (Gast)


Lesenswert?

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...

von Einer K. (Gast)


Lesenswert?

@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!

von Gegeg J. (Gast)


Lesenswert?

@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...

von Einer K. (Gast)


Lesenswert?

Gegeg J. schrieb:
> Einfach TM1637 eingeben

Gegeg 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?

von Paul P. (kater_karlo)


Lesenswert?

einfach nur ein Verschreiber?!

von hinz (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von AlleForen (Gast)


Lesenswert?


von OMG (Gast)


Lesenswert?

AlleForen schrieb:
> siehe auch:
>
> 
https://forum.mikroe.com/viewtopic.php?f=189&t=75517&sid=2d59a7ce325e150c402ba79686bf6cc4

Die Anzahl an Antworten lässt tief blicken wie qualifiziert
die Mitglieder dieses Forums sind.

von OMG (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

> 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.

: Bearbeitet durch User
von Msd (Gast)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

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.

von kein gast (Gast)


Lesenswert?

"
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!!

von kein gast (Gast)


Lesenswert?

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

von kein gast (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.