PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C (TWI) 2 Fragen



logikbomb
02.03.2005, 10:52
habe mal ne fragen und zwar es geht um I2C (TWI)
Habe mit dem 90S2313 (10 MHz) und dem PCF8574P versucht ein I2C zu bauen hat leider nicht funktioniert. ](*,)
Jetzt wollte ich wissen ob das mit einem Mega8 (16MHz) ohne den PCF8574 funktioniert oder ob man den dann immer noch braucht ? O:)
Wollte ein EEPROM M24256-B damit ansteuern vieleicht kann mir ja jemand damit helfen oder hat ein paar codeschnipsel dafür 8-[
Habe schon überall geschaut aber es ist mir immer noch nicht klar geworden 8-[

Gerhard
02.03.2005, 12:34
... für den PCF8574 hätte ich hier etwas:
Mußt Du dann für den Mega 16 entsprechend anpassen.

'I2C-Test.BAS: I2C-Beispiel: 7-segm.LED über PCF8574 schreiben
'Hardware: PCF8574
' A0-A2 auf GND 0.0.0 = &H40
'
'-------------------------------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400 'Quarz: 3,6864 MHz
$baud = 9600 'Baudrate zum PC: 9600 Baud
'
Dim I As Byte 'Für temporären Gebrauch Statusbyte
Dim Daten As Byte 'datenbyte für I2C

Config Sda = Portc.4 'ist für I2C erforderlich
Config Scl = Portc.5 'dito

'-------------------------------------------------------------------------------

Const Pcfled = &H40 'LED an PCF8574 ohne A an 0.0.0

'BITMUSTER 7-seg.-LED
'PCF P0 = Segm. A ..... usw. aufsteigend

Const Led_0 = &B11000000 'Bitmuster 0 ungedrehte Logik !!
Const Led_1 = &B11111001 'Bitmuster 1 LED an gemeinsamer
Const Led_2 = &B10100100 'Bitmuster 2 Anode.
Const Led_3 = &B10110000 'Bitmuster 3
Const Led_4 = &B10011001 'Bitmuster 4
Const Led_5 = &B10010010 'Bitmuster 5
Const Led_6 = &B10000010 'Bitmuster 6

'-------------------------------------------------------------------------------

I2cinit 'I2c initialisieren
I2cstart 'Bus starten
I2cwbyte Pcfled 'Addresse Chip senden
I2cwbyte Led_5 'Byte Bitmuster sendeN
I2cstop 'Bus wieder freigeben

End 'end program


Gib mal bei Bascom im Hilfeindex i2cwbyte ein, dann findest Du auch 'ne Menge zum Thema.

Gruß Gerhard

ps.: die Pullups für SDA und SCL habe ich extern in meiner Schaltung !!

logikbomb
03.03.2005, 11:50
ja werde ich mal versuchen :cheesy:

04.03.2005, 09:52
klappt irgendwie nich hat jemand ne schaltplan dafür nur die sachen um den PCF8574 wäre echt nett !!

Gerhard
04.03.2005, 10:35
klappt irgendwie nich hat jemand ne schaltplan dafür nur die sachen um den PCF8574 wäre echt nett !!

.... evtl. hilft Dir dieses weiter:
http://www.g-fischer.de/proto/led_pcf8574.jpg


mfg Gerhard

04.03.2005, 11:27
ja danke das hilft weiter kann mir jetzt noch jemand sagen wie man die adresse bestimmt mit den drei jumpern und ich bin glücklich

Gerhard
04.03.2005, 12:15
ja danke das hilft weiter kann mir jetzt noch jemand sagen wie man die adresse bestimmt mit den drei jumpern und ich bin glücklich

... na denn:
für den pcf.... ohne A:
wenn A0 bis auf A2 auf Ground dann Schreib-Adresse = hex40

wenn A0 auf +5V, A1+A2 auf GND dann Schreibadtr. = hex42

Zum Lesen die jeweilige Addi um 1 erhöhen. Apropros lesen, Du solltest Dir mal das
Datenblatt zum PCF8574 anschauen !!! Dort steht alles drin.

mfg Gerhrad