-
-
Neuer Benutzer
Öfters hier
seltsames Verhalten am I2C
Hiho
Ich versuche derzeit das Kompaßmodul cmps03 an das rnmega2560 Board anzuschließen. Unter Verwendung der Beispielsoftware versuche ich die Firmware auszulesen. Dabei habe ich festgestellt, da das Programm nur durch läuft, wenn ich mit der Hand an die I2C-Kabel fasse.
berühre ich nur das SCL kabel gibt mir die Software eine 0 raus
Berühre ich beide Kabel kommt meist eine 255 - mitunter aber auch irgendwas anderes raus.
Jetzt gehe ich mal schwer davon aus, dass es sich hier um irgendein elektronisches Problem handelt - aber ich komme irgendwie nicht weiter.
Die Anschlüsse am Kompassmodul sind:
PIN1: +5V
PIN2: (SCL) an PIN 40 am rnmega 2560 und mit 4,7K an +5V
PIN3: (SDA) an PIN 41 am rnmega 2560 und mit 4,7K an +5V
PIN9: GND
Ich habe das Ganze auch schon mit 10K Widerständen getestet - gleiches Ergebnis. Anschluß an ein Labornetzteil (wegen der Spannungsspitzen ) hat auch nix gebracht.
Irgendwie weis ich grad nicht mehr weiter.
Vieleicht hat ja noch jemand ne Idee - das kann doch eigentlich nicht soo schwer sein
Gruss Liquidus
-
Erfahrener Benutzer
Robotik Einstein
Geh ich richtig, dass das in Bascom geschrieben ist?
Wenn ja: Mit dem ATMega2560 + Bascom + I2C hab ich an den Hardware-Pins auch Probleme. Verwend ich da Software-I2C an anderen Pins, gehts komischerweise.
In C geht die I2C-Hardware problemlos; also scheints ein Problem in Bsacom zu sein. Kann sein, dass das mittlerweile gelöst ist; der letzte Versuch damit ist schon länger her.
-
Erfahrener Benutzer
Robotik Einstein
Hat das Kompassmodul 5 oder 3,3 V?
Gruß Richard
-
Neuer Benutzer
Öfters hier
Hui - das geht ja schnell
@Richard
Das Kompass modul hat 5V und zieht auch korrekt zwischen 20 und 30 mA (ich seh leider nur Ampere mit 2 Nachkommastellen)
@Jaecko
Ja, ich benutze Bascom (stehe mit C irgendwie auf Kriegsfuss)
Wie würde Software I2C funktionieren? Gibts da irgendwo aufschlussreiche Dokus ?
Danke schonmal für die Infos
Gruss Liquidus
-
Erfahrener Benutzer
Robotik Einstein
Software-I2C kann Bascom selber.
Da müsste man einfach mit Config SDA / Config SCL die Pins zuweisen, die man haben will.
(Hatte mit C auch immer "Probleme"; bis ich dann mal nen Displaytreiber mit Bascom und C geschrieben hab und festgestellt hab, dass die C-Version um vielfaches schneller lief)
-
Neuer Benutzer
Öfters hier
Mmmh
ich hab im Programm ja auch die Zuweisung drin...
Config Scl = Portd.0
Config Sda = Portd.1
Nun ist aber d.o und d.1 auch genau der Hardware I2C auf dem Board.
Möglicherweise mögen die sich nicht - da muss ich mal etwas experimentieren.
Ist aber trotzdem seltsam, dass es sich so mit dem "Anfassen" bemerkbar macht - ich würde da als alter Autoschlosser pauschal auf ein Masseproblem tippen - aber mein Meister damals meinte auch schon immer "Der Strom geht seltsame Wege..."
Gruss Liquidus
-
Erfahrener Benutzer
Roboter-Spezialist
liquidus,
solche Geschichten, wie sie Dir mit dem Anfassen passieren, hängen oft mit unausgeglichenen Potentialen zusammen . Wie waren die Widerstände geschaltet, mit denen Du's probiert hast? Es muss je ein Widerstand von SDA nach +5V und von SCL nach +5V (pull-up-Widerstände, ca. 10k) gewesen sein. Sind die Massen des Kompassmoduls und des Boards mit einander verbunden?
mare_crisium
-
Erfahrener Benutzer
Fleißiges Mitglied
hallo, ich habe mir den Schaltplan von dem Board angesehen. Da sind KEINE Widerstaende am I2C Bus. Und bitte - der I2C wurde fuer ON_BOARD Kommunikation entwickelt und war mal 100kHz schnell. Inzwischen wird er manchmal mit 400kHz betrieben!! Also Achtung - je schnell und je laenger die Leitung zu dem I2C Modul um so niederohmiger die Widerstaende. Wir sind mit 2k2 gefahren und dies hat nicht immer ausgereicht. Versuch mal rauszufinden wie schnell die SW ist und bau dir die Widerstaende auf dein Board gegen VCC und verbinde die Massen, da hat der Vorgaenger recht.
Wenn Handauflegen etwas bewirkt - sind kapazitive Effekte - sich aendernte Flanken der Signale - nicht auszuschliessen.
gruss wawa
-
Neuer Benutzer
Öfters hier
Hiho,
so langsam komme ich ans verzweifeln.
Ich hab es jetzt mit anderen Ports versucht => gleiches Ergebnis
2K-Widerstände bringen auch nichts.
Masse ist verbunden - hängt mittlerweile alles am Board.
Einzig die Geschwindigkeit - wie findet man die denn heraus?
Bin mit meinem Latein so ziemlich am Ende
Gruß Liquidus
-
Neuer Benutzer
Öfters hier
Hiho
Vielleicht noch zur Info - die Leitungen vom Board zum Modul sind ca 10cm lang.
Gruß Liquidus
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen