+ Vasta teemale
Näitan vasteid 1 kuni 8 8-st

Teema: i2c slave

  1. #1
    Liige andresv Kasutaja maine on neutraalne
    Liitunud
    08/2004
    Asukoht
    Tartu
    Postitusi
    87

    Algseade i2c slave

    üritan mina siin i2c slave-t oma pic-iga mängida, masterit juba oskan (kuna see kood oli olemas)

    kood on selline, kuid sinna com porti saadetakse suva numbrid
    et kus ma siin puuse panen?
    PIC on 16F627 @ 4MHz
    SDA on RB0/INT
    SCL on RB4

    Kood:
    ;; SL - Slave
    ;;Interupt
            org    0x04                ;This is where PC points on an interrupt
            movwf            TEMP              ;Store the value of w temporarily
            ; check start bit, SDA gets low & SDL is high
            btfss   SL_I2C_PORT, SL_SCL
            goto    iend                ; SDL is low, false interupt
            ; start bit detected
            clrf    InputByte
            movlw   0x08
            movwf   _N                  ; set index to 8
    SCL_Low    btfsc   SL_I2C_PORT, SL_SCL ; wait until SCL gets low
            goto    SCL_Low
    SCL_Hi  btfss   SL_I2C_PORT, SL_SCL
            goto    SCL_Hi
            ; data ready
            btfss   SL_I2C_PORT, SL_SDA
            bcf     STATUS, C
            btfsc   SL_I2C_PORT, SL_SDA
            bsf     STATUS, C
            rlf     InputByte, F  ; i_byte = i_byte << 1 | 0
    
            decfsz  _N, F       ; decrement index
            goto    SCL_Low
    
            movf    InputByte, w
            call    XMIT_RS232
    iend
            bcf     INTCON, 1       ; clear interupt
            movf    TEMP,w          ;Restore w to the value before the interrupt
            retfie                  ;Come out of the interrupt routine
    maki sissel&#252;litamisel tuleb siis selline l&#228;bu
    Kood:
    000000f0: ff 44 ff ff f8 ff ff a3   e1 fd ff f8 3f ff fe 00 
    00000100: ff ff f3 ff ff ff ff ff   22 ff ff cf ff ff ff fe 
    00000110: ff ff e0 7f ff ff ff ff   ff 7f ff ff ff ff ff ff 
    00000120: ff ff ff ff ff ff ff ff   ff ff ff ff ff ff ff ff 
    00000130: ff ff ff ff ff ff ff ff   ff ff ff ff ff ff ff ff 
    00000140: ff ff ff ff ff ff ff ff   ff ff ff

  2. #2
    Liige bloody-orc Kasutaja maine on neutraalne bloody-orc avatar
    Liitunud
    03/2004
    Asukoht
    Tallinn / Mustamäe
    Postitusi
    2.483

    Algseade Re: i2c slave

    Kes too master on kui tohib k&#252;sida?

    arvutiga suheldakse ikka USARTi kaudu e RS232.

  3. #3
    Liige andresv Kasutaja maine on neutraalne
    Liitunud
    08/2004
    Asukoht
    Tartu
    Postitusi
    87

    Algseade Vs: i2c slave

    master on motorola MC68HC05B16 kivi, kes muidu suthleb TDA7318-ga.

    pic sai neile vahele pandud

    projektist rohkem:
    http://www.tevalo.ee/foorum/showthre...217#post228214

    antud proge jupike peaks siis i2c siinilt tulevab baidid arvutisse saatma.
    arvutise info saatmine kasutades usart-i t&#246;&#246;tab igati korrektselt.
    kogu kood:
    http://vunk.ee/~andres/makk.asm

  4. #4
    Liige bloody-orc Kasutaja maine on neutraalne bloody-orc avatar
    Liitunud
    03/2004
    Asukoht
    Tallinn / Mustamäe
    Postitusi
    2.483

    Algseade Re: Vs: i2c slave

    Kuna ma ASM'i ei r&#228;&#228;gi, siis kas ma saan &#245;ieti aru, et sa bitbangid seda infot lihtsalt omale kokku, e ootad &#228;ra mingeid pulsse ja konverdid need arvutile loetavaks jah?
    Sa ikka selle I2C/TWI protokolliga tutvunud oled jah? saadad p&#228;&#228;le iga saadud baiti v&#228;lja ack pulsi jne eks? Loed aadresse &#245;iges j&#228;rjekorras ja kuulad &#245;igeid kanaleid &#245;igel ajal jne.

    Ise tegin just algust selle TWI'ga AVR'i peal ja seal k&#252;ll ma erilisi raskusi ei kohanud. Peaasi, et sul TWI/I2C sagedused klapiksid (selle soovitan v&#228;lja uurida ossi v&#245;i millega iganes) ja edasi on juba suht lapse m&#228;ng sealt need baidid k&#228;tte saada.


    EDIT: soovitan lugeda ATMEGA88 datasheeti. sellel on minu meelest k&#245;ige parem 2 Wire serial interface kirjeldus &#252;ldse koos koodin&#228;idisega nii C's Kui ASM'is. TWI = 2 Wire serial interface = I2C (viimane on microchipi poolt copiraidiga kindlustatud ja seega ATMEL v&#228;ldib seda s&#245;na)
    http://www.atmel.com/dyn/resources/p...ts/doc2545.pdf
    Viimati muutis bloody-orc : 08-05-07 kell 22:24

  5. #5
    Liige andresv Kasutaja maine on neutraalne
    Liitunud
    08/2004
    Asukoht
    Tartu
    Postitusi
    87

    Algseade Vs: i2c slave

    Kuna ma ASM'i ei r&#228;&#228;gi, siis kas ma saan &#245;ieti aru, et sa bitbangid seda infot lihtsalt omale kokku, e ootad &#228;ra mingeid pulsse ja konverdid need arvutile loetavaks jah?
    ma saan ka sama moodi aru

    Nagu ikka avastatakse viga peale seda kui teiste k&#228;est n&#245;u on k&#252;situd.
    Viga oli selles, et SCL juhe polnud pic-iga &#252;henduses - jumper oli lahti &#252;hendatud ning siis saadetigi arvutisse &#245;hku.
    Eks see ole kui &#245;htuti asjaga tegeleda.

    Selle protokolliga ikka tutvunud olen.

    ACK-i saatmist pole veel teinud, igatahes &#245;ige aadressi bait j&#245;udis n&#252;&#252;d ilusti arvutisse. Eks ma homme katsetan edasi.
    Viimati muutis andresv : 08-05-07 kell 22:35

  6. #6
    Liige bloody-orc Kasutaja maine on neutraalne bloody-orc avatar
    Liitunud
    03/2004
    Asukoht
    Tallinn / Mustamäe
    Postitusi
    2.483

    Algseade Re: Vs: i2c slave

    nagu sa sellest datasheedist n&#228;ed, mis ma soovitasin &#252;leval, siis seda ACK'd peab saatma, et I2C &#252;le&#252;ldse t&#246;&#246;taks kasv&#245;i &#252;he baidini. Kogu jama l&#228;heb muidu lolliks &#228;ra ja siis pole sellest mingit kasu
    See ongi selle bit bangimise ja ise kirjutamise juures see k&#245;ige hullem osa, et sul tuleb mingeid lolle pulsse saata ja meeles pidada... sellep&#228;rast tasubgi alati valida kivi, millel on ka hardware support olemas sellele protokollile. siis on lihtsalt registritesse kirjutamine ja nende olekute kontrollimine, mitte midagi keerulist sellega saaks isegi v&#245;ibolla ASM'is hakkama

  7. #7
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: i2c slave

    Bit-banging on samuti võimalus ja meeles peab prose ise Kui sa ainult kuulad vestlust pealt, ei tohi mingeid ACK-e ega NACK-e saata, ajad vestluse segi. Vastab ainult "päris" slave. Kui aga esined ise slavena, on muidugi teine asi.
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

  8. #8
    Liige jan Kasutaja maine on neutraalne jan avatar
    Liitunud
    01/2003
    Asukoht
    Tallinn
    Postitusi
    485

    Algseade Vs: Re: Vs: i2c slave

    Tsitaat Esmalt postitatud bloody-orc poolt
    TWI = 2 Wire serial interface = I2C (viimane on microchipi poolt copiraidiga kindlustatud ja seega ATMEL väldib seda sõna)
    http://www.atmel.com/dyn/resources/p...ts/doc2545.pdf
    OT: nimetust I2C kasutab siiski Philips (kui protokolli leiutaja).

+ Vasta teemale

Teema informatsioon

Antud teemat sirvivad kasutajad

Hetkel sirvib antud teemat 1 kasutaja(t). (0 liiget ja 1 külalist)

     

Sarnased teemad

  1. Register slave kettal
    KEM poolt foorumis Tark- ja riistvara foorum
    Vastused: 2
    Viimane postitus: 13-11-06, 21:03
  2. I2C ja SPI slaved samadel pinnidel... ?
    felch poolt foorumis Mikroprotsessorite foorum
    Vastused: 8
    Viimane postitus: 15-08-06, 21:56
  3. I2C mure: ATmega8 ja TC1321
    andreie poolt foorumis Mikroprotsessorite foorum
    Vastused: 6
    Viimane postitus: 08-07-05, 16:41
  4. I2C juhtimine
    Lembit2 poolt foorumis Mikroprotsessorite foorum
    Vastused: 5
    Viimane postitus: 26-01-05, 13:18
  5. I2C LCD juhtimine
    voime poolt foorumis Mikroprotsessorite foorum
    Vastused: 4
    Viimane postitus: 30-12-04, 17:55

Lemmikud

Foorumi reeglid

  • Sa ei või lisada uusi teemasid
  • Sa ei või lisada vastuseid
  • Sa ei või lisada manuseid
  • Sa ei või muuta oma postitusi