I2C slave na '51

Jan Pruha Jan.Pruha
Středa Březen 17 12:02:37 CET 2004


>Zdravim vsetkych.
>
>Diskusia na temu SW I2C slave v '51 ma vybudila k intelektuanemu cviceniu
na tuto temu.
>Stiahol som si specifikaciu a zbastlil doleuvedeny kod.
>Podla mojho nazoru by to malo na 100kHz s natahovanim clocku pred a po ACK
vcelku fungovat na 24MHz 1x '51.
>A kedze master je povacsinou tiez softverovy, mohol by byt troska
tolerantnejsi a tie medzery pred a po ACK robit >sam - potom netreb
>natahovat clock, cim sa zjednodusi SW mastra.
>To, ze sa vyuziva 100% strojoveho casu nevidim ako nevyhodu pre tuto
aplikaciu (prevodnik zbernic), ved co ineho uz >by to malo robit
>?
>Samozrejme, HW podpora je pre tento pripad uplne idealna...ale obcas
pridraha.
>
>Podotykam, ze ide o nevyskusany kod.
>
>Prosim o komentar od tych, co maju s I2C realne skusenosti.

Zdravim

Myslim, ze delat IIC slave jako prevodnik sbernic bude spis mensinove
pouziti. Daleko castejsi bude pripad, kdy si navrhnete zarizeni s IIC
komunikaci, sezenete 5 obvodu, ktere potrebujete s IIC rozhranim, a jako na
potvoru ten 6. s IIC proste nebude. Takze by se docela hodilo, aby ten
procesor jeste stihal i neco delat. Nemusi toho byt moc.
Dalsi nevyhodou vaseho reseni je, ze pokud dojde k chybe v komunikaci
(napr. master neprecte ACK a ukonci vysilani napriklad po sub-address), tak
se z toho kod asi nevzpamatuje. Myslim, ze je mozne to resit jedine pomoci
interruptu. Premyslel jsem, jestli by nesel nejak pouzit seriovy kanal v
synchronnim rezimu, ale nikam jsem nedospel.

Honza






Další informace o konferenci Hw-list