Atmega88 sendet keine Daten per i2c

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Atmega88 sendet keine Daten per i2c

      Hallo,
      Habe folgendes Problem.
      Ich benutze einen Atmega88 und möchte Daten an den Slave Schicken.
      Ich bin beim Besten willen kein Anfänger aber ich bekomme nicht einmal hin dass die einfachsten befehle wie
      i2cstart etc funktionieren.
      Hab über ein Oszilloskop gesehen das nichts gesendet wird.
      Jetzt kommt der Witz. Wenn ich die SSD1306-i2c OLED Library einbinde funtioniert der i2c Bus aber nur für die OLED Befehle.
      Fange ich wieder an mit i2cstart, i2cwbyte etc. ist wider tote hose.
      Bin schon am verzweifeln.. Habe das doch bei Atmega8 und 32 auch schon des öfteren verwendet und dort hatte ich keine Probleme.
      Ich hänge mal den code an.

      BASCOM-Quellcode: i2c_kommunikation_test1

      1. $regfile "m88def.dat"
      2. $crystal= 8000000
      3. $lib "i2c_twi.lbx"
      4. Config Scl = Portc.5 ' used i2c pins
      5. Config Sda = Portc.4
      6. Config Twi = 400000
      7. enable interrupts
      8. i2cinit
      9. do
      10. i2cstart
      11. i2cwbyte &H78 'address
      12. i2cwbyte &H81 'register
      13. i2cwbyte &HFF 'data
      14. i2cstop
      15. wait 1
      16. i2cstart
      17. i2cwbyte &H78
      18. i2cwbyte &H81
      19. i2cwbyte &H00
      20. i2cstop
      21. wait 1
      22. loop
      Alles anzeigen
    • Die Stack werte werden vom compiler automatisch eingebunden man kann sie bei settings verändern.
      Ich würde gerne ein SSD1306 OLED ansteuern. Das gane hat so angefangen, dass ich mit dem OLED gespielt habe und eigendlich nur die Helligkeit ändern wollte.
      Habe mich gewundert warum das OLED nichts macht und festgestellt (per oszi) das bei den i2c befehlen keine daten ausgesendet werden.
      Hab schon inzwischen auf den Atmega8 gewechselt aber ohne Erfolg
    • Um das geht es nicht das oled funktioniert mit der lib die Bascom anbietet. Der generelle Datenverkehr funktioniert nicht. Schau dir bitte nochmal das Programm oben an. So wie es da steht funktioniert es nicht der atmega sendet keine Daten. Ich habe ein oszi an sda und scl gehängt da ist komplett tote Hose die beiden pins bleiben auf 5V und der atmega ignoriert die i2cstart und i2cwbyte Befehle komplett
    • Nur zum Verständnis für mich.
      Wenn ich die Ssd1306 lib benutze kann ich den datenfluss vom atmega zum Ssd1306 mit dem oszi sehen. (Ich hab was gesehen definitiv) Aber will ich außerhalb der lib ein paar bytes zum Display senden kann ich sie nicht sehen???
      Am Aufbau hat sich nichts geändert ausser saß ich statt lcdat... i2cstart und i2cwbyte benutzt habe (siehe oben) und ja der slave hängt dran und ist konfiguriert
    • I2c braucht doch pullups, die einen Pegel an den Leitungen erzeugen. Fehlen die, dann wird man an den pins nix messen, einmal sind sie tristate (wie nicht da), das andere mal gegen gnd. Auf dem display sind halt die pullups drauf :D
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------