Hallo, habe ein kleines aber für mich doch sehr schweres Problem. Und zwar möchte ich mit einem ATmega 32 über i2c-Bus mit einem Chipkartenlesegerät http://www.horter.de/i2c/i2c-chipkartenleser/chipkarten_1.html auf eine Chipkarte http://www.horter.de/shop/index.html schreiben und lesen. Dazu verwende ich die i2c-Libery von Peter Fleury. Leider klappt das nicht so ganz wie ich möchte. Habe bei dem Programm in der i2cmaster.h #define Dev24C02 0xA2 auf 0xA0 und in der twimaster.c /* define CPU frequency in Mhz here if not defined in Makefile */ #ifndef F_CPU #define F_CPU 4000000UL #endif /* I2C clock in Hz */ #define SCL_CLOCK 100000L angepaßt. Jetzt steht dort, dass die CPU frequenz in Mhz angegeben werden soll. Entspricht das meiner Oszillatorfrequen? Die Frequenz soll in Mhz angegeben werden. Wenn ich aber mal die Nullen zähle, so ist das doch in Herz angegeben. was bedeutet "UL" hinter den Ziffern? Was bedeutet das L hinter SCL_clockangabe ? Dort bin ich mir auch nicht sicher, welche Frequenz ich angeben soll. Aus dem Datenblatt der Speicherkarte konnte ich keine Frequenz entnehmen. Muß nicht noch irgendwo eine Angabe gemacht werden, dass SCL und SDA auf Port C liegen? Des weieteren habe ich 4,8k Ohm Wiederstände als Pull-Up verwendet. Beim Compilieren werden mir keine Fehler angezeigt. Nach dem Übertragen gehen sofort alle LED´s an und melden halt, dass mein device nicht bereit ist. Weiter komme ich nicht. Hat jemand eine Ahnung, wo mein Fehler bzw. meine Fehler liegen? Habe schon alles möglich ausprobiert, komme alleine allerdings nicht weiter. Danke Euch jetzt schon herzlich für die geleistet Hilfe mfg Hans
Hallo, also die Portangabe brauchst du in diesem Fall nicht, da die Library die Hardware-TWI verwendet (Sourcecode anschauen). Die Angaben der Frequenzen werden in Hz angegeben (auch wenn dort MHz steht). Die SCL_Clock ist hier auf 100kHz eingestellt (eigentlich sollten die meisten i2c-Geräte mit der Geschwindigkeit funktionieren einige gehen sogar bis 400kHz). Könntest du mal den Sourcecode posten? Von welche LED's sprichst du? (Schaltplan?) Falls du eins besitzt, kann man sich mit nem Speicher-Osci mal die Signale auf den Leitungen anschauen.
hallo, der sourcecode ist unter http://homepage.sunrise.ch/mysunrise/peterfleury/avr-software.html#libs zu finden. habe das datenblatt meiner chipkarte mit dem des in peter fleury verwendeten eeprom verglichen, sollte von dort aus auch keine probleme geben, da keine großartigen unterschieden sind. die chipkarte kann auch bis 100kHz, habe ich doch noch im datenblatt gefunden. mit einem ossi kann ich leider nicht dienen. weiß so augenblicklich nicht richtig weiter. mfg hansb
Es nützt natürlich nichts wenn die #define Dev24C02 im Kommentar von i2cmaster.h anpasst werden... Es muss weder an i2cmaster.h noch in twimaster.c etwas angepast werden. Aber du musst natürlich ein eigenes C-Module, dass i2cmaster.h included und gegen twimaster gelinkt ist schreiben, siehe Beispiel in meiner Doku.
Hallo, dass mit dem Kommentar ist mir dann mittlerweile auch aufgefallen, sehr blöd von mir. Aber vom Prinzip her kann ich doch Deine test_i2cmaster.c so weiter verwenden, bis auf, dass die Adresse von meiner Chipkarte angepaßt werden muß. Es ist doch ein voll funktionsfähiges Programm. Durch ret = i2c_start(Dev24C02+I2C_WRITE); wird ret bei mir sofort zu 1 und zeigt mir sofort einen Fehler an. Gruß Hans
Ja das test_i2cmaster.c kann als Basis verwendet werden. Es muss allerdings das makefile.twimaster auf makefile umbenannt werden zum kompilieren.
Wofür brauche ich die .elf datei! Arbeite mit AVR Studio....und beim Copilieren wird dann nach einer .elf datei gesucht ...und diese wird nicht gefunden ....was mache ich falsch?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.