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
Fórum › Mikrokontroléry
Komunikace dvou AVR po I2C
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
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
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
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Avr jako i2c slave — založil David Skalka
AVR Toolchain 3.3.0 + AVR studio + ATTiny26 - mala rada — založil xhans69
I2C na Atmega32 — založil Deko
MSP430 a I2C — založil Marek
STM32L-discovery - problém s I2C — založil Mishella
Moderátoři diskuze