Jak zrobiæ, ¿eby dwa mikrokontrolery (8031 i am³y atmel 2051) komunikowa³y siê poprzez I2C? Zaden z uk³adów nie ma wyprowadzeñ na I2C, ani przydzielonych adresów. Poprzez expander I2C jedyne rozwi±zanie?
8031-89C2051 po I2C
Jun 01, 2005
7 Replies
Panoramix napisał(a):
Zrobić programową obsługę I2C? Uprzedzam, będzie powolna.
- poczytaj opis standardu I2C (Philips) / TWI (Atmel).
- musisz zaimplementować master I2C w jednym procesorze, a slave I2C w drugim; zdecyduj, który jest ważniejszy i będzie tego drugiego odpytywać
- wymyśl komendy do transferu danych (możesz np. udawać procesorem slave pamięć EEPROM)
- chyba wszystko jasne?
A tak poza tym to I2C srednio sie nadaje do komunikacji miedzy 2 procesorami. Pomysl raczej o szybkim synchronicznym interfejsie szeregowym (cos jak RS232 ale z dodatkowa linia zegara) albo SPI.
badworm napisał(a):
No własnie - zwłaszcza realizacja funkcji MASTER'a będzie dosyc wolna. A czy te procesory maja jeszcze gadac po I2C z jakimis innymi układami ? I jakie są wymagania co do szybkości transmisji ?
Tak. I2C obs³ugiwane programowo, wyj¶cia s± deklarowane w kodzie programu. Im wolniejszy transfer tym lepiej. Ramka musi byæ widoczna na oscyloskopie.
Im wolniej tym lepiej (4800bodów bedzie widoczne na standardowych szkolnych oscyloskopach?). Dzia³a tak: atmel poprostu wysy³a ca³y czas ramke, która zawiera cyfrê któr± dosta³ z klawiatury 16-przyciskowej. Wysy³a to do 8031, a ten wy¶wietla to na LED`zie i ju¿. Ca³y uk³ad. Realizowany przez RS`a i przez I2C.
Bêdzie ta sama funkcja realizowana zarówno na I2C jak i na RS`ie. Kwestie edukacyjne.
Najsensowniej .. zrobic to bez I2C albo zmienic procki na takie co maja sprzetowo.
Najtaniej .. to chyba trzeciego atmelka miedzy nie wlozyc :-) Niech udaje dwa slave i fifo w obie strony, jak to bedzie jedyne zadanie to powinien zdazyc.
A moze jakies malutkie FPGA ?
J.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required