Figura 1 - Pinagem do CI FT232BM
O chipset FT232BM
O chipset FT232BM é uma solução ideal para construir dispositivos que se comuniquem com o computador através do Bus USB, com velocidade de até 3Mbps através de sinais TTL: RS422 e RS485 e no máximo 1Mbs para comunicação através de drivers RS232. Ele pertence a uma segunda geração do popular componente USB UART da FTDI (FT8U232AM). É compatível com controladores Host USB versões 1.1 e 2.0.
A FTDI - Future Technology Devices International Ltd., fabricante do FT232BM, disponibiliza no seu site http://www.ftdichip.com/FTDrivers.htm, os drivres de controle, livres de pagamento de royalties, para os sistemas operacionais Windows 98/Me/200/XP/CE.NET, Linux e Mac OS-X/9/8.
A FTDI também disponibiliza outros chipset, como o FT245BM que disponibiliza os dados USB em paralelo, (em 1 byte) através de 8 pinos de entrada e saída (bits D0 a D7), para propósitos gerais, e mais 4 pinos de controle (RD#, WR, TXE# e RXF#).
No exemplo desse artigo iremos usar o chip FT232BM no modo BIT-BANG. Através desse modo é possível trabalhar diretamente com 8 pinos de I/O (entrada/saída) TTL sem a necessidade do uso de um microcontrolador.
A FTDI - Future Technology Devices International Ltd., fabricante do FT232BM, disponibiliza no seu site http://www.ftdichip.com/FTDrivers.htm, os drivres de controle, livres de pagamento de royalties, para os sistemas operacionais Windows 98/Me/200/XP/CE.NET, Linux e Mac OS-X/9/8.
A FTDI também disponibiliza outros chipset, como o FT245BM que disponibiliza os dados USB em paralelo, (em 1 byte) através de 8 pinos de entrada e saída (bits D0 a D7), para propósitos gerais, e mais 4 pinos de controle (RD#, WR, TXE# e RXF#).
No exemplo desse artigo iremos usar o chip FT232BM no modo BIT-BANG. Através desse modo é possível trabalhar diretamente com 8 pinos de I/O (entrada/saída) TTL sem a necessidade do uso de um microcontrolador.
Principais características:
- Um único chip manipula tanto transferências USB como Serial. - Interface para Modem com total suporte aos sinais de Handshake.
- A UART suporta 7 e 8 bits de dados; 1/2 stop bits e paridade par/impar/marca/espaço e nenhuma.
- Taxa de transferência entre 300 a 3M Baud (TTL).
- Taxa de transferência entre 300 a 1M Baud (RS232).
- Taxa de transferência entre 300 a 3M Baud (RS422/RS485).
- Timeout ajustável para o buffer RX.
- Compatível com bus USB 1.1 e 2.0.
- Tensão de alimentação entre 4,35V a 5,25V.
- Regulador integrado de 3.3v para Entrada/Saída USB.
- Compatível com os controladores Host: UHCI/OHCI/EHCI.
- Suporte a uma memória EEPROM externa opcional para personalizar o produto, onde pode ser armazenado os descritores do mesmo como: VID, PID, e número de série.
- Encapsulado em tamanho miniatura 32-LD LQFP.
- EEPROM pode ser programada na própria placa via USB.
- Suporte para alimentar dispositivos diretamente no Bus USB através do pino PWREN#.
- Modos de transferências USB Bulk e Isossíncrono.
- Suporte para os recursos USB (suspend/resume) através dos pinos SLEEP# e RI#.
Introdução sobre o bus USB
O USB (Universal Serial Bus) surgiu em 1995 com uma parceria entre várias companhias de alta tecnologia (Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC e Philips). Uma das primeiras versões foi a 1.0 com velocidade de 1,5Mbs (Low-speed), logo em seguida foi concebida a 1.1 com velocidades que vai de 1,5Mbps a 12Mbps. Essa versão é conhecida com Full-speed. No final de 2000 foi lançada a versão 2.0 (high-speed), compatível com as versões anteriores, mas com alguns aperfeiçoamentos que vão desde a topologia à velocidade de trafego de dados, chegando ao extremo de 480Mbps, equivalente a cerca de 60MBps (60 milhões de Bytes por segundos).
As primeiras versões do bus USB utilizavam/utilizam os Controladores Host UHCI (Universal Host Controller Interface) e OHCI (Open Host Controller Interface). O USB 2.0 utiliza o Controlador Host EHCI (Enhanced Host Controller Interface).
O barramento USB permite a conexão máxima de até 127 dispositivos em uma única porta. Para isso ser possível utilizá-se de HUBs conectados em cascata. Normalmente cada HUB USB dispõe de 4 a 8 portas onde podem ser plugados mais HUBs ou dispositivos.
Os Hubs são componentes muito importantes na topologia de uma Rede USB. Eles fornecem novos canais físicos para que se possam inserir novos dispositivos à mesma.
Os Hubs costumam ser ligados à Rede elétrica para alimentar seus circuitos e ao mesmo tempo fornecer correntes suficientes para alimentar dispositivos conectados às suas portas. Alguns Hubs não têem fontes externa, estes são parasitas, alimentam-se da própria corrente do barramento USB. Esses Hubs não são uma boa escolha se você pretende "plugar" dispositivos que também se alimentam através do barramento.
Hubs sem fonte de alimentação chegam a ter 4 portas downstream, fornecendo cada uma 100mA. Já Hubs com fontes de alimentação podem fornecer por porta, 500mA.
Se um dispositivo tentar consumir mais corrente do que o Hub pode fornecer através de uma de suas portas, o mesmo permanecerá conectado fisicamente ao barramento, mas não poderá se comunicar.
As primeiras versões do bus USB utilizavam/utilizam os Controladores Host UHCI (Universal Host Controller Interface) e OHCI (Open Host Controller Interface). O USB 2.0 utiliza o Controlador Host EHCI (Enhanced Host Controller Interface).
O barramento USB permite a conexão máxima de até 127 dispositivos em uma única porta. Para isso ser possível utilizá-se de HUBs conectados em cascata. Normalmente cada HUB USB dispõe de 4 a 8 portas onde podem ser plugados mais HUBs ou dispositivos.
Os Hubs são componentes muito importantes na topologia de uma Rede USB. Eles fornecem novos canais físicos para que se possam inserir novos dispositivos à mesma.
Os Hubs costumam ser ligados à Rede elétrica para alimentar seus circuitos e ao mesmo tempo fornecer correntes suficientes para alimentar dispositivos conectados às suas portas. Alguns Hubs não têem fontes externa, estes são parasitas, alimentam-se da própria corrente do barramento USB. Esses Hubs não são uma boa escolha se você pretende "plugar" dispositivos que também se alimentam através do barramento.
Hubs sem fonte de alimentação chegam a ter 4 portas downstream, fornecendo cada uma 100mA. Já Hubs com fontes de alimentação podem fornecer por porta, 500mA.
Se um dispositivo tentar consumir mais corrente do que o Hub pode fornecer através de uma de suas portas, o mesmo permanecerá conectado fisicamente ao barramento, mas não poderá se comunicar.
Figura 2 - Arquitetura típica de um sistema USB
O Controlador
O host USB se comunica com os dispositivos através do seu controlador (chipset e outros componentes). O controlador host pode ser encontrado na própria estrutura base da placa-mãe do computador, ou pode ser adicionada num dos slots do barramento PCI. Na maioria das placas controladoras USB PCI, além das portas externas, há uma interna, que permite instalar periféricos USB dentro do gabinete do computador, se isso for preciso.
É responsabilidade do Host:
Detectar a inclusão e remoção de dispositivos;Gerenciar o fluxo de controle de dados entre os dispositivos conectados;
Fornecer alimentação (tensão e corrente) aos dispositivos conectados;
Monitorar os sinais do bus USB.
Tipos de conectores
Há duas séries de conectores USB:Série "A":
-Conector Tipo "A" Fêmea, encontrado no Host (PC), ou em portas Downstream de Hub;
-Conector Tipo "A" Macho, encontrado em um dos extremos do cabo USB, onde deve ser conectado ao Host/Root raiz, ou em portas Downstream de Hub.
Série "B":
-Conector Tipo "B" Fêmea, encontrado no dispositivo/função do cliente. Exemplos: impressoras, máquinas digitais, modem ADSL, etc;
-Conector Tipo "B" Macho, encontrado em um dos extremos do cabo USB, onde deve ser conectado a um dispositivo/função.
Estrutura elétrica e sinais do cabo USB
O cabo USB é composto por 4 fios e uma malha para eliminação de ruídos simples. Desses, 2 são fios que transportam energia para alimentar dispositivos. Essa energia é fornecida pela controladora e gerenciada pelo Driver do Controlador Host.
O Cabo USB usa cores padrão para os fios, sendo assim, o fio de cor vermelha é chamado Vbus (5v), ou seja, é o fio positivo de fornecimento de energia. O fio de cor preta é o GND (0v). Este é o pino negativo de energia do Bus.
O bus USB pode fornecer no máximo 5 Volt de tensão e 500mA de corrente elétrica, isso para cada porta do Root Hub do host. A quantidade de corrente que seu dispositivo irá precisar para funcionar pode ser configurada via software. Nos circuitos chipset da FTDI, a configuração de consumo de corrente será armazenada numa memória Flash tipo 95C56 (opcional aqui no nosso projeto).
Os outros dois fios D+(dado+) e D-(dado-) são usados pelo sistema USB para transferência de dados entre o Host, hub e dispositivos. Todos os sinais de dados trafegam apenas por esses dois fios usando a codificação NRZI (No Return to Zero Inverted). Ou seja, o bit 1 é codificado através de uma transição ocorrendo da maior voltagem para a menor, ou também o inverso, da menor para a maior. Já o bit 0 é codificado sem haver transição. Durante o intervalo de um bit a voltagem é constante.
O Cabo USB usa cores padrão para os fios, sendo assim, o fio de cor vermelha é chamado Vbus (5v), ou seja, é o fio positivo de fornecimento de energia. O fio de cor preta é o GND (0v). Este é o pino negativo de energia do Bus.
O bus USB pode fornecer no máximo 5 Volt de tensão e 500mA de corrente elétrica, isso para cada porta do Root Hub do host. A quantidade de corrente que seu dispositivo irá precisar para funcionar pode ser configurada via software. Nos circuitos chipset da FTDI, a configuração de consumo de corrente será armazenada numa memória Flash tipo 95C56 (opcional aqui no nosso projeto).
Os outros dois fios D+(dado+) e D-(dado-) são usados pelo sistema USB para transferência de dados entre o Host, hub e dispositivos. Todos os sinais de dados trafegam apenas por esses dois fios usando a codificação NRZI (No Return to Zero Inverted). Ou seja, o bit 1 é codificado através de uma transição ocorrendo da maior voltagem para a menor, ou também o inverso, da menor para a maior. Já o bit 0 é codificado sem haver transição. Durante o intervalo de um bit a voltagem é constante.
Figura 3 - Cabo USB
Tipos de interfaces Há dois tipos de interfaceamento em que um dispositivo USB pode trabalhar: Bus-powered e Self-powered. No Bus-powered o dispositivo é alimentado pelo próprio Bus USB através dos pinos Vbus e Gnd podendo fornecer no máximo 500mA direto de uma Porta do Root Hub (host) ou de uma Porta de um Hub comum que tenha sua própria fonte de alimentação. Se o Hub não tiver uma fonte de alimentação, os dispositivos conectados a ele só poderão consumir cada um, no máximo 100mA do Bus USB. Já o tipo self-powered não consome energia do Bus USB, mas deve ser alimentado com uma fonte externa para que o circuito possa funcionar.
Para que um dispositivo USB trabalhe no modo Bus-powered ou Self-powered, é necessário que o desenvolvedor configure o circuito eletricamente para que possa trabalhar da maneira desejada.
Dispositivos configurados para trabalhar no modo Bus-powered devem consumir no máximo 100mA, podendo retirar essa corrente diretamente da porta do Root hub, ou de qualquer tipo de Hub. Dispositivos Bus-powered que consomem 500mA devem ser conectados somente no Root Hub ou na porta de um Hub que disponha de sua própria fonte de alimentação.
Dispositivos Bus-powered são resetados/desligados involuntariamente quando o computador é ligado ou desligado. Já dispositivos eletricamente configurados como Self-powered mantém o circuito ligado mesmo que o computador seja resetado/desligado, isso porque são alimentados através de uma fonte externa. Esses tipos de interfaceamento devem ser levados em consideração quando criarem circuitos críticos, como alarmes, controles de abrir e fechar portas, portões e quaisquer outros dispositivos que, em hipóteses nenhuma, devam ser acionados involuntariamente. Para esses tipos de dispositivos a Self-powered é a ideal.
Para que um dispositivo USB trabalhe no modo Bus-powered ou Self-powered, é necessário que o desenvolvedor configure o circuito eletricamente para que possa trabalhar da maneira desejada.
Dispositivos configurados para trabalhar no modo Bus-powered devem consumir no máximo 100mA, podendo retirar essa corrente diretamente da porta do Root hub, ou de qualquer tipo de Hub. Dispositivos Bus-powered que consomem 500mA devem ser conectados somente no Root Hub ou na porta de um Hub que disponha de sua própria fonte de alimentação.
Dispositivos Bus-powered são resetados/desligados involuntariamente quando o computador é ligado ou desligado. Já dispositivos eletricamente configurados como Self-powered mantém o circuito ligado mesmo que o computador seja resetado/desligado, isso porque são alimentados através de uma fonte externa. Esses tipos de interfaceamento devem ser levados em consideração quando criarem circuitos críticos, como alarmes, controles de abrir e fechar portas, portões e quaisquer outros dispositivos que, em hipóteses nenhuma, devam ser acionados involuntariamente. Para esses tipos de dispositivos a Self-powered é a ideal.
Protocolo USB
O protocolo é uma das partes mais importantes do funcionamento do sistema USB, é através dele que um ou mais dispositivos conversam e trocam informações com o Host. No Host a pilha do protocolo está disponível em forma de drivers de arquivos .sys, dll, drv, exe, etc. Já no dispositivo o protocolo pode ser encontrado dentro de um microcontrolador específico, como por exemplo um PIC que disponha de uma certa quantidade de memória. Nesse caso, o protocolo é escrito com base na norma USB, em uma linguagem específica com: C ou Assembly; depois é compilado e gravado na memória do microcontrolador através de um gravador de PIC. Esta é umas das maneiras mais complexas, trabalhosas e não muito produtiva. Há microcontroladores PIC como o 18F2450 e 18F4450 que internamente já dispõe do protocolo, tornando assim mais fácil o desenvolvimento de aplicações. Uma outra maneira é através de um chipset que carrega dentro de si toda a funcionalidade do protocolo USB, livrando o microcontrolador de todo o trabalho pesado.
Diferente da Porta Serial ou Paralela onde simplesmente através dos sinais elétricos dos pinos e um programa básico é possível se comunicar com um dispositivo. No USB isso só é possível se o dispositivo carregar o protocolo USB num chipset ou mesmo dentro de um microcontrolador. Assim, concluímos que o combustível do sistema USB é seu protocolo, sem ele, não há troca de informação entre os dispositivos.
O protocolo USB tem vários recursos como: CRC (Cyclic Redundancy Check), detecção e correção de erros, detecção de conexão e remoção de dispositivos, controle de fluxo de dados assegurando transmissões isossíncronas (trafego contínuo de dados), disponibilidade assegurada de largura de banda, entre outros.
Descritores
O protocolo é uma das partes mais importantes do funcionamento do sistema USB, é através dele que um ou mais dispositivos conversam e trocam informações com o Host. No Host a pilha do protocolo está disponível em forma de drivers de arquivos .sys, dll, drv, exe, etc. Já no dispositivo o protocolo pode ser encontrado dentro de um microcontrolador específico, como por exemplo um PIC que disponha de uma certa quantidade de memória. Nesse caso, o protocolo é escrito com base na norma USB, em uma linguagem específica com: C ou Assembly; depois é compilado e gravado na memória do microcontrolador através de um gravador de PIC. Esta é umas das maneiras mais complexas, trabalhosas e não muito produtiva. Há microcontroladores PIC como o 18F2450 e 18F4450 que internamente já dispõe do protocolo, tornando assim mais fácil o desenvolvimento de aplicações. Uma outra maneira é através de um chipset que carrega dentro de si toda a funcionalidade do protocolo USB, livrando o microcontrolador de todo o trabalho pesado.
Diferente da Porta Serial ou Paralela onde simplesmente através dos sinais elétricos dos pinos e um programa básico é possível se comunicar com um dispositivo. No USB isso só é possível se o dispositivo carregar o protocolo USB num chipset ou mesmo dentro de um microcontrolador. Assim, concluímos que o combustível do sistema USB é seu protocolo, sem ele, não há troca de informação entre os dispositivos.
O protocolo USB tem vários recursos como: CRC (Cyclic Redundancy Check), detecção e correção de erros, detecção de conexão e remoção de dispositivos, controle de fluxo de dados assegurando transmissões isossíncronas (trafego contínuo de dados), disponibilidade assegurada de largura de banda, entre outros.
Descritores
Todos os dispositivos USB têm uma hierarquia de descritores que informam ao Host o que o dispositivo é, ou seja, sua "personalidade", suas características de funcionamento, como; número de série do produto, identificação do fabricante, tipo do dispositivo (impressora, scanner, modem, mouse, etc.), número de configurações, número de Endpoint, tipo de transferência, tipo de interface, etc.
Processo de enumeração No sistema USB o processo de enumeração se refere à conexão, detecção, leitura dos descritivos dos dispositivos e desconexão. É uma atividade ininterrupta. Isso tudo é gerenciado em tempo real pelo controlador Host e o software do sistema. Do ponto de vista do usuário do computador, o processo de enumeração é transparente, desde que se tenha antes instalado no sistema operacional, os drives do fabricante do dispositivo. Após isso, o carregamento dos drives quando um dispositivo é conectado, é automático.
Figura 4 - Opção 1: Circuito driver para controle de motor de passo usando O FT232BM
Figura 5 - Ferrite | Figura 6 - Ferrite com uma volta de fio | |
O objetivo da ferrite no terminal VBus é de eliminar quaisquer interferências eletromagnéticas geradas pelos componentes do computador como: fonte de alimentação, processador, cristais etc. A ferrite pode ser semelhante as das figuras acima, com uma volta de fio duro, tipo cabo de Rede, telefone ou outro.
Tabela 1 - Lista de componentes 1a opção
Resistores | Capacitores | Diversos |
R1: 27 Ohm | C1: 10nF | 1 Cristal 6 Mhz |
R2: 27 Ohm | C2: 10uF eletrolítico | 1 Memória Flash 93C46 ou 56 ou 66 |
R3: 470 Ohm | C3: 100nF | 1 Chipset FT232BM |
R4: 1,5K | C4: 100nF | 1 Conector tipo "B" fêmea PCI |
R5: 220 Ohm | C5: 100nF | 1 Ferrite (Conforme a da figura acima) |
R6: 220 Ohm | C6: 100nF | 1 Cabo USB (padrão impressora) |
R7: 2,2K | C7: 33nF | 1 Motor de passo unipolar 500mA/12v |
R8: 10K | C8: 27pF | 1 CI ULN 2003 |
C9: 27pF | 1 Cabo USB (tipo impressora) | |
Figura 7 - Opção 2: Circuito controle de motor de passo usando a Placa USB232-RCOM1 da Rogercom
Na placa USB232-RCOM1 mostrada na figura acima está disponível uma memória flash 93C66 onde é possível personalizar o dispositivo, gravando nesta o nome do produto, fabricante, número de série entre outros descritores.
Tabela 2 - Lista de componentes 2a.opção
Componentes |
1 Placa USB232-RCOM1 1 CI ULN 2003 1 Motor de passo unipolar 500mA/12v |
Passo-a-passo para instalar o driver para o FT232BM no PC
Pronto, após a construção do circuito eletrônico do driver (wardware) motor de passo, é preciso instalar o driver (software básico) do fabricante do chip FT232BM. Para isso acesse o site da FTDI http://www.ftdichip.com/Drivers/D2XX.htm, e escolha o driver para a versão do seu sistema operacional (no exemplo desse artigo usamos os drivers do windows XP). Faça download e salve no seu disco rígido (HD). Veja a figura abaixo:
Figura 8 - Pasta contendo os arquivos dos drivers para o FT232BM
Após o download do driver e sua descompactação no seu disco hígido (HD), conecte um cabo de impressora USB entre o driver de motor de passo e o PC. Veja figura abaixo:
Figura 9 - Plugando o dispositivo ao Bus USB
Se estiver usando o windows XP a seguinte tela será exibida:
Figura 10 - Assistente de instalação
Conforme a figura acima, marque a opção "Não, não agora" e clique no botão Avançar >...
Figura 11 - Assistente de instalação
Conforme mostra a figura acima marque agora a opção "Instalar de uma lista ou local específico (avançado)". Clique no botão Avançar>
Figura 12 - Assistente de instalação
Seguindo a seqüência numérica da figura acima, marque o quadro (1) "Incluir este local na pesquisa". Na seqüência 2 clique no botão "Procurar" para localizar em seu disco hígido (HD), a pasta contendo os drivers do FT232BM...
Figura 13 - Assistente de instalação
Quando a janela acima for exibida, clique no botão "Continuar assim mesmo". Ao voltar para a tela anterior, clique no botão Avançar > para ir para o próximo passo...
Figura 14 - Assistente de instalação
Figura 15 - Assistente de instalação
Pronto, após os arquivos serem copiados para os locais adequados no sistema operacional, clique no botão "Concluir" para finalizar a instalação dos drivers. Para se certificar de que os drivers foram instalados corretamente, abra o Painel de Controle do windows e execute o utilitário Adicionar ou remover programas. Na lista de programas instalados deverá constar o nome do driver "FTDI FTD2XX USB Drivers".
Figura 16 - Tela Painel de Controle / Adcionar ou remover programas
Para controlar o motor de passo, faça download do programa abaixo:
Clique aqui para fazer download do programa Controle de motor de passo via USB.
Figura 17 - Tela do programa controle de motor de passo via USB
O objetivo deste artigo foi mostrar aos usuários e visitantes do nosso site como controlar um motor de passo através do Bus USB, usando o chip FT232BM. Em breve estarei disponibilizando novos artigos sobre o assunto.
0 comentários: sobre CONTROLE DE MOTOR DE PASSO VIA USB USANDO O FT232BM NO MODO BIT-BANG
Postar um comentário para CONTROLE DE MOTOR DE PASSO VIA USB USANDO O FT232BM NO MODO BIT-BANG