mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sinnhaftigkeit: i2c mit crc absichern ?


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"irgendwie" (hab leider brauchbares Oszi) habe ich manchmal 
Übertragungsfehler auf meinem I2C-Bus. Der Takt beträgt 100Khz, die 
Länge über verdrillte Litze etwa 30cm (Ist das zu viel ?).

Wieviel Sinn macht es, eine CRC-Prüfsume mit einzubauen ?
Die Fehler treten nur manchmal auf.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sollte heissen: KEIN brauchbares Oszi :-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, CRC klingt gut.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher, daß kein Programmier- / Timingfehler voliegt? Wenn Dir CRC 
hilft, Fehler zu erkennen, dann kannst Du´s ja ruhig mit einbauen. 
Besser ist jedoch, Fehler zu vermeiden. 30cm Kabel auf I2C sind 
keinesfalls schon zu viel.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze Routinen aus den Atmel-Application-Notes, ich hoffe 
zumindest dass diese Fehlerfrei sind :-)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Najaa - ein bisserl genauer drüberschauen hat ja noch nicht geschadet. 
Ich denke nicht, daß es unbedingt an mistigem Layout liegt, oder? 
Nötigenfalls kannst Du ja mal die beiden PullUps am Bus von 10k auf 4k7 
verkleinern und gucken, ob es besser wird.

Autor: John Small (linux_80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was meinst Du mit verdrillte Litze, welche Litzen sind miteinander 
verdrillt ?
Ein Flachbandkabel mit Gnd zwischen SDA und SCL hat bei 30cm keine 
Probleme, auch bei 400kHz.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
30 cm ist nicht zuviel. Elektrisch stimmt alles? Pull-ups vorhanden und 
korrekt dimensioniert (http://www.mcc-us.com/i2cHowToUseIt1995.pdf)?

Tröste dich: Ein Oszi ist nicht das ultimative Tool zum I2C-debuggen 
(auf was willst du triggern und wie lang sind deine I2C Telegramme...). 
Besser wäre ein Logikanalyzer mit I2C Protokollhandling. Und das ist 
nicht mehr preiswert.

Tipp: In der Artikelsammlung zu I2C ist ein Link zu Cheapi2c. Das 
ist ein brauchbarer I2C-Sniffer, der Linux (irgendeine LiveCD reicht) 
und eine parallele Schnittstelle braucht. Zu den 30 cm: Beim Sniffen 
habe ich mit Cheapi2c den Datenverkehr zwischen einem µP und einem EPROM 
mitgeschnitten - mit einem 2m Druckerkabel zum Sniffer-PC.

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zumindest die AppNote für I2C von Atmel in Assembler hatte Fehler! 
Einfach so sollte man die nicht als korrekt ansehen.

Gruß
Fabian

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, kann schon am "Layout" (=Lochraster) liegen, ich weiss es nicht.
Der Bus ist etwa zu 10% ausgelastet, und es treten 4-5 Fehler in 10 
Minuten auf. Ist nicht wirklich viel..

Ich kann aber 1. keine Fehler brauchen :-) und 2. Würde ich schon gern 
bei den 100Khz bleiben.
Einige Fehler (Arbitration Lost usw) werden ja von I2C-Protokoll schon 
abgefangen, aber diese treten komischerweise nie auf.

Die Widerstände sind schon 4k7. Kann man noch weiter heruntergehen ?
Der Master und alle Slaves sind AVR's.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verdrillt sind SCL, SDA und Masse.

@Stefan: Danke für die Tips und den Link, werde ich mir mal anschauen !

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cheapi2c gibt es leider nicht mehr.
Aber da ist auch ein Link zu einem Forumsbeitrag, der sehr interessant 
ist.
Es geht dort um einen Sniffer auf ATMega8 Basis.
Wenn ich nicht anders weiterkomme, muss ich mir den mal bauen.



2007-12-17

Time has come to close the door on the 2002-3 Xbox work -- with 2008 
approaching and the various changes in laws over the last year and more 
to be expected.

Although the work was done before the EUCD was enacted, the legal 
landscape is changing all the time, and I don't have a way to assess how 
it stands now, or going on, to keep serving it. Since it is all pretty 
old information anyway now (my Xboxes have been in a landfill for some 
time) it's no great loss. Even the tools like Cheaptag are deprecated 
because they require Parallel printer ports which no longer feature on 
modern PCs.

Anyway -- Happy Christmas and New Year to everyone :-)

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich betreibe hier I2C mit 33kHz auf 3m Telefonleitung in LKWs und 
Traktoren.
Das macht Spaß !
Ich habe jetzt auch eine CRC-16 eingeführt - Fehler sehe ich trotzdem, 
die sind aber nicht ganz so schlimm bei mir (reine Anzeige).

Bei 30cm sehe ich keine Chance für elektronische Fehler!
Die Pull-Ups kannst Du auf 2,2k ändern, aber das wird nicht wirklich 
viel bringen.
Hast Du evtl. einen Bug in der Software ?

Ich nutze den Po.Scope als Logicanalysator und I2C-Analyzer zum 
Debuggen. Ist schon nicht schlecht und sehr preiswert.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist schade. Auf der Seite waren ein paar interessante Sachen auch 
ausserhalb XBox-Hacking drauf. Aber ich verstehe auch den Autor.

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefb,


und Du bist ganz sicher, daß Du jetzt keinen Joint in der Hand hast ?
Wie erklärt sich sonst Dein Posting ?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht einfach mal die Gegenprobe machen:
- Frequenz so weit senken wie's geht
- Leitung so weit kürzen wie's geht
Wenn dann die Fehler weniger werden hat die Schaltung zumindest eine 
Teilschuld. Bei so seltenen Fehlern ist vielleicht auch die andere 
Richtung interessant. Einfach mal die I²C-Frequenz erhöhen und schauen, 
ob dann nur noch Datenbrei ankommt.

Kann es sein, dass du dir von den Platinen hochfrequente Störungen 
einfängst? Ist ohne Oszi aber echt doof :(

Ach ja... rüttel mal ander ganzen Apparatur während des Tests... wenn 
das was am Fehlerbild ändert weißt du ja, wo du suchen musst ;) Denke 
nicht, dass das was bringt, kostet aber nur eine Minute und spart im 
Erstfall mehrere Stunden.

Gruß

Kai

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd Rüter wrote:
> Hallo Stefb,
> und Du bist ganz sicher, daß Du jetzt keinen Joint in der Hand hast ?
> Wie erklärt sich sonst Dein Posting ?

Rauchen tue ich nicht. Aber sind von Wasabi Coated Green Peas solche 
Nebeneffekte bekannt? Von denen habe ich eine halbe Dose intus.

Autor: John Small (linux_80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und auch mal ohne verdrillen probieren, denn SCL könnte SDA 
beeinflussen, und schon kommt ein andres Bit raus.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Tiny 80 (linux_80)

>Und auch mal ohne verdrillen probieren, denn SCL könnte SDA
>beeinflussen, und schon kommt ein andres Bit raus.

Wen der Slave halbwegs I2C konform ist, dann muss er Pulse kleiner als 
50ns ignorieren. Ich tippe mal auf Masseprobleme, unsaubere 
Versorgungsspanung oder last but not least einen Programmfehler. GGf. 
auch Störpulse von starken geschalteten Lasten, Relais, Motoren etc.

MFG
Falk

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @alle

danke nochmal für die vielen tollen Tips.

Habe das Kabel gegen ein geschirmtes Dreiadriges ausgetauscht und jetzt 
ist
es prima.

Schuld war mein PC-Monitor, der Master lag unmittelbar daneben. Ein 
Stück davon entfernt waren die Fehler verschwunden. Mit dem neuem Kabel 
klappt es aber auch so.
Der Monitor scheint ein richtiger Stahlemann zu sein :-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, nachdem dem Lesen aller Beträge wäre das auch der nächste noch nicht 
gemachte Vorschlag gewesen, Neonröhren oder Schweißtrafo an/aus/an/aus 
und schauen ob die Fehler auftreten...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.