Forum: Mikrocontroller und Digitale Elektronik Bekomme Programm mit i2C Portexpander nicht zum laufen


von Christoph M. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe folgende Hardware (von myAVR):

- mySmartUSB MK2 (Atmega328 mit 20MHz Quarz)
- mySmartUSB (USB programmer)
- myTWI PortExpander mit PCA9555

- Bascom Compiler v2.0.8.0

Das Programm von Stefan Hoffmann bekomme ich nicht zum laufen.

- Die I2C-Pins SDA und SCL sind mit PortC.4 und 5 verbunden.
- Adresse des Expanderboards ist 000
- Pullup-Widerstände (10k) an SDA und SCL-Pins sind gegen + gesetzt.

Mache ich hier einen Fehler...?

Besten Dank für Hilfe !

von Linus (Gast)


Lesenswert?

Christoph M. schrieb:
> Das Programm von Stefan Hoffmann bekomme ich nicht zum laufen.
Wer ist Stefan Hoffmann?

> - Adresse des Expanderboards ist 000
Im Programm werden aber 0x40 und 0x41 verwendet.

> - Pullup-Widerstände (10k) an SDA und SCL-Pins sind gegen + gesetzt.
Kleinere wie 4,7k helfen manchmal.


> Mache ich hier einen Fehler...?
Nimm dein eigenes Programm.

von Paul B. (paul_baumann)


Lesenswert?

Christoph M. schrieb:
> mySmartUSB MK2 (Atmega328 mit 20MHz Quarz)

Dann mußt Du im Quelltext auch diese Werte eintragen. Da steht noch ein 
Atmega8 mit 1MHz drin.

Linus schrieb:
>> Das Programm von Stefan Hoffmann bekomme ich nicht zum laufen.
> Wer ist Stefan Hoffmann?

Schwierig...
Wer könnte das sein, wenn sein Name im Quelltext steht?
;)

MfG Paul

von Linus (Gast)


Lesenswert?

Paul B. schrieb:
> Linus schrieb:
>>> Das Programm von Stefan Hoffmann bekomme ich nicht zum laufen.
>> Wer ist Stefan Hoffmann?
>
> Schwierig...
> Wer könnte das sein, wenn sein Name im Quelltext steht?
> ;)

Danke. Eine Antwort von Paul Baumann.

von Christoph M. (Gast)


Lesenswert?

Hallo,

zunächst einmal Danke für die Anregungen.

Der Name: s. Hoffmann ist Autor des Buches "Einfacher Einstieg in die 
Elektronik mit ATMEL AVR Mikrocontrollern"
ISBN: 9783839184301

Ich hatte ein Beispiel aus diesem Buch genommen, um das I2C-Thema besser 
zu verstehen.
Prinzipiell hast Du Recht damit besser ein eigenes Programm zu nutzen.
Aber zum ersten Probieren kann man auch mal abgucken ;-)

Ich werde jetzt mal Deine Hinweise beachten und dann schauen wir mal....

Besten Dank noch einmal !

von Christoph M. (Gast)


Lesenswert?

Adressen sind aus meiner Sicht richtig.
Hatte mich aber falsch ausgedrückt.

Adressen sind   Schreibadresse &B01000000 = &H40
                Leseadresse.   &B01000001 = &H41

Der Controllertyp war fälschlicherweise noch im Text drin.
Habe diesen jedoch im Quelltext als  m328pdef.dat mit 20MHz drin.

von Gerhard O. (gerhard_)


Lesenswert?

Vornewegs, ich habe mit BASCOM keine praktische Erfahrung. Ich nehme 
aber an, daß Dein Test Programm lauffähig ist.

Vielleicht ist der BASCOM Compiler TWI Bibliothek nicht imstande einen 
328 uC richtig  zu initialisieren und die TWI Treiber passen nicht.

Mit den Erfahrungen die ich sonst mit TWI habe, schlage ich Folgendes 
vor:

1) Reduziere die Pullups auf 3.3 KOhm; 10K sind zu hoch.

2) wenn Du einen Oszi hast, monitor die SCL und SDA Leitungen.

3) am SCL müßte man nun 9 von Hoch auf nieder gehende Impulse sehen ( 
Ist im Datenblatt schematisch gezeigt.)

Wenn sich überhaupt nichts tut, dann stimmt irgendetwas mit dem Program, 
bzw. der uC Initialisierung nicht. Kann Dir aber nicht damit helfen weil 
ich mit BASCOM noch nie gearbeitet habe.

Sollte SCL und SDA aktiv sein, dann mußt Du nun untersuchen ob vom 
PCA9555 ein ACK Antwort im Bereich des 9. clock Impuls kommt. Wenn 
nicht, reagiert der PCA9555 aus einem noch unbekannten Grund nicht. 
(auch wenn das jetzt blöd klingt, messe mit dem DMM nach ob die Logik 
Pegel der A0-2 Anschlüße tatsächlich auf Null gesetzt sind. ) es gilt 
hier wie immer "Trau, schau, wem". Nimm nichts als gegeben hin. Es gibt 
DIP Schalter die machen je nach Beschaltung nicht unbedingt "0/1". Null 
ist manchmal Vdd Pegel.

Normalerweise, solange die TWI Treiber und uC Initialisierung stimmt, 
funktionieren, macht TWI wenig Ärger. Den PCA955x habe ich schon oft in 
der Arbeit verwendet und haben immer auf Anhieb funktioniert.

Hoffe, dass es möglicherweise hilfreich war,
Gerhard

P.s. Auf welchem uC lief Hoffmanns Schaltung?

: Bearbeitet durch User
von Christoph M. (Gast)


Lesenswert?

Vielen herzlichen Dank für die umfassende Antwort !

Zum letzten Satz: Hoffmanns schaltung lief auf der gleichen Hardware, 
allerdings mit einem Atmega 8 mit 1MHz.

Ich probiere jetzt erst einmal Deine Ratschlge aus.

Danke + Gruss

Christoph

von Gerhard O. (gerhard_)


Lesenswert?

Christoph M. schrieb:
> Vielen herzlichen Dank für die umfassende Antwort !
>
> Zum letzten Satz: Hoffmanns schaltung lief auf der gleichen Hardware,
> allerdings mit einem Atmega 8 mit 1MHz.
>
> Ich probiere jetzt erst einmal Deine Ratschlge aus.
>
> Danke + Gruss
>
> Christoph

Viel Glück bei der Fehlersuche!

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
Noch kein Account? Hier anmelden.