Post on 04-Jun-2015
HCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek
II22CC
Wat kun je ermee?Wat kun je ermee?
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
Het conceptHet concept
Patent PhilipsPatent Philips Afkorting : inter-ic bus: i*i*CAfkorting : inter-ic bus: i*i*C Seriële bus, bi-directioneel Seriële bus, bi-directioneel Standaard voor trage communicatie (10 Standaard voor trage communicatie (10
kbyte/s)kbyte/s) Twee leidingen: SDA (serial data) en SCL Twee leidingen: SDA (serial data) en SCL
(Serial Clock)(Serial Clock) Master en slave principeMaster en slave principe Elke component adresseerbaarElke component adresseerbaar
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
Het protocolHet protocol Zodra de bus vrij is, kan een master de bus in beslag Zodra de bus vrij is, kan een master de bus in beslag
nemen door een startconditie te genereren.nemen door een startconditie te genereren. Het eerste byte dat nu vérzonden wordt, bevat het 7-bits Het eerste byte dat nu vérzonden wordt, bevat het 7-bits
IC-adres samen met het R/W-bit. Is het geadresseerde IC op IC-adres samen met het R/W-bit. Is het geadresseerde IC op de bus aanwezig, dan reageert het met een ACK-puls. De de bus aanwezig, dan reageert het met een ACK-puls. De data-uitwisseling kan daarna beginnen.data-uitwisseling kan daarna beginnen.
Was de R/W-puls '0', dan stuurt de master data naar de Was de R/W-puls '0', dan stuurt de master data naar de slave totdat hij geen ACK-puls meer ontvangt of alle data slave totdat hij geen ACK-puls meer ontvangt of alle data verzonden is. Was de R/W-puls ' 1', dan genereert de verzonden is. Was de R/W-puls ' 1', dan genereert de master klokpulsen gedurende welke de slave zijn data kan master klokpulsen gedurende welke de slave zijn data kan verzenden. Na ieder ontvangen byte genereert de master verzenden. Na ieder ontvangen byte genereert de master (deze is nu ontvanger) een ACK-puls. (deze is nu ontvanger) een ACK-puls.
Tot slot kan de master de bus weer vrij maken door een Tot slot kan de master de bus weer vrij maken door een stopconditie te genereren. stopconditie te genereren.
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C implementatie C implementatie
1. hardwarematig 1. hardwarematig
2. via een microcontroller 2. via een microcontroller
3. simulatie3. simulatie
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C implementatieC implementatie1. hardwarematig1. hardwarematig
i2c interface tussen 8 bits databus en i2c bus:i2c interface tussen 8 bits databus en i2c bus:
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C implementatieC implementatie2. microcontroller2. microcontroller
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C implementatieC implementatie3. simulatie3. simulatie
Public Function I2CInit() SCL=1 SDA=1End Function
Public Function I2CStart() SDA=0 SCL=0End Function
Public Function I2CStop() SCL=0 SDA=0 SCL=1 SDA=1End Function
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C implementatieC implementatie3. simulatie3. simulatie
Public Function I2CSchrijf(waarde As Byte) As BooleanPublic Function I2CSchrijf(waarde As Byte) As BooleanDim Bitwaarde, n, i As ByteDim Bitwaarde, n, i As Byte I2CSchrijf = TrueI2CSchrijf = True Bitwaarde = 128Bitwaarde = 128 For n = 1 To 8For n = 1 To 8 If (waarde And Bitwaarde) = Bitwaarde ThenIf (waarde And Bitwaarde) = Bitwaarde Then SDA=1SDA=1 Else Else SDA=0 End If SDA=0 End If SCL=1SCL=1 wacht (1) ' Even wachten..wacht (1) ' Even wachten.. SCL=0SCL=0 'integer deling \ = div operator in pascal:'integer deling \ = div operator in pascal: Bitwaarde = Bitwaarde \ 2Bitwaarde = Bitwaarde \ 2 Next nNext n SDA=1SDA=1 SCL=1SCL=1 wacht (1) ' Even wachten..wacht (1) ' Even wachten.. If cts = 1 Then I2CSchrijf = FalseIf cts = 1 Then I2CSchrijf = False rts (0) ' SCL=0rts (0) ' SCL=0End FunctionEnd Function
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C interfaceC interfaceVoorbeeld: VBprojects\i2ctest\i2ctest.basVoorbeeld: VBprojects\i2ctest\i2ctest.bas
I2C bus via I2C bus via seriële poort: seriële poort:
SDA
SCL
6k8
I2C bus via de seriële poort
Z5.1 Z5.1
6k8
GND
CTS
DTR
RTS
GND
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C interfaceC interface
I2C bus via I2C bus via USB:USB:
CY7C63001A
SCL
SDA
I2C bus via USB poort
P0.0 P0.1 P0.4
USB
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C interfaceC interfaceVoorbeeld VBprojects\usbi2c\usbi2c1Voorbeeld VBprojects\usbi2c\usbi2c1
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C interfaceC interfaceVoorbeeld VBprojects\usbi2c\usbi2c1Voorbeeld VBprojects\usbi2c\usbi2c1
I2C bus via I2C bus via USB:USB:
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C interfaceC interfaceVoorbeeld: BascomVoorbeeld: Bascom
I2C bus via I2C bus via de microcontroller:de microcontroller:
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C interfaceC interfacePDAPDA
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C ComponentenC Componenten
PCFB200: spraaksynthesizerPCFB200: spraaksynthesizer PCFB566: universele LCD-driverPCFB566: universele LCD-driver PCF8570: statische RAM PCF8570: statische RAM PCF857OC: statische RAM PCF857OC: statische RAM PCF8572: EEPROM (12BxB) PCF8572: EEPROM (12BxB) PCF8573: real-time-klok-kalenderPCF8573: real-time-klok-kalender PCF8574 remote 8-bit IO-expander PCF8574 remote 8-bit IO-expander
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C ComponentenC Componenten
PCF8579: LCD-driver voor dotmatrix PCF8579: LCD-driver voor dotmatrix PCF85B2A: EEPROM (256xB)PCF85B2A: EEPROM (256xB) PCF85B3: klok-kalender met RAM PCF85B3: klok-kalender met RAM PCF8591: 8-bit A/D- en D/A-conv.PCF8591: 8-bit A/D- en D/A-conv. SAAIO64: 4-digit LED-driver SAAIO64: 4-digit LED-driver SAAI136: PCM-audio-interface SAAI136: PCM-audio-interface SAAI300: tuner-schakelcircuit SAAI300: tuner-schakelcircuit
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C ComponentenC Componenten
SAA5243145: computerbestuurd teletekst-SAA5243145: computerbestuurd teletekst-circuit circuit
TEA6000/6100: FMtuner TEA6000/6100: FMtuner TEA6300(T)/10T: fader-geluidscircuit TEA6300(T)/10T: fader-geluidscircuit TEA6330T: regelversterker SAA9020TEA6330T: regelversterker SAA9020
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C ToepassingenC Toepassingen
1. I1. I22Ckompas (www.zenot.nl) Ckompas (www.zenot.nl)
2. Koelkast (www.zenot.nl) 2. Koelkast (www.zenot.nl)
3. Stappenmotor controller 3. Stappenmotor controller (www.zenot.nl)(www.zenot.nl)
HCC PC gebruikersgroep: PracticalHCC PC gebruikersgroep: Practical Electronics, 26-02 Maarssenbroek Electronics, 26-02 Maarssenbroek
II22C ToepassingenC Toepassingen
Testbordje koelkast: Testbordje koelkast: