Para que tipo de comunicação serial o Arduino Severino foi projetado?

8

O Arduino tornou-se bastante caro de onde eu venho (2/3 do preço do Raspberry PI), por isso criei um clone do Arduino Severino .

Eu tinha usado o dispositivo com o conversor USB-serial RS-232. Mas depois de um longo tempo, o dispositivo parou de funcionar. Meu amigo chegou a um ponto em que a comunicação RS-232 varia entre +6 e -6 V (com limites de +3 e -3 volts).

Então, eu tentei o FT232, que usa 0 a 5 volts. eu tenho um poucochinês Chip FTDI projetado para fazer isso: lado frontal usb para serial

lado traseiro usb para serial

No entanto, após conectá-lo, ele se comporta inesperadamente. (ele tinha deixado de funcionar meu PC, um dos LEDs de comunicação é ligado o tempo todo ...) Percebi que a placa Arduino pode ser quebrada por um motivo diferente (um curto-circuito acidental é muito provável).

Então, para qual tipo de comunicação esse "Arduino" foi projetado?

Tomáš Zato - Restabelecer Monica
fonte
Por favor, veja minha resposta atualizada.
Ricardo

Respostas:

4

Observando o esquema dessa placa, ela usa uma inversão de sinal muito grosseira para o RS-232. Isso permite que ele trabalhe com um sinal RS-232 padrão direto de um computador - apenas .

Está longe do ideal e realmente deve usar um chip MAX232 (ou similar) para a interface.

Seu adaptador FT232 deve ignorar essa parte do circuito e conectar-se diretamente aos pinos 0 e 1 do clone do Arduino. O pino DTR do FT232 deve se conectar ao pino RESET do clone do Arduino por meio de um capacitor de 100nF para permitir que o IDE reinicie a placa para entrar no carregador de inicialização. Ah, e claro, conecte também o solo ao seu clone do Arduino (algo que os usuários do Arduino costumam esquecer).

Você pode seguir a parte da placa de interrupção serial do tutorial da placa de ensaio do Arduino e aplicá-la à sua placa.

Majenko
fonte
3

O arduino ao qual você se conectou foi projetado para sinais seriais no nível RS232, que podem ser calculados a partir do uso de um conector DB09.

A impressão FT232 exibida é para sinalização de 5V TTL (ou talvez 3.3V 'TTL'). Não é compatível com o seu arduino. (BTW: esse chip não é chinês, é fabricado pela www.ftdichip.com IMO, eles produzem os melhores produtos de driver / chip USB para serial.)

Wouter van Ooijen
fonte
Obrigado pela informação adicional. Editei minha pergunta graças a você.
4
Você está assumindo, claro, que é um chip real FT232, e não uma cópia chinesa desonesto ... zeptobars.ru/en/read/FTDI-FT232RL-real-vs-fake-supereal
2

O Arduino Severino (Single Sided Serial versão 3 - S3V3rino) foi projetado para funcionar com a interface serial RS-232, não com os níveis de sinal serial TTL da sua placa FT232.

Portanto, para usar sua placa FT232 para conectar seu Severino a uma porta USB, você precisará de conexões como as dos esquemas abaixo:

Esquemas de TTL serial para ATmega328

Então, basicamente você precisa dessas conexões:

  FTDI |  ATmega328           | Arduino Severino 
----------------------------------------------------
  DTR  |  Pin 1 (thru cap C6) | RESET (thru cap C6) 
  RXI  |  Pin 3               | TX (D1)  
  TXO  |  Pin 2               | RX (D0)  
  VCC  |  Not connected       | Not connected
  CTS  |  Not connected       | Not connected  
  GND  |  Pin 8 & 22          | Ground

Isso é basicamente o mesmo que Majenko sugeriu (mas com uma foto adicionada).

Não tenho certeza de que você possa fazer essas conexões diretamente no Severino sem danificar a placa ou qualquer outra coisa. Você provavelmente precisará cortar os traços TX / RX que vão do ATmega328 ao conector fêmea DB9 no Severino e conectá-los aos pinos do cabeçalho FTDI.

O melhor seria modificar os esquemas Severino EagleCAD para remover todos os circuitos RS-232 e substituí-los pelo conector TTL, como mostrado nos meus esquemas acima, e, com isso, gravar e montar uma nova placa. É muito trabalho, mas pode ser feito.

Eu espero que isso ajude.

Ricardo
fonte
1

Um Arduino 5V típico usa serial de nível lógico - ou seja, sinalização de 0 e 5V.

O RS232 possui níveis de sinal de mais ou menos 3 a 15 volts. Os drivers e receptores RS-232 devem ser capazes de suportar curto-circuito indefinido no terra ou em qualquer nível de tensão de até ± 25 volts

Da Wikipedia

Muitas interfaces RS232 receberão sinais de 0 a 5V.

Eu acredito que o Arduino serial original tinha um circuito para tolerar os níveis de sinal RS232 em suas entradas.

Como a maioria dos computadores agora tem portas USB em vez de portas RS232, a maioria dos usuários do Arduinos usa uma interface serial USB ao nível lógico. Alguns dos chips mais populares para isso são da FTDI, como a FT232RL no seu clone chinês de um " Amigo da FTDI ". Neste caso, todos os sinais são de nível lógico 0-5V (ou 3,3V, se você alterar o link do jumper).

Portanto, o seguinte provavelmente está OK

 PC DE-9 RS232    ----- Severino DE-9
 PC DB-25 RS232   ----- Severino DE-9
 PC USB port ---- "FTDI Friend" ---- Arduino 0(RX), 1(TX), Reset, GND and (optionally) VCC.
RedGrittyBrick
fonte
Bem, não, eu tenho duas respostas afirmando exatamente o oposto. O que devo fazer? : D
@ TomášZato: Suspeito que você não tenha um nível de sinal RS232 verdadeiro em lugar algum. Eu usaria um voltímetro em caso de dúvida.
RedGrittyBrick