Komunikace dvou AVR po I2C – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Komunikace dvou AVR po I2C – Mikrokontroléry – Fórum – Programujte.comKomunikace dvou AVR po I2C – Mikrokontroléry – Fórum – Programujte.com

 

tripwax0
Duch
2. 5. 2008   #1
-
0
-

Ahoj všem, mám problém se kterým potřebuji poradit.Začal jsem asi před dvěma měsíci s programováním AVR, objednal jsem si ze zahraničí vývojový kit easy AVR5 od firmy mikroelektronika + externi programovačku AVRFLASH vše je ke shlédnutí na stránkách www.mikroe.com .Programuji v programovacím jazyku mikropascal, vše šlape bez problémů.Nyní vyrábím digitalni počitadlo (scoreboard) pro kulecnik.Elektroniku mam hotovou, displaye oživuji přez pos.registry 74hc595 to vše už pracuje jak má, ale..počitadlo sestává ze dvou AVR a to ATmega8 a Atmega128. Atmega8 oživuje věškeré displaye, led, atd.. a Atmega128 se stará o maticovou klávesnici, přepočty, do budoucna bude ještě spravovat IRport.Tyto dva procesory mam propojene po I2C se kterým zatím nemám žádné zkušenosti.Potřeboval bych poradit jak komunikovat mezi procesory, jestli musi byt na linkach sda a scl pull up rezistory, v mikropascalu mam knihovnu soft_I2C ktera obsahuje prikazy ...

Soft_I2C_Init
Soft_I2C_Start
Soft_I2C_Read
Soft_I2C_Write
Soft_I2C_Stop

příklad použití knihovny přímo od výrobce....

program soft_I2c_test;

var ee_adr, ee_data : byte;
jj : word;

begin

Soft_I2c_Config(PORTD, 3, 4); // Initialize full master mode
TRISC := 0; // PORTC is output
PORTC := $FF; // Initialize PORTC
Soft_I2c_Start(); // Issue I2c start signal
Soft_I2c_Write($a2); // Send byte via I2c(command to 24cO2)
ee_adr := 2;
Soft_I2c_Write(ee_adr); // Send byte(address for EEPROM)
ee_data := $AA;
Soft_I2c_Write(ee_data); // Send data(data that will be written)
Soft_I2c_Stop(); // Issue I2c stop signal

for jj := 0 to 65500 do // Pause while EEPROM writes data
nop;

Soft_I2c_Start(); // Issue I2c start signal
Soft_I2c_Write($A2); // Send byte via I2c
ee_adr := 2;
Soft_I2c_Write(ee_adr); // Send byte(address for EEPROM)
Soft_I2c_Start(); // Issue I2csignal repeated start
Soft_I2c_Write($A3); // Send byte(request data from EEPROM)
ee_data := Soft_I2c_Read(0); // Read the data
Soft_I2c_Stop(); // Issue I2c_stop signal
PORTC := ee_data; // Display data on PORTC

while TRUE do nop;

end.

zajímalo by mě predevším jak je to s adresami procesorů, jak nadefinovat který je master a ktery je slave.

předem děkuji za každou radu, ahoj tripwax

Nahlásit jako SPAM
IP: 87.249.135.–
durmitor
~ Redaktor
0
Věrný člen
2. 5. 2008   #2
-
0
-

Zdravím, na I2C musí být vždy pull-up, pokud nejsou nějak interně připojeny (ale nebývá to pravidlem), bohužel s mikroPascalem nemám žádné zkušenosti. Ale chtěl bych si taky z mikroelektroniky pořídit desku, sice ne s AVR ale s procesorem PSoC. Na kolik tě vyšla, objednával jsi ji přímo nebo přes nějakého distibutora a byly problémy s dopravou? Díky

Nahlásit jako SPAM
IP: 77.236.208.–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
tripwax0
Duch
2. 5. 2008   #3
-
0
-

To durmitor : objednával jsem si ji přímo přes net z jejich webu, platil jsem to kartou na netu, deska easyavr5 s programovackou flash avr me vysla na cca 240 dolaru.s dodavkou byl problem akorat v tomhle skur..... state, nebot od nich to bylo behem dvou dnu u nas a tady jsem cekal na procleni 3 tydny a ani se se mnou nikdo nechtel bavit.nehlede na to ze jsem zaplatil jeste 800kc clo.no ale nyni mam novy zdroj , jeden znamy rusi firmu a necha mi za hubicku vyvojovi kit na procesory toshiba v cene 130000 za hubicku tak jsem rad, uvidim co to bude umet, jinak s tim mikropascalem jsem spokojeny alespon zatim, pekny design, funguje to i pod vistama coz se divim, visty maji alergii na vsechny programy sveta hihi.....ahoooj

Nahlásit jako SPAM
IP: 87.249.135.–
KIIV
~ Anonymní uživatel
8632 příspěvků
3. 7. 2008   #4
-
0
-

To tripwax :
nebude od veci nastudovat funkci IIC sbernice... vesmes to vypada tak ze se posle start, pak adresa zarizeni ktere chces obslouzit, a testuje se tazv ACK (potvrzeni ze zarizeni je aktivovano)... pak se bud poslebajt nebo nacte... na zaver se (nejsem si ted jist) u nacitani schodi na 0 aby se skoncilo a pak stopbit nebo se necha 1 ze chceme nacitat dal... ale tim uz si fakt nejsem jist

Nahlásit jako SPAM
IP: 80.188.94.–
vladaaaa
~ Anonymní uživatel
6 příspěvků
20. 7. 2008   #5
-
0
-

Mrkněte do datasheet ATMEGA8 a ATMEGA128 je to tam vše popsané, jak používat HW I2C. Určitě je lepší využívat HW I2C něž SW.

Nahlásit jako SPAM
IP: 195.146.125.–
A.
~ Anonymní uživatel
1 příspěvek
22. 11. 2008   #6
-
0
-

Řeším teď podobný problém, nejspíš bude nejjednodušší přidat pull-upy. Knihovny mám v pořádku, jen mezi dvěma ATmega8 (bez pull-upů) mi to prostě nejede :-)

Nahlásit jako SPAM
IP: 88.100.137.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý