Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ATmega i DS1820

swawrz 18 Jul 2005 13:43 1428 2
  • #1
    swawrz
    Level 2  
    Hej

    Chcę zrobić termometr z wykorzystanie DS1820 i ATmega. W moim programie postanowiłem skorzystać z noty AVR300 do obsługi I2C. Ponieważ układu jeszcze nie zbudowałem i na razie piszę program zastanawiam się, czy dobrze wykorzystuję funkcje z AVR300. Chodzi mi o wykonanie pomiaru (tylko jeden układ na linii). Pniżej zamieszczam listing:



    rcall i2c_init; initialize I2C interface
    ldi i2cadr,$CC+i2cwr ; Set skip rom address and write
    rcall i2c_start; Send start condition and address
    ldi i2cdata,$44; Write word address (0x44) - rozpocznij pomiar temp.
    rcall i2c_do_transfer; Execute transfer
    rcall wait_for_end; czekaj na koniec pomiaru
    rcall i2c_stop; Send stop condition
    ldi i2cadr,$CC+i2cwr ; Set skip rom address and write
    rcall i2c_start; Send start condition and address
    ldi i2cdata,$be; Write word address (0xbe) - rozpocznij odczyt
    rcall i2c_do_transfer; Execute transfer uruchom odczyt pamieci
    ldi i2cadr,$CC+i2crd ; Set skip rom address and read
    rcall i2c_rep_start; Send repeated start condition and address
    sec; Set no acknowledge (read is followed by a stop condition)
    rcall i2c_do_transfer; Execute transfer odczyt temp lsb
    rcall i2c_do_transfer; Execute transfer odczyt temp msb
    rcall i2c_do_transfer ; Execute transfer odczyt th user byte
    rcall i2c_do_transfer ; Execute transfer odczyt th user byte
    rcall i2c_do_transfer ; Execute transfer odczyt reserved
    rcall i2c_do_transfer ; Execute transfer odczyt reserved
    rcall i2c_do_transfer; Execute transfer odczyt count remain
    rcall i2c_do_transfer; Execute transfer odczyt count per stopien C
    rcall i2c_do_transfer; Execute transfer odczyt crc
    rcall i2c_stop; Send stop condition


    Jak sądzicie będzie to działać ?

    Pozdr.
    Seb
  • #2
    Masster
    Level 32  
    Układ DS1820 pracuje na magistrali 1-wire a nie na I2C. Temat wielokrotnie poruszany, poszukaj.
  • #3
    swawrz
    Level 2  
    Masster wrote:
    Układ DS1820 pracuje na magistrali 1-wire a nie na I2C. Temat wielokrotnie poruszany, poszukaj.


    Dzieki. Jakoś to mi umknęło.