Portal - FPGA para Todos

Módulo USB245

Módulo USB245

Neste artigo será demonstrado um módulo para o PLD utilizando um FT245, da marca FTDI. 

Exemplos de aplicação

O FT245 é um componente que possibilita a conversão de dados do protocolo USB para o protocolo FIFO paralelo de 8 bits. Entre as aplicações mais evidentes, uma delas seria a utilização do componente como "intermediador de informações" entre um computador e um outro componente o qual precise de dados paralelos, como por exemplo um display de 7 segmentos ou no controle de multiplos processos os quais seriam controlados pelo computador.

Também é possivel fazer o caminho inverso enviando dados ao computador ou qualquer outro dispositivo que possua uma interface USB. Poderiam ser utilizados alguns sensores os quais obteriam informações do ambiente externo e comunicariam as informações ao computador e desse forma ele poderia processar os dados e tratá-los do modo como o projetista achas conveniente.

Protocolos de comunicação: USB e FIFO

O componente FT245 utiliza-se de dois tipos de protocolos de comunição: o protocolo FIFO e o USB.

O protocolo FIFO (First in, First out) funciona como uma fila onde os dados são ordenados por ordem de chegada e enviados nessa mesma ordem. Assim, o dado que estiver "esperando" a mais tempo será o primeiro a ser enviado. Uma explicação gráfica pode ser encontrada na Figura 1:

Figura 1

Considere o retângulo branco como sendo o FT245 e os quadrado coloridos como sendo dados. Como pode ser visto o dado branco é o primeiro a ser enviado ao FT245 e por esse razão também será o primeiro a sair dele. O mesmo pode ser dito pra os dados cinza e vermelho. No caso do componente FT245 a comunicação não é feita de forma serial, mas sim paralela, são recibidos oito dados paralelamente por vez e os primeiros oito dados da fila serão enviados paralelamente a plataforma interligada ao componente.

Como dito acima outro protocolo de comunicação do FT245 é o USB (Universal Serial Bus), que está presente na maioria dos computadores modernos. Esse artigo não tem o intuito de explicar o funcionamento do protocolo USB detalhadamente, porém o objetivo dele é explicar que no FT245 dados seriais de 8 bits que não podem ser enviados diretamente a um computador podem ser convertidos para o protocolo USB com esse componente. Isso torna muito mais fácil fazer a comunicação entre ambientes externos e um computador. 

Outra forma de pensar é a de que dados provenientes de um computador podem ser eviados via USB, o qual não é um protocolo muito fácil de ser trabalhado, e convertidos para o protocolo FIFO serial, o qual é muito mais fácil de ser utilizados em aplicações eletrônicas. Um diagrama do funcionamento do componente pode ser encontrado abaixo (Figura 2):

Figura 2

Layout e pinagem da placa

Nosso módulo para o FT245 possui o seguinte layout (Figura 3):

Figura 3

As duas baras de pinos são separadas para que a barra da esquerda sejá pelo envio dos dados ou recepção deles. Já a barra da direita faz a parte do controle do protocolo de comunicação. O componente FT245 possui dois protocolos de comunicação distintos, um para leitura e outro para a escrita de dados.

Protocolo de Comunicação Para a Leitura de Dados

Para o protocolo de comunicação de leitura de dados do componente FT245 são utilizados os pinos  RXF# e RD#. RXF# é um pino de saída e RD# de entrada. O pino de RXF#  fica em nível lógico alto enquanto o FT245 "não está pronto" para enviar dados, devido a uma transferência de dados ter sido feita a pouco tempo não dando tempo para que novos dados sejam enviados. Há uma tabela com os valores de tempo de espera necessário entre a transmissão de dois dados. Ao ser atribuído nível baixo a RXF# os dados podem ser enviados ao dispositivos conecnatados aos pinos de dados.

O pino DR# quando em nível alto deixa os pinos de dados do FT245 em alta impedância fazendo com que nenhum dado seja transmitido, no momento em que DR# é passado para nível lógico baixo os dados são transmitidos, obviamente para isso RXF# deve ter nível lógico baixo nesse momento também.

Uma digrama de sinais do protocolo de leitura pode ser observado abaixo (figura 4):

Figura 4

Protocolo de comunicação para a escrita de dados

Para o protocolo de escrita de dados dois pinos fazem o controle do tráfego sendo eles: WR e TXE#. Um pulso em WR faz com que os dados sejam escritos nos pinos de dados do FT245 que por consequência fará com que o nivel lógico de TXE# seja atribuído como baixo como avisando àquele que enviou os dados de que os dados estão sendo recebidos. 

O pino WR deve ficar em nível lógico baixo a todo instante para que não seja jogado lixo na memória do FT245. Por isso deve ser dado apenas um pulso em WR para que sejam transmitidos os dados, esse pulso possui um tempo determinado especificado pela folha de dados do componente, o qual será mostrado mais adiante nesse mesmo artigo. Um diagrama da transição de estados em um processo de escrita pode ser encontrado abaixo (Figura 5):

Figura 5

O próximo tópico abordará o significado de T1, T2, ..., T12 nas duas figuras anteriores.

Tabela de tempo para as Transições

O componente FT245 possui em sua folha de dados duas tabela com os tempos necessários de cada pino em cada estado para que tudo ocorra conforme o esperado. A primeira tabela é mostrada abaixo (Figura 6):

Figura 6

A primeira tabela se refere aos tempos de transição dos de pinos leitura de dados (RD, RXF e os próprios pinos de Dados). A descrição da segunda coluna não é tão importante, pois os tempos T1 até T6 são mostrados na Figura 4 desse mesmo tutorial. Todos os tempos estão em nanosegundos. Pegando o exemplo de T1 podemos perceber que após RXF# ficar em nível lógico baixo, RD# precisa ser baixado para 0 e, conforme a tabela da folha de dados, permacer nesse nível durante 50ns.

A segunda tabela existente na folha de dados é referente aos diagramas de transição do protocolo de escrita do componente. A tabela é pode ser vista abaixo (Figura 7).

Figura 7

A interpretação da tabela é análoga a anterior, os tempos também são em nanosegundos e os tempos T7 até T12 estão mostrados na figura 5 desse mesmo artigo. 

O respeito de todos os tempos presentes nas tabelas da folha de dados são importante para que não aconteçam erros na transmissão de dados.

Para utilizar o FT245 em circuitos eletrônicos é necessário o conhecimento de seus dois protocolos: de escrita e leitura. Também é necessário conhecer os pinos participantes dos dois protocolos e respeitar os tempos fornecidos pelo fabricante em sua transição de estados.

Quem está Online

Temos 23 visitantes e Nenhum membro online

Apoio

Login Form

 

Artigos Relacionados