mikrocontroller.net

Forum: Compiler & IDEs Anfängerproblem mit ic2 -> TWI


Autor: Hans B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/chipk... 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

Autor: trialanderror (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hans B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

der sourcecode ist unter
http://homepage.sunrise.ch/mysunrise/peterfleury/a...
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

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hans B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das test_i2cmaster.c kann als Basis verwendet werden. Es muss
allerdings das makefile.twimaster auf makefile umbenannt werden zum
kompilieren.

Autor: Bernd Stuppler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo muss den das makefile stehen ....Headerfiles?...? oder wo?

Autor: Bernd Stuppler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.