( apal | 2015. 01. 25., v – 15:01 )

Nulladik kerdes: pontosan mit kotnel ossze mivel? Ez nem nagyon vilagos ;)

Parport-ra kotott I22: ez nagyon valoszinutlen hogy menni fog, mert a parport egyszerubb esetben is push-pull kimenetet ad, bonyolultabb esetben (lasd: bidirectional parallel port es tarsai) pedig push-pull+highz uzemmodban tudod hasznalni (es nem is mindegyik bitje't). Az I2C hardveresen viszont n-channel open collector + pull-up modon van bekotve, tehat sima push-pull outputot nem tudsz hasznalni I2C-re.

Ha csatornankent (SDA, SCL) ke't bitet ko"tsz be a parallel porton es egy egyszeru tranzisztor + ellenallas kombinacioval megcsinalod a "PHY"-t, akkor persze lehet jo a dolog, es nagyon realtime vezerles se kell az I2C master-slave jellege miatt. Lasd pl ez. Itt open collectorral megaldott not-kapukat hasznal ellenallas+tranzitsztor helyett (lasd megjegyzes, elso abra alja, 74HC05), lenyegeben ugyanaz. Szoval a sufni verzioban meguszhato 4 ellenallas + 2 NPN tranzisztorral a dolog.

Ha nem I2C-t hasznalsz, hanem mondjuk SPI-t (vagy barmilyen mas USART-ot) akkor persze lehet ra tudod kotni parportra tok egyszeruen a cuccot (lasd pl ez, a pin2, 3, 4 es 14-et hasznalja). Lenyegeben az ellenallasokat is kihagyhatod, bar a \CS-re illik egy felhuzot tenni azert (a tobbire absz nem kell). De ez ma'r erosen fugghet a slave eszkoztol (pl van olyan cucc amit permanensen \CS=0-ra lehet tenni, es viszonylag stabilan mukodik, szoval nem SPI frame-kben hanem folyamatos stream-mel kommunikal).

Visszaterve az I2C-re: a linuxban is meglevo" kernelmodulok dedikalt I2C PHY-re vannak optimalizalva, de persze nyilvan lehet irni bitbang-os modult az altalad keszitett paralell port + tranzisztor + ellenallas megoldasra is.