Atmega über i2c

OP #4526538
Lesenswert?

Hallo,

vielleicht kann mir einer bei unserem  Projekt helfen?
Wir haben 2 Atmega328p für eine Klimaregelung mit Arduinos programmiert 
und wollen diese nun auf einer Platine betreiben.
Der 1. Atmega (Master) bearbeitet das Hauptprogramm ab und der 2.(Slave) 
soll Messwerte übermitteln. Leider funktioniert die I2C- Verbindung ohne 
den Arduino Boards nicht wie erwartet, also gar nicht..
Eigentlich nsind wir davon ausgegangen, dass eine entsprechende LIB 
alles übernimmt ( I2c anything.h)
Müssen vielleicht die FuseBits angepasst werden oder die Baud Raten 
angepasst werden?

Hier der Anfangscode vom Master:

#include <Adafruit_GFX.h>    // Grafik library für den Touchscreen
#include <Adafruit_ILI9341.h> // Hardware-specific library
#include <TouchScreen.h>    //  Touchscreen Library
#include <Time.h>  // Zeit Library
#include <DS1307RTC.h>  //RTC Library
#include <SPI.h>      // SPI Library
#include <EEPROM.h>  //EEProm Library
#include <Wire.h>    //I2C Library
#include <I2C_Anything.h>

Hier der Anfangscode vom Slave:

#include <Wire.h>      // I2C Library
#include <I2C_Anything.h>

#define T_Mess_1  A0  // Temperatur Messfühler 1
#define T_Mess_2  A1  // Temperatur Messfühler 2
#define rH_Mess_1  A2  // Feuchtefühler 1
#define rH_Mess_2  A3  // Feuchtefühler 2
#define Vcc 5.0  //Eingangsspannung
#define MY_ADDRESS 0x20
#define MASTER_ADDRESS 0x10
//const byte MY_ADDRESS = 0x20;
//const byte MASTER_ADDRESS = 0x10;
Gast #4526609
Lesenswert?

> 500 Ohm

Normalerweise nimmt man 4,7k Ohm oder 10k Ohm. Probier das mal.

Habt ihr einen Logic Analyzer oder ein digitales Oszilloskop, damit ihr 
euch mal die Signale an SDA und SCL anschauen könnt?
Gast #4526668
Lesenswert?

Thomas H. schrieb:
> Leider funktioniert die I2C- Verbindung ohne
> den Arduino Boards nicht wie erwartet, also gar nicht..

Ein ATM328p läuft frisch aus der Schachtel mit 1MHz (RC 8MHz und CKDIV8 
Fuse gesetzt), ein Arduino mit Resonator dagegen mit 16MHz

> Eigentlich nsind wir davon ausgegangen, dass eine entsprechende LIB
> alles übernimmt ( I2c anything.h)

Eine Lib kann keine Fuses schreiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren