Tiedote ylläpidolta:

Elektroniikkafoorumi sulkeutuu tietoturva ongelmien takia.
Käyttäjien tietoja (yv:t, sähköpostiosoite ja salasanan hash) on saattanut vuotaa vääriin käsiin.

Foorumi on asettettu vain luku tilaan. Vanhoja keskusteluja voi lukea palvelinsopimuksen päättymiseen asti.
Tietokannasta on poistettu kaikki salasanat, sähköpostiosoitteet ja yksityisviestit.

Jos haluat saada omat yksityisviestisi, lähetä sähköpostia yllapito@elektroniikkafoorumi.com
samasta sähköpostista mikä oli foorumin tiedoissa niin voin kaivella niitä varmuuskopioista.

Mielenkiintoni foorumin ylläpitoon on viime vuosina ollut vähäistä jo muutenkin joten tähän on hyvä lopettaa.
Kiitokset kaikille käyttäjilla ja pahoittelut mahdollisista ongelmista.

Päivitys: Näyttäisi siltä että mahdollinen vuoto koski vanhaa phpBB2 tietokantaa,
joten helmikuuta 2012 uudemmat tiedot pitäisi olla turvassa.

-Lahha
yllapito@elektroniikkafoorumi.com


I2C -väylä pitkässä kaapelissa

Keskustelua digitaalielektroniikasta

Valvoja: Moderaattorit


Jäsen
Jäsen
Viestit: 121
Liittynyt: Ti Maalis 18, 2008 16:19
ViestiLähetetty: Ke Huhti 02, 2008 18:24
Onkohan täällä tietoa/kokemusta I2C (I toiseen C) -väylän toiminnasta pikässä eli ~5-10m kaapelissa.

- Millaista kaapelia pitäisi käyttää?
- Minkä kokoiset väylän ylösvetovastukset?

Ajattelin käyttää P82B715 väyläbuffereita mutta datalehden kytkentäesimerkki ei täysin auennut minulle. Onko ko. puskuria käytettäessä siis laitettava ylösvetovastukset sekä puskuroimattomaan että puskuroituun väylään? Jos on, niin millä periaatteella vastuksien resistanssi määritellään?
Onko I2C-väylä aivan tuhoon tuomittu erittäin häiriöisessä ympäristössä, jossa pyörii useita harjallisia DC-moottoreita huonosti suojattuna sekä useita R/C -radio-ohjauslaitteita + kännykät tietysti vielä edellisten lisäksi (=Robosota-kisoissa)?

Tässä kytkis jota suunnittelen: http://www.pinebeach.biz/galleria/robos ... ksikko.pdf
http://www.pinebeach.biz/galleria/robos ... o_7seg.pdf
http://www.pinebeach.biz/galleria/robos ... kortti.pdf
- 74LS47 -

Vanhempi jäsen
Vanhempi jäsen
Viestit: 476
Liittynyt: La Helmi 03, 2007 11:36
ViestiLähetetty: To Huhti 03, 2008 6:12
Ei ehkä paras mahdollinen väylävalinta enää tuolle siirtomatkalle. Kannattaa harkita muitakin vaihtoehtoja, jos vaan suinkin mahdollista. Tosin sama koskee kyllä kaikkia yksipäisiä väyliä pitemmillä matkoilla. Tietenkin toimivuus riippuu siitä, mitä mahdollinen datan virheellisyys saa pahimmillaan aikaan. Häiriöiseen ympäristöön väylässä tulisi olla jonkunlainen virheentarkistus/uudelleenlähetys, tosin voihan sen toteuttaa I2C:henkin, tosin hankalaa jos data tulee jostain oheislaitepiiristä, vaikkapa IO-expanderi tai EEPROM.

Aikomassasi käytössä CAN olisi kyllä hyvä, mutta se ei ole läheskään niin yleinen mikrokontrollereissa kuin I2C, lisäksi se on jonkun verran hankalampi käyttää. Tosin vastapainona saa sitten robustin systeemin, CAN-ohjain hoitaa esim. CRC:n ja mahdollisen uudelleenlähetyksen virhetilanteissa. CAN-väylä kestää huomattavasti enemmän häiriöitä, differentiaalisuutensa ansiosta. Lisäksi CAN on melko hyvin suojattu ylijännitteitä vastaan, eikä tarvitse ylösvetoja, ainoastaan päätevastukset. Nopeuttakin löytyy aina 1 Mbps asti.

t. Janne

Vanhempi jäsen
Vanhempi jäsen
Viestit: 419
Liittynyt: Su Tammi 14, 2007 20:17
ViestiLähetetty: To Huhti 03, 2008 21:44
I2C hiukan hirvittää tuollaisella matkalla ja noin häiriöisessä ympäristössä. Sehän on tarkoitettu "Inter-IC"-väyläksi, eli toimii lähinnä saman piirikortin sisällä tai käytännössä myös kahden lähekkäin olevan piirikortin välillä. Siitä kauemmas en lähtisi.

Tekisin tämän RS485-väylänä, koska tuossa ei ole kauhea kiire, jollain 9600 b/s nopeudella kerkiää ihan hyvin, ja RS485:nä siitä saa varsin häiriösietoisen. Tähän sitten joku simppeli protokolla, joka hoitaa osoitteistuksen, tarkitussummat, uudelleenlähetykset ym. Tällöin joka näytössä pitää olla oma pikkukontrolleri, joka hoitaa protokollan, mutta vähemmän sinne silti mikropiirejä tulee kuin nykyisessä kuvassasi.

Jäsen
Jäsen
Viestit: 121
Liittynyt: Ti Maalis 18, 2008 16:19
ViestiLähetetty: Pe Huhti 04, 2008 9:56
Kiitos vastauksista. Minun taidoilla jää kyllä RS485 protokolla ohjelmoimatta varsinkin, kun laitteen olisi oltava kolmen viikon päästä käyttökunnossa. Toiseksi kun tuo GPIO14 on valmiiksi ohjelmoitu PIC, ja joka sopisi tähän tarkoitukseen kuin nyrkki silmään, niin sen käyttämää väylää ei voi vaihtaa.
Ehkä pitää sitten tyytyä siihen, että näyttö on samassa kotelossa I/O-kortin kanssa.
Onko RS485:lle liityntäpiirejä jossa on hoidettu valmiiksi kaikki virheenkorjaukset jne?
- 74LS47 -

Vanhempi jäsen
Vanhempi jäsen
Viestit: 476
Liittynyt: La Helmi 03, 2007 11:36
ViestiLähetetty: Pe Huhti 04, 2008 18:48
RS-485:ssä käytetään tyypillisesti ohjelmoijan kannalta ihan samaa dataa kuin RS-232:ssa, ainoastaan linjan fyysinen toteutus on erilainen. Samassa linjassa voi olla useita lähettimiä ja enable-signaalilla hoidetaan etteivät kaksi tai useampi ole yhtäaikaa äänessä. Täten virheenkorjauksen (jos sellaiseksi ei pariteettia lasketa) joutuu tekemään itse. Uudelleenlähetyksen joka tapauksessa. Mutta jos toiminnallisuus on jo valmiiksi tehty jonkun muun toimesta niin eipä tuossa sitten ole paljoa vaihtoehtoja.

Jostain syystä edelleen suosittelisin (ainakin jatkoa ajatellen) tuota CANia (löytyy esim. PIC18F2480-prossusta). Prosessorin sisäinen CAN-ohjain hoitaa automaagisesti datan tarkistuksen ja uudelleenlähetyksen. Tämä tosin sillä varauksella, että jos samaa viesti-ID:tä kuuntelee useampi prossu, se takaa ainoastaan että ainakin 1 prossu on saanut vastaanotettua sanoman oikein. CAN sopii parhaiten jos viestit ovat lyhyitä, 1-8 tavua. Kannattaa ainakin tutustua.

t. Janne

Vanhempi jäsen
Vanhempi jäsen
Viestit: 419
Liittynyt: Su Tammi 14, 2007 20:17
ViestiLähetetty: La Huhti 05, 2008 20:23
ascomm kirjoitti:Onko RS485:lle liityntäpiirejä jossa on hoidettu valmiiksi kaikki virheenkorjaukset jne?

RS485-standardi määrittelee ainoastaan liitännän sähköiset ominaisuudet ottamatta kantaa protokollaan, joten tällaista piiriä ei oikeastaan edes voi olla. Yleensä näissä käytetään valmistajakohtaisia (tai harrastajakohtaisia) protokollia. Erilaiset HDLC-johdannaiset ovat aika tavallisia.

RS485-puskuripiiri kytketään kontrollerin sarjaporttiin samaan tapaan kuin RS232-puskuripiirikin. Lisäksi tarvitaan yleensä 1 I/O-pinni ohjaamaan enable-signaalia. Protokolla, sisältäen tarkistusummat ym. hoidetaan sitten ohjelmallisesti. Mutta jos ei tykkää protokollaohjelmoinnista (toisin kuin minä 8) ) niin joku muu ratkaisu, esim. tuo CAN saattaa olla helpompi toteuttaa.

Kolme viikkoa tuo mieleen ModelExpon ja Robosota-näytökset. Sielläkös tämän tuotoksen pääsee näkemään?

Jäsen
Jäsen
Viestit: 121
Liittynyt: Ti Maalis 18, 2008 16:19
ViestiLähetetty: La Huhti 05, 2008 22:39
JKN kirjoitti:RS485-puskuripiiri kytketään kontrollerin sarjaporttiin samaan tapaan kuin RS232-puskuripiirikin. Lisäksi tarvitaan yleensä 1 I/O-pinni ohjaamaan enable-signaalia. Protokolla, sisältäen tarkistusummat ym. hoidetaan sitten ohjelmallisesti.


Tutkin itsekin tarkemmin RS485:ttä ja CAN:a ja taidan kallistua nyt tuohon RS485 väylään. Käyttämässäni MikroC-kääntäjässä on valmiit funktiot sekä CAN että RS485 -väylälle, jotka olin aiemmin sivuuttanut joutavanpäiväisinä.
RS485 funktioissa on näemmä valmiiksi tuo enable-signaalin ohjauskin.

JKN kirjoitti:Kolme viikkoa tuo mieleen ModelExpon ja Robosota-näytökset. Sielläkös tämän tuotoksen pääsee näkemään?

Oikein. Siellä olisi ollut tarkoitus tätä käyttää mutta aika ei kyllä millään enää riitä tämän rakentamiseen siihen mennessä. Ehkäpä Summer Assembly 2008:n kisoihin saan tämän valmiiksi...
- 74LS47 -

Paluu Digitaalielektroniikka

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 1 vierailijaa