EDAboard.com | EDAboard.eu | EDAboard.de | EDAboard.co.uk | RTV forum PL | NewsGroups PL

I2C <=> RS232

Nouveau sujet

elektroda.net NewsGroups Forum Index - Electronique FR - I2C <=> RS232

Goto page 1, 2, 3, 4  Next

Jean-Christophe
Guest

Wed Nov 09, 2011 7:32 pm   



'soir,
J'ai deux cartes qui doivent discuter ensemble,
l'une est en I2C et l'autre en RS232 et je
voudrais éviter d'utiliser un uC juste pour ca :
connaissez-vous un chip qui translate de l'I2C
vers du RS485 ? (dans les deux sens bien entendu)

Robert Lacoste
Guest

Thu Nov 10, 2011 8:36 am   



"Jean-Christophe" <5.d_at_free.fr> a écrit dans le message de news:
070c4854-1918-4a1c-a774-82ace368d083_at_h12g2000vbf.googlegroups.com...
Quote:
'soir,
J'ai deux cartes qui doivent discuter ensemble,
'une est en I2C et l'autre en RS232 et je
voudrais éviter d'utiliser un uC juste pour ca :
connaissez-vous un chip qui translate de l'I2C
vers du RS485 ? (dans les deux sens bien entendu)

Voir chez NXP, par exemple SC16IS740 (disponible par exemple chez Digikey).
Mais la mise en oeuvre de ce type de produits n'est pas si transparente que
çà...
Cordialement,


--
Robert Lacoste
ALCIOM - The mixed signal experts
www.alciom.com

Jean-Christophe
Guest

Thu Nov 10, 2011 1:28 pm   



"Robert Lacoste"

Quote:
"Jean-Christophe" a écrit :
J'ai deux cartes qui doivent discuter ensemble,
une est en I2C et l'autre en RS232 et je
voudrais éviter d'utiliser un uC juste pour ca :
connaissez-vous un chip qui translate de l'I2C
vers du RS485 ? (dans les deux sens bien entendu)

Correction : (...) vers du RS232 ? (dans les deux sens)

Quote:
Voir chez NXP, par exemple SC16IS740 (disponible par exemple chez
Digikey). Mais la mise en oeuvre de ce type de produits n'est pas si
transparente que çà...

Merci Robert : je DL la datasheet pour investiguer.
( mais à première vue, s'il faut le paramétrer, autant
utiliser un petit PIC à 8 pattes déja dans les tiroirs )

moi-meme
Guest

Thu Nov 10, 2011 9:21 pm   



Le Wed, 09 Nov 2011 09:32:57 -0800, Jean-Christophe a écrit :

Quote:
'soir,
J'ai deux cartes qui doivent discuter ensemble, l'une est en I2C et
l'autre en RS232 et je voudrais éviter d'utiliser un uC juste pour ca :
connaissez-vous un chip qui translate de l'I2C vers du RS485 ? (dans les
deux sens bien entendu)

ben i2C c'est un système maître-esclave et synchrone. Le changement de
sens est hard. Il est aussi multi esclave.

RS232 c'est (éventuellement) full duplex et asynchrone (le synchrone en
RS232 c'est pas classique).

AMHA c'est utopique sans µC. (et même avec pas simple à cause des
problèmes de tampon et d'adressage).

Jean-Christophe
Guest

Thu Nov 10, 2011 11:11 pm   



On 10 nov, 15:21, moi-meme

Quote:
ben i2C c'est un système maître-esclave et synchrone.
Le changement de sens est hard. Il est aussi multi esclave.
RS232 c'est (éventuellement) full duplex et asynchrone
(le synchrone en RS232 c'est pas classique).
AMHA c'est utopique sans µC. (et même avec pas simple
à cause des problèmes de tampon et d'adressage).

Le chip proposé par Robert remplit bien ces fonctions.

Mais je vais rester sur un uC minimaliste à 8 pattes ;
j'en ai déja dans mes tiroirs et au moins je garderai
la main sur la totalité du chaînage soft & hard.

moi-meme
Guest

Fri Nov 11, 2011 8:29 am   



Le Thu, 10 Nov 2011 13:11:03 -0800, Jean-Christophe a écrit :

Quote:
Le chip proposé par Robert remplit bien ces fonctions.

Mais je vais rester sur un uC minimaliste à 8 pattes ; j'en ai déja dans
mes tiroirs et au moins je garderai la main sur la totalité du chaînage
soft & hard.

+1
c'est un problème de protocole avant d'être un problème hard.

DEMAINE Benoit-Pierre
Guest

Fri Nov 11, 2011 11:05 am   



On 10/11/11 13:28, Jean-Christophe wrote:
Quote:
"Robert Lacoste"

"Jean-Christophe" a écrit :
J'ai deux cartes qui doivent discuter ensemble,
une est en I2C et l'autre en RS232 et je
voudrais éviter d'utiliser un uC juste pour ca :
connaissez-vous un chip qui translate de l'I2C
vers du RS485 ? (dans les deux sens bien entendu)

Correction : (...) vers du RS232 ? (dans les deux sens)

Bit banging coté RS232 => pas besoin de hard (pourquoi payer pour un
composant quand on peux faire sans ?).

--
Quote:
o_/ DEMAINE Benoit-Pierre (aka DoubleHP) http://benoit.demaine.info/
If computing were an exact science, IT engineers would'nt have work \_o


"So all that's left, Is the proof that love's not only blind but deaf."
(FAKE TALES OF SAN FRANCISCO, Arctic Monkeys)

DEMAINE Benoit-Pierre
Guest

Fri Nov 11, 2011 11:13 am   



On 10/11/11 21:21, moi-meme wrote:
Quote:
AMHA c'est utopique sans µC. (et même avec pas simple à cause des
problèmes de tampon et d'adressage).

Mon monde est probablement un rêve pour toi, car je l'ai fait.

En fait, on se fout de savoir si c'est un port série ou parallèle, le code
est le même.

ATTENTION: sur les OS actuels, il faut faire TRES attention à la vitesse
de scheduling, la VM, et la gestion de priorité des processus. J'ai eu des
problèmes très fun sous Linux 2.4 parce que j'avais (à l'époque) mal
compris la gestion processus et des interruptions sous Linux (et je me
suis retrouvé avec 50 Bauds ... sur un AMD 1.4G, c'était un peu lent ^^ ).
Tu aura le même problème (sauf si tu es sous DOS 6.x ou antérieurs: DOS 7
est multi-taches)

--
Quote:
o_/ DEMAINE Benoit-Pierre (aka DoubleHP) http://benoit.demaine.info/
If computing were an exact science, IT engineers would'nt have work \_o


"So all that's left, Is the proof that love's not only blind but deaf."
(FAKE TALES OF SAN FRANCISCO, Arctic Monkeys)

DEMAINE Benoit-Pierre
Guest

Fri Nov 11, 2011 12:15 pm   



On 11/11/11 12:01, Jean-Christophe wrote:
Quote:
En fait, on se fout de savoir si c'est un port
série ou parallèle, le code est le même.
S'il y a du code alors il y a bien un uC ou un uP.

oui, celui de la machine ou tu as ton RS232.

--
Quote:
o_/ DEMAINE Benoit-Pierre (aka DoubleHP) http://benoit.demaine.info/
If computing were an exact science, IT engineers would'nt have work \_o


"So all that's left, Is the proof that love's not only blind but deaf."
(FAKE TALES OF SAN FRANCISCO, Arctic Monkeys)

Jean-Christophe
Guest

Fri Nov 11, 2011 12:23 pm   



On 11 nov, 05:05, DEMAINE Benoit-Pierre

| "Jean-Christophe" a crit :
| J'ai deux cartes qui doivent discuter ensemble,
| une est en I2C et l'autre en RS232 et je
| voudrais viter d'utiliser un uC juste pour ca :
| connaissez-vous un chip qui translate de l'I2C
| vers du RS232 ? (dans les deux sens bien entendu)


Quote:
Bit banging coté RS232

La transmission s'effectue dans les deux sens ;
l' I2C tourne à 100 kbps et le RS232 à 9,6 kbps ;
et de plus les signaux I2C (SCL & SDA) ne sont pas
directement mappables sur les signaux RS232 (TX & RX)
Ce n'est donc pas une solution, sinon je l'aurais déja fait.


Quote:
=> pas besoin de hard (pourquoi payer pour
un composant quand on peux faire sans ?).

Dans un cas comme celui-ci on ne peut faire sans,
un minimum de réflection l'aurait montré.


Quote:
DEMAINE Benoit-Pierre (aka DoubleHP)
" not only blind but deaf "


DEMAINE Benoit-Pierre
Guest

Fri Nov 11, 2011 12:33 pm   



On 11/11/11 11:23, Jean-Christophe wrote:
Quote:
Bit banging coté RS232
La transmission s'effectue dans les deux sens ;
l' I2C tourne à 100 kbps et le RS232 à 9,6 kbps ;
et de plus les signaux I2C (SCL & SDA) ne sont pas
directement mappables sur les signaux RS232 (TX & RX)
Ce n'est donc pas une solution, sinon je l'aurais déja fait.

Si tu avais regardé ce qu'est le bit banging ... tu n'aurais pas pu
objecter que c'est incompatible avec le RS232 pour la raison que tu invoque.

Puisque tu dis que tu n'es pas sur un PC, c'est encore plus simple que je
pensais: tu n'as donc aucun problème de scheduling. Et tu as donc la
maitrise totale des signaux qui sortent de ton port. Tu déconfigure le
RS232, et tu ... fais du bit banging à l'ancienne.

Sur un PC, il est */EVIDEMENT/* "utopiste" d'utiliser les pattes Tx et Rx:
le bit banging se fait avec les autres pins; les 6 autres pins que tout le
monde oublie ...

Sur un "pas PC", tu repasse ton port en TTL, et l'I2C se fait en bit
banging les yeux fermés.

La méthode simple utilise 3 pins, ou, deux pins si tu en as une en
bi-directive. Je ne sais pas si c'est possible de le faire avec seulement
2 pins unidirectives (une dans chaque sens).

Quand au débit, ce n'est pas un problème. Quand tu aura écrit tes unités
correctement, tu aura remarqué que tes débits sont identiques:
- ton I2C est à 100kbps
- un RS232 CLASSIQUE tourne à 9.6kBps, ou B ne se lit pas Byte, mais BAUD.
En comptant le bit de latence, ça fait 96kbps. Parce que si ton RS232
tourne à 9.6kbps, soit 960 BAUD, à ta place, je m'inquiéterais, car les
modems à 1.4 k BAUD sont plus vieux que moi ... alors un PC qui ne
pourrait faire que 960 BAUDs ...

=> 100 / 96 ... moins de 4% entre les deux.

Et de toute façon, la question ne se pose pas, pour deux raisons:
- un vrai bon RS232 monte à 54kB (soit 500 kbps)
- le bit banging, si tu avais cherché, ne se fait pas avec les lignes Tx
Rx, mais RTS CTS. Et ton débit peut dépasser les 500kbps de très loin: tu
es limité par la vitesse du CPU, pas celle du hard.

Enfin, peut être que TON I2C tourne à 100kbps, mais le protocole monte à
4M ... alors, oui, si tu bossais à 4M là j'avoue qu'un port RS232 peut se
coucher, mais puisque tu n'es qu'à 100k, ça passe sans problème.

Donc, le bit banging est envisageable. Des milliers de gens l'ont fait
avant moi (je ne suis pas assez malin pour ré-inventer la roue: je ne peux
qu'améliorer e travail des autres, je suis incapable de créer une bonne idée).

--
Quote:
o_/ DEMAINE Benoit-Pierre (aka DoubleHP) http://benoit.demaine.info/
If computing were an exact science, IT engineers would'nt have work \_o


"So all that's left, Is the proof that love's not only blind but deaf."
(FAKE TALES OF SAN FRANCISCO, Arctic Monkeys)

DEMAINE Benoit-Pierre
Guest

Fri Nov 11, 2011 12:37 pm   



On 11/11/11 12:23, Jean-Christophe wrote:
Quote:
Il y a une carte avec un port I2C, une autre
avec un port RS232, et la question est :
comment INTERFACER ces deux ports
avec le moins de ressources possibles.

Et tu viens parler de bitbang,
puis de PC sous Linux ...

Effectivement, j'avais retenu "une carte et un PC"; j'avais zapé que tu
avais deux cartes.

Mais pour le reste: quelle différence entre une carte et un PC ? quand tu
vois que la majorité des cartes sont des ARM, et que jusqu'il y a très
peu, la majorité des cartes tournaient sur 486 ...

Quand à Linux et à mes problèmes de scheduling, bah, la majorité des
cartes, qu'elles soient sous 486 ou sous ARM ... ont des OS multi-tache,
et la majorité supportent Linux.

Donc, à part le cas très peu probable ou tu aurais dev un firmware toi
même, de zero (pratique qui tend à disparaître avec le temps), tu devrais
être concerné par mes avertissements.

--
Quote:
o_/ DEMAINE Benoit-Pierre (aka DoubleHP) http://benoit.demaine.info/
If computing were an exact science, IT engineers would'nt have work \_o


"So all that's left, Is the proof that love's not only blind but deaf."
(FAKE TALES OF SAN FRANCISCO, Arctic Monkeys)

Jean-Christophe
Guest

Fri Nov 11, 2011 1:01 pm   



On 11 nov, 11:13, DEMAINE Benoit-Pierre

| On 10/11/11 21:21, moi-meme wrote:
| AMHA c'est utopique sans µC. (et même avec pas simple
| à cause des problèmes de tampon et d'adressage).

Quote:
Mon monde est probablement un rêve pour toi, car je l'ai fait.

Avec un uC il n'y a pas de quoi pontifier,
n'importe qui fait ca les yeux fermés.
Une fois j'ai même dû implémenter une interface USB/I2C
sur un uC qui n'avait pas du tout d'interface interne I2C,
en regénérant les états logiques SDA/SCL par soft
via un contrôle direct de deux pinouilles I/O.
Et il n'y a vraiment pas de quoi s'enorgueillir.

Et si c'est sans uC : décris comment tu t'y es pris.


Quote:
En fait, on se fout de savoir si c'est un port
série ou parallèle, le code est le même.

S'il y a du code alors il y a bien un uC ou un uP.


Quote:
ATTENTION: sur les OS actuels, il faut faire TRES attention à la vitesse
de scheduling, la VM, et la gestion de priorité des processus. J'ai eu des
problèmes très fun sous Linux 2.4 parce que j'avais (à l'époque) mal
compris la gestion processus et des interruptions sous Linux (et je me
suis retrouvé avec 50 Bauds ... sur un AMD 1.4G, c'était un peu lent ^^ ).
Tu aura le même problème (sauf si tu es sous DOS 6.x ou antérieurs: DOS 7
est multi-taches)

J'ai bien précisé qu'il s'agit de deux cartes mais n'ai
pas parlé de PC ; ca c'est toi qui l'introduis en hors-sujet.


Quote:
DEMAINE Benoit-Pierre (aka DoubleHP)
" not only blind but deaf "


Jean-Christophe
Guest

Fri Nov 11, 2011 1:23 pm   



On 11 nov, 12:15, DEMAINE Benoit-Pierre

| On 11/11/11 12:01, Jean-Christophe wrote:
| S'il y a du code alors il y a bien un uC ou un uP.

Quote:
oui, celui de la machine ou tu as ton RS232.

Il y a une carte avec un port I2C, une autre
avec un port RS232, et la question est :
comment INTERFACER ces deux ports
avec le moins de ressources possibles.

Et tu viens parler de bitbang,
puis de PC sous Linux ...

Quote:
DEMAINE Benoit-Pierre (aka DoubleHP)
" not only blind but deaf "


moi-meme
Guest

Fri Nov 11, 2011 2:43 pm   



Le Fri, 11 Nov 2011 05:03:03 -0800, Jean-Christophe a écrit :

Quote:
J'ai implémenté en ASM du bitbang sur des uP qui n'avaient pas du tout
de port série, à une époque où tu salissais encore tes couches.

avec des boucles de temps logicielles ...

Goto page 1, 2, 3, 4  Next

elektroda.net NewsGroups Forum Index - Electronique FR - I2C <=> RS232

Nouveau sujet

Arabic versionBulgarian versionCatalan versionCzech versionDanish versionGerman versionGreek versionEnglish versionSpanish versionFinnish versionFrench versionHindi versionCroatian versionIndonesian versionItalian versionHebrew versionJapanese versionKorean versionLithuanian versionLatvian versionDutch versionNorwegian versionPolish versionPortuguese versionRomanian versionRussian versionSlovak versionSlovenian versionSerbian versionSwedish versionTagalog versionUkrainian versionVietnamese versionChinese version
RTV map EDAboard.com map News map EDAboard.eu map EDAboard.de map EDAboard.co.uk map Opony