-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Mein I2C Logger-Problem

  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554

    Mein I2C Logger-Problem

    Anzeige

    Hallo alle,

    mein I2C-Logger legt eine bestehende, funktionierende I2C-Verbindung lahm, sobald er (heiß oder kalt) zugeschaltet wird. Die I2C-Verbindung ist mein erstes, der Sniffer mein zweites I2C-Projekt - ich habe also s..wenig Erfahrung.

    Die bestehende Verbindung geht von einem BMA020-Steckbrettaufbau an eine Experimentierplatine mit mega168/20 MHz und LCD, Aufbau siehe hier. Dieser Aufbau zeigt sauber, glaubwürdig und zuverlässig Messwerte und Statusbytes am Display, die Modi "messen" und "Stati melden" lassen sich problemlos schalten. Dieser Aufbau und die unten beschriebene Platine sind getrennt mit Akkublocks versorgt, GND ist verbunden (testweise auch offen mit gleichem Misserfolg).

    Der Logger stammt aus dieser Bauanleitung, realisiert mit tiny2313/16 MHz auf einer Experimentierplatine. Ports des USI und des Software-UART wurde dem t2313 angepasst. Die Ausgabe erfolgt über eine USB-Verbindung mit FTDI-Chip, Software-UART über PB1, 115k2 Bd, Terminal v1.9b - by Br@y. Die FIFO beim tiny musste ich von 256 Byte auf 64 verkleinern. Der Anmeldestring wird sauber übertragen. Vermutlich kneifen diese Zeilen:

    Code:
    Auszug aus definitionen vor main.h
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define	SCL		SBIT( PORTB, 7 )
    #define SCL_DDR		SBIT( DDRB, 7 )
    #define	SCL_PIN		SBIT( PINB, 7 )
    #define	SDA		SBIT( PORTB, 5 )
    #define	SDA_DDR		SBIT( DDRB, 5 )
    #define	SDA_PIN		SBIT( PINB, 5 )
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    Auszug aus I2Cs.c
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void init_i2c( void )
    {
      SCL = 1;
      SCL_DDR = 1;				// force busy waiting
      SDA = 1;
      SDA_DDR = 0;				// listen only, no ACK, no data
      USICR = 1<<USIWM1^1<<USIWM0;		// I2C, no counter
    }
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Beim Start mit zugeschaltetem Logger kann ich nicht mal ein einziges Statusbyte lesen - der BMA-Messaufbau verweigert offensichtlich den Lesevorgang eines Bytes und bleibt hängen. Bei laufenden BMA-Messaufbau wird eine laufende Messung nach Zustecken von SCL oder SDA des Tiny13 unterbrochen - es werden im Display keine Zeichen mehr angezeigt (die Anzeigezeile "Werte" wird bei mir stets zwischen zwei Messvorgängen gelöscht).

    Kann bitte jemand helfen? Danke im Voraus.
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Hat jemand von Euch schon den I2C-Logger mit dem Lab von christian und der zugehörigen Firmware ingang bekommen? Ich kann zwar die Firmware für den Logger ins Lab flashen, aber das Tool kann ich danach nicht so öffnen, dass ich den Logger ansprechen kann - vielmehr, dass der Logger MIR erzählt, was auf den Leitungen los ist.

    Getestet habe ich das mit zwei verschieden alten, als Flashtool sauber arbeitenden Labs. Dazu verschiedene Lab-Tools, sprich verschiedene Versionen der Firmware, dazu WinXPpro mit SP3, auch mit einem Notebook-Win7/32. Jedes Mal wars für die Tonne.

    Zweite Frage: hat jemand hier schon mal einen I2C-Sniffer gebaut/gekauft/betrieben ?
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Mein Versuch, die I2C-Kommunikation mit einem Controlleraufbau mitzuschneiden läuft einfach nicht, siehe oben. Da ich nur ein analoges Oszilloskop habe (und nicht etliche Hunderter für einen komfortablen Logikanalysator ausgeben möchte) kann ich auch nicht erkennen, was auf dem Bus los ist. Das Lab funktioniert übrigens bei Christian bestens, bei mir garnicht *wärfastzumheulen*.

    Wie horcht ihr in den I2C-Bus? Horcht überhaupt jemand rein mit einer Hobbylösung? Es gibt verschiedene I2C-Tools im Handel. Kann ich mit denen auch "mithören" ? Welche funktionieren als Testausrüstung problemlos - notfalls eben nicht als Logger/Sniffer ?

    Sorry für die penetrante Fragerei und danke für Antworten.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Bei Elektor gibt es den I2C-Analiser (Erschienen März 200. Habe aber keine Erfahrung mit dem.

    MfG Hannes

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Ich habe mit der neuesten Software den I2C-Logger getestet.
    Das Ergebnis war nicht sehr berauschend.
    Mit I2C Takt 100kHz kommen nur Fragmente, man sieht das die Kommunikation läuft.
    Heraus lesen kann man aber kaum was.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Danke für eure Antworten, danke Hubert für Deinen Erfahrungsbericht (... Kommunikation läuft ...).

    Mittlerweile bin ich seit diesem Wochenende ein bisschen weiter. Christian und ich haben etwas Zeitmangel, trotzdem haben wir einiges geklärt. Mein Lab neuerer Bauart, etwa 1 Jahr alt, funktioniert, mein "altes", etwa zweieinhalb Jahre, tuts nicht. Die Übertragungsgeschwindigkeit bei meinem Test-Aufbau mit dem BMA020 kann ich nicht fixieren/feststellen/messen (wie macht man das ????). Ein Test ergibt beim Loggen mit 1 kHz internem Takt am Controller ein deutliches Ergebnis (Start- und Stopbits der Reihe nach), aber übertragene Werte werden nicht angezeigt. Das Problem dürfte die nicht sehr hohe Übertragungsgeschwindigkeit der USB-Softwarelösung des Lab sein. Aber extra Geld für ein Gerät will ich nicht ausgeben - mal sehen, ob ich PeterDanneggers Logger noch ans Laufen bekomme (das haben ja etliche Hobbykollegen geschafft - keine Ahnung wo es bei meinem Aufbau klemmt - möglicherweise ist der Quarztakt der Bösewicht).
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Also bei mir funktionieren alle Ausführungen des Lab gleich.
    Wenn ich im Programm einen 12MHz Quarz eingebe, aber nur einen 3MHz stecke, die Taktfrequenz auf 25kHz stelle, tatsächlich sind es dann nur etwa 6kHz, dann ist das Ergebnis fast brauchbar.
    Es gibt dann nur ganz wenig Fehler.
    Was ist das für ein Logger von Peter Dannegger, hast du einen Link?
    Wäre interessant wenn er einfach zum nachbauen ist.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Hallo Hubert.G,

    das ist ja ein lustiges Takt-ieren. Muss ich mal ausprobieren.

    Den Dannegger-Logger hatte ich zuerst auf meiner Experimentierplatine mit einem 2313/20MHz und danach mit einem tiny85 auf einem Steckbrett aufgebaut. Der erste Versuch auf meiner Experimentierplatine mit dem 2313/20 MHz lief genauso schlecht wie am Steckbrett mit einem tiny85/16MHz. Ohne sinnvolle Funktion ausser der Anmeldung über die Software-UART und dem Stoppen des Datenverkehrs am I²C-Bus. Ich muss mir PeterD´s krummen Quarzwert besorgen und es dann nochmal probieren, denn es gibt ja etliche erfolgreiche Nachbau-Berichte. Den Link zu seinem Logger-Tread hatte ich ja schon eingangs genannt. Der Hickhack am Ende dieses Treads hatte zu einer separaten Fortsetzung geführt mit den weitergehenden Diskussionen.

    Viel Erfolg wünsche ich Dir beim Nachbau - (schon aus reinem Eigennutz - vielleicht fällt für mich dabei etwas ab).
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Hallo Joe
    Den Link oben hatte ich wohl übersehen.
    So gut ich das mikrokontoller.net finde, so sehr geht mir das dortige Hick-Hack auf den Geist.
    Ich verwende grundsätzlich diese krummen Quarze wenn ich mit UART oder Timer arbeite. Die Taktfrequenz lässt sich schöner teilen.
    Ich werde das ganze mal aufbauen, testen und gib dir dann hier Bescheid über den Erfolg.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    So, die Version mit dem C-File funktioniert einwandfrei.
    Probleme hatte ich nur, da ich ohne MAX232 das Signal nicht invertierte.
    Das zweite Problem hatte ich, da ich einen ununterbrochenen schreib/lese zugriff auf den Slave machte.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •