I2C - kilka pytan :/

May 12, 2005 5 Replies

Witam



Buduje uklad, w ktorym przez lacze i2c maja dogadac sie:



- ATmega8



- PCF8563 (real time clock)



- AT24C32 (jakis EPROM)



- PCF8591 (jako DAC)



W dokumentacji PCF8563 napisano, ze moze pracowac tylko z podciagnieta do plusa magistrala i2c i podan wzor na oblicenie rezystorow podciagajacych: R = tr/Cb tr - SCL and SDA rise time Cb - capacitive bus line load W dokumentacji podane te zmienne i odpowiednio: tr=0,3us; Cb=400pF



Pytania:



  1. Czy podciagniecie nie zaszkodzi dla ATmegi i czy przy pisaniu programu jakos zaznaczyc, ze magistrala jest podciagnieta?


  1. Wartosci tr i Cb do obliczenia wartosci rezystorow podciagajacych trzeba obliczyc uwzgledniajac pozostale uklady przylaczone do magistrali ?



Dzieki za podpowiedzi Pozdrawiam TomaszB


2 razy nie

Tak. Ale to czysta teoria. Wstaw po prostu oporniki 4k7.

Pozdrawiam, Pawel

TomaszB napisał:

Nic nie napisałeś o szybkości transmisji. Daj oporniki w zakresie od 1k do 4k7.

pzdr Artur

wystarczy standardowo podlaczyc do plusa dwa rezystory 4,7k .. u mnie dziala :)

ja wlasnie prawie skonczylem ATmega8 +lcd 2*16 + 2*DS1820+ wewnetrzny przetwornik ADC... patrz post ponizej

ATMega8 ma 6 kana³owy ADC , wiec poco ci dodatkowo zewnzetrzny ?? na pcf8591 ??

'Program obs³ugi wbudowanego w mikrokontroler '10-bitowego przetwornika A/C

$regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 1000000 'informuje kompilator o czêstotliwo¶ci oscylatora 'taktuj±cego mikrokontroler Config Lcd = 16 * 2 'konfiguracja typu wy¶wietlacza 'LCD Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portd.5 , Db7 = Portc.0 , E = Portd.6 , Rs = Portd.7 'konfiguracja linii 'mikrokontrolera, do których 'do³±czono wy¶wietlacz 'LCD Config Adc = Single , Prescaler = Auto , Reference = Internal 'konfiguracja wewnêtrznego przetwornika A/C

Dim Wart_ac As Word 'zmienna na warto¶æ odczytan± 'z przetwornika Dim V As Single 'zmienna przechowuj±ca obliczon± warto¶æ zmierzonego napiêcia Dim Wart_nap As String * 3 'zmienna, do której wpisywana 'zostaje przetworzona warto¶æ 'zmiennej V na tekst Start Adc 'uruchamia wbudowany przetwornik Cls Do 'pocz±tek pêtli programu Wart_ac = Getadc(1) 'odczytanie warto¶ci z wej¶cia 'ADC1 mikrokontrolera Home ' Cls 'czyszczenie LCD Lcd Wart_ac 'wy¶wietlenie w pierwszej linii 'Lcd odczytanej warto¶ci 'z przetwornika Lowerline 'kursor do drugiej linii LCD V = Wart_ac * 0.0267 'zamiana odczytanej warto¶ci z A/C na napiêcie Wart_ac * ok. 4,8 mV Wart_nap = Fusing(v , "##.#") 'formatowanie warto¶ci zmiennej V do do formatu x.xx i zamiana 'tej warto¶ci na postaæ tekstow±

Lcd Wart_nap 'wy¶wietlenie obliczonej warto¶ci Wart_nap w drugiej 'linii LCD Cursor Off Waitms 300 'opó¼nienie 100 ms Loop 'koniec pêtli Do...Loop End 'koniec programu

Arkos napisał(a):

TAk, ale nie maz zadnego DAC. Kilka razy juz pytalem, o symbol dostepnego w polsce przetwornika DAC na I2C, ale zadnych konkretnych odpowiedzi nie bylo.

Dzieki za odpowiedzi. Pozdrawiam

Sat, 14 May 2005 16:56:40 +0200, na pl.misc.elektronika, TomaszB napisał(a):

MAX518

formatting link
albo TME ale w tej chwili stan 0 Oczywiście ELFA ale chyba cena Ci się nie spodoba ;-)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required