Question:
Dois-je utiliser une puce MAX232?
Rick_2047
2011-02-18 10:47:23 UTC
view on stackexchange narkive permalink

J'essaie d'interfacer mes puces ATmega avec l'ordinateur en utilisant une interface série. J'ai lu que cela peut être fait directement en connectant la broche appropriée entre les puces et la broche série. Mais il est conseillé d'utiliser une puce MAX232. À quoi sert cette puce et ai-je vraiment besoin de l'utiliser?

Je pose cette question car dans un projet que je suis en train de faire, il y a une contrainte de grande taille et la puce peut prendre un espace précieux.

Quatre réponses:
vicatcu
2011-02-18 10:59:51 UTC
view on stackexchange narkive permalink

Si vous devez connecter l'AVR à l'ordinateur en utilisant le port série et un câble série DB9-DB9 "standard", oui, vous devez utiliser un émetteur-récepteur RS232 en circuit. L'UART de l'AVR émet une signalisation 0-5V. La spécification RS232 est une signalisation +/- 15V, et je crois qu'elle est également «inversée» par rapport à la signalisation UART. Vous n'êtes pas obligé d'utiliser spécifiquement le MAX232, mais vous devez utiliser un émetteur-récepteur RS232. Ces puces (plus quelques condensateurs externes) gèrent les conversions de niveau de tension (via le pompage de charge) dans les deux sens ainsi que l'inversion du signal, et agissent comme des "pilotes de ligne" entraînant des longueurs de fil plus longues autorisées par la norme RS232.

Vous pouvez également utiliser un câble qui inclut un tel circuit émetteur-récepteur intégré dans le shell DB9 si vous êtes limité par l'espace sur votre carte. Une autre alternative impliquant un câble consiste à utiliser un câble qui comprend une puce FTDI FT232, ce qui a l'avantage de le faire ressembler à un port COM via USB vers l'ordinateur, mais vous recherchez plus de 15 $ pour ce câble. .

Hé, si je connectais la puce MAX232, ce serait toujours un port COM mais via série, non? Je pensais utiliser un FTDI mais là où je vis, il n'est pas disponible facilement.
@Rick, oui ce serait toujours un port COM, très probablement COM1 ou COM2
@Rick aussi un mot d'avertissement - méfiez-vous des broches 2 + 3 (rx + tx) à l'envers :)
Alors, le MAX232 fournit-il simplement ce dont RS232 sur série a besoin alors qu'une puce FTDI fournit des capacités USB / UART?Je suppose que je suis confus sur ce que FTDI apporte à la table..er ... câble.lol
@cbmeeks FTDI convertit / transcode un périphérique USB CDC en une interface UART.MAX232 est (plus ou moins) une traduction d'interface électrique directe, c'est-à-dire que RS232 et UART sont assez similaires en termes de protocole.Ce n'est pas le cas pour USB CDC et UART.L'USB et le RS232 ont peu à voir l'un avec l'autre.
timrorr
2011-02-18 14:29:31 UTC
view on stackexchange narkive permalink

La spécification RS232 nécessite une tension de signal comprise entre -3 et -30V pour un '1' logique, et une tension de signal comprise entre + 3V et + 30V pour un 0 logique, l'impédance d'entrée est d'environ 3k et l'impédance de sortie doit être environ 300 ohms.

Si vous voulez implémenter une interface entièrement compatible, alors oui, vous aurez besoin de quelque chose comme le MAX232 - ou une alternative, comme le MAX3221 qui vient dans un tout petit paquet TSSOP.

Alternativement, vous pouvez utiliser l'une des lignes de liaison du DTE (PC ou similaire) pour fournir la tension négative et utiliser un simple changeur de niveau à transistor pour gérer l'inversion du signal (du MCU) et le décalage de niveau. Cela nécessite cependant que l'ETTD soit configuré de telle sorte que ses lignes de prise de contact soient dans un état approprié.

Une autre option est de profiter du fait que la plupart des équipements de nos jours implémentent RS232 en utilisant quelque chose comme un appareil MAX232. Bien qu'ils soient entièrement conformes à la spécification, ils étendent également les choses de sorte que les niveaux d'entrée sont fondamentalement de +2,8 à +30 pour un `` 0 '' logique, de +1,4 à -30V pour un zéro logique (de la mémoire) - en d'autres termes, les récepteurs incluent en fait les niveaux de signal TTL. Ainsi, vous pouvez simplement inverser le signal sur les broches UART et le transmettre directement à l'appareil DTE. Cette technique est utilisée sur de nombreux appareils, y compris de nombreux GPS portables. Je ne dis pas que vous êtes 100% compatible, mais vous constaterez que cela fonctionne le plus souvent.

Vous devez toujours inverser les signaux UART (à moins que vous ne frappiez vous-même les broches), deux onduleurs devraient être plus petits que le circuit associé MAX232 plus, mais probablement pas de beaucoup.

Je ne sais pas pour ATmega, mais de nombreux PIC UART peuvent inverser la sortie. Lisez la fiche technique.
C'est en fait + 25V maximum, + 15V étant une limite * typique *.
Dave
2011-02-18 13:53:35 UTC
view on stackexchange narkive permalink

Comme l'a dit vicatcu, vous avez besoin de quelque chose pour traduire les niveaux de signal du mcu en quelque chose que le port série du PC attend. Vous n'êtes pas obligé d'utiliser un MAX232 ou un appareil similaire - Sparkfun a quelque chose qui fonctionnerait.

Erik
2011-02-18 13:02:45 UTC
view on stackexchange narkive permalink

Je ne suis pas un expert AVR, mais je crois qu'il existe une bibliothèque USB "bitbanging" pour l'utiliser comme périphérique USB. Vous pourrez peut-être l'utiliser pour émuler un port série.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 2.0 sous laquelle il est distribué.
Loading...