Ir ao conteúdo

Hyperterminal para USB.


test man*~

Posts recomendados

Postado

Boa noite, seguinte... Hoje temos o hyperterminal para fazer comunicação serial. Existe um outro do mesmo tipo para fazer comunicação USB "hyper USB TERMINAL"?

Desde já agradeço.

Postado

Não pelo simples motivo que cada dispositivo USB tem um driver próprio (salvo os que são HID) e o Hyperterminal se faz uso do driver da porta serial para mandar os dados. Para HID isso seria possivel.

Abs

Postado

Não entendi muito bem sua pergunta.

Originalmente o hyperterminal era ou é usado para acessar uma COM!

você consegue sim emular uma COM usando uma conexão USB.

É isso que você quer fazer?

Tenho uma rotina simples aqui que faz, e dá para simular no proteus caso você utilize o windows XP, ou então funciona em qualquer OS se estiver disposto a montar o esquema.

Falou

Postado

Matheus, pelo o que eu entendi o que o test man quer é um programa que permita você escrever manualmente o que irá ser mandado em um pacote USB para um dispositivo que você escolha no programa, e consiga ler a resposta no proprio programa. Basicamente como o hyperterminal faz com as conexões serial, porém uma versão para o USB. Acho que ele quer testar a lógica do USB dele sem ter que ficar fazendo alguma programação no lado do PC.

Postado
Matheus, pelo o que eu entendi o que o test man quer é um programa que permita você escrever manualmente o que irá ser mandado em um pacote USB para um dispositivo que você escolha no programa, e consiga ler a resposta no proprio programa. Basicamente como o hyperterminal faz com as conexões serial, porém uma versão para o USB. Acho que ele quer testar a lógica do USB dele sem ter que ficar fazendo alguma programação no lado do PC.

Sink00... É isso mesmo cara, quero fazer uns testes simples e básicos... Para depois tentar fazer a comunicação com o labview. Estou procurando pela net, mas não encontro nada parecido, se vocês souberem de um me falem por favor.

Postado

Bem, um exemplo básico está abaixo. O código super simples.

Estou rodando um Windows XP virtual porque o Proteus não possui drivers USB que rodem no widnows 7 64. SE você montar, funciona também.

Circuito Capado apenas para simulação:

circuito.png

Reconhecido pelo windows como COM3:

reconhecidowindowsvirtu.png

Sistema rodando no hyperterminal:

simulaorodando.jpg

[EDIT:] OOPS esqueci de por o código :D

#include <18F4550.h>
#device adc=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)

#include <usb_cdc.h>

void main()
{
usb_cdc_init(); // Inicia protocolo cdc
usb_init(); // Inicia USB

for(;
{
usb_task(); // Testa comunicaçao usb

if (usb_enumerated())
{
printf(usb_cdc_putc,"Testando Conexao USB->Serial!\n\r");
delay_ms (100);
}
}
}

[/edit]

[EDIT 2:]

Esse esquema que passei para você, funciona no windows 7 64bits também! Só a simulação que não por causa do proteus.

[/edit 2]

Já que disse que quer um modo de comunicar com o Labview, tem um site que o cara postou uns arquivos base para que você estude e adapte ao seu projeto.

Usei a versão que comunica com o Visual Studio C#.

Só que nesse caso, o cara ensina a fazer uma conexão USB verdadeira e não emulando uma COM. É um pouco mais complicado, mas é a que eu prefiro usar. Ainda mais agora que descobri que ele lançou uma nova versão que funiona sobre o Windows 7 64bits.

O site é: http://www.hobbypic.com/

você deve baixar o arquivo chamado: PicUSBStuff

Como ele mesmo diz: "Conecta tu PIC al PC por USB con el driver de Microchip y C++, VB, Java, Delphi, Labview y Linux"

Não espere que seja fácil. você deverá estudar por conta própria pois esses arquivos foram feitos em meados de 2005 e nem sempre se acha ajuda para isso.

Qualquer dúvida só perguntar q se eu souber, respondo.

Falou

  • 2 anos depois...
Postado

Fala Matheus beleza?!?!

Pow cara, acho que você pode me ajudar... Eu estou com um probleminha parecidíssimo com esse!

Eu montei um circuito pra simular a comunicação USB CDC do pic 18f4550, aonde chega uma tensão vinda de um potenciometro na porta A0 dele, faço a conversão AD e teria que visualizar esse valor no hyperterminal.

O problema é que já fiz de tudo e não consigo visualizar os dados no hyperterminal! Primeiramente, simulei o circuito, e a COM 3 apareceu no gerenciador de dispositivos normalmente.. Linkei ela com a COM4 ( que seria o hyperterminal) através do 'Virtual Serial Port', mas na hora de ler os dados no hyper nada acontecia!

Depois tentei fazer parecido com o que você disse: Simulei, a porta COM 3 apareceu, configurei a porta COM que o hyper iria ler sem linkar nenhuma outra porta ( eu achei estranho, mas pareceu que você fez assim pela sua mensagem) e continuei sem sucesso...

Até um exemplo que baixei pronto pela internet não consigo fazer a comunicação.. Acho que estou fazendo alguma besteira!

AI A BAIXO SEGUE O CIRCUITO E O CÓDIGO QUE EU USEI! ME AJUDEM POR FAVOR, ;(

#include <18F4550.h>

#device adc=10

#FUSES HSPLL // High Speed Crystal with PLL enabled
#FUSES PLL5 // Fosc/5
#FUSES CPUDIV1 // System Clock by 4
#FUSES NOWDT // No Wathdog Time
#FUSES NOPROTECT // Não Protegido
#FUSES PUT // Power up Timer
#FUSES NOBROWNOUT //Não resetar
#FUSES NOLVP // No low voltage programing
#FUSES DEBUG // Debug mode para uso com ICD
#FUSES USBDIV // USB Clock source comes from PLL divide by 2
#FUSES VREGEN // USB Voltage regulator enabled

#use delay(clock=48000000)
#use rs232(baud=9600, parity=n, bits=8, xmit=PIN_C6, rcv=PIN_C7)

#include <usb_cdc.h>
#include <stdio.h>


float v;

void getVoltage(void) // ler adc
{
set_adc_channel(0);
delay_us(10);
read_adc(adc_start_only); // começa a conversão
v=read_adc(adc_read_only); // resultado da conversão
delay_us(1); //aplica delay para concluir a operação anterior
v=v*0.0049;
printf(usb_cdc_putc,"%f \n \r ", v);
delay_ms(100);
}


void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
enable_interrupts(GLOBAL);
set_tris_B(0x00);
usb_init(); // inicia o protocolo USB
usb_cdc_init(); // inicia o protocolo CDC

while (!usb_cdc_connected()) {} // espere enquanto o protocolo CDC não se conecta com o driver CDC


while(true)
{
usb_task();
if (usb_enumerated())
{
//LED indicativo de conectividade
output_high(pin_B5);
delay_ms(500);
output_low(pin_B5);
delay_ms(100);
getVoltage();
}

}


}

circuitoo.jpg

Postado

PedroVieira16, desculpe a demora na resposta. Esse fim de semana estive sumido pois tive muitas festas para ir. :D

Seguinte, quando chegar em casa dou uma olhada. Mas do jeito que você informou, parece tudo correto.

Você emula, aparece a COM3 (exemplo). Abre o hyperterminal (windows XP?) e configura ele para acessar a COM3.

O único problema que vejo seria na escolha da velocidade de configuração no hyperterminal.

Tentarei reproduzir esse circuito novamente quando chegar do trabalho.

Falou

Postado

Mano, valeu pela ajuda! Eu jÁ consegui!! Sabe qual era minha burrice?

Eu linkava a com3(proteus) com a com4(hyperterminal) pelo virtual serial port... E selecionava a com3 no hyperterminal e nÃo conseguia visualizar nada!

Ai eu tinha me esquecido de apagar o 'par' que foi linkado no vsp! Ai era por isso que quando selecinava a com3 no hyper, nÃo via nada! ^^

deu tudo certo. Desculpa a ignorÂncia ae!!

Postado

OK então. Já usei esse Virtual Serial Port.

Para que ele funcione, era só você ter configurado o hyperterminal para ler a COM4 que por sua vez estava ligada 'a COM3. Acho que já fiz isso e funcionava.

Falou

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!