erro inicialização PIC USB

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

erro inicialização PIC USB

Mensagempor SoMeWhErE » 03 Mai 2008 10:54

Olá, pessoal.

Então estou dando continuidade ao meu trabalho com PIC USB, e estou tendo um probleminha.

É um PIC18F4550.
Quando conecto o PIC ao pc a maioria das vezes ele reconhece como USB Composite Device , mas na verdade é um USB HID ,porém depois de desligar e ligar varias vezes ele reconhece como HID.

OBS.: Na placa de desenvolvimento que possuo nunca aconteceu, então depois de pronto fui confeccionar minha pci, ai começaram meus problemas.

Se já ocorreu com alguem, ou tiver alguma dica na confecção da pci, todos serão bem vindos.

ORIGADO.
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Re: erro inicialização PIC USB

Mensagempor Jorge_Francisco » 03 Mai 2008 11:16

Pois é, isso ja aconteceu comigo, no meu caso não tinha ajustado corretamente o PLL, veja se não é isso. Colocou capacitor no Vusb? Sua fonte está limpa? Tente verificar ruidos.


Vlw
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Re: erro inicialização PIC USB

Mensagempor SoMeWhErE » 03 Mai 2008 11:37

Jorge_Francisco escreveu:Pois é, isso ja aconteceu comigo, no meu caso não tinha ajustado corretamente o PLL, veja se não é isso. Colocou capacitor no Vusb? Sua fonte está limpa? Tente verificar ruidos.


Vlw


Olá,

então estou usando cristal de 8MHz, e estão ativos os seguintes, no MikroC:
_PLLDIV_2_1L
_CPUDIV_OSC1_PLL2_1L
_USBDIV_2_1L

não sei muita coisa sobre PLL.

em relação ao capacitor tem um eletrolitico de 1uF.
se não me engano parace que vi no video do site do bardhp, de colocar um capacitor entre D+ e D-? vc pode me dizer alguma coisa sobre o assunto.

Estou usando a alimentação direto da fonte do PC, será que tem algum problema?

Obrigado.
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Mensagempor fabim » 03 Mai 2008 11:58

dica, que resolveu meus pepinos.
Desligue o pull-up interno no D+.
Coloque um resistor, entre VDD do cabo USB e pino do PIC, e fique observando, preso em um loop, quando chegar VDD pelo cabo do USB do PC, você liga o pull up interno do D+ pra falar pro PC que vai inicializar uma comunicação em 12Mbps, espere aproximadamente 1mS, passado 1mS voce inicializa a rotina da usb, USB_init.

Experimente fazer assim, comigo no mikropascal resolveu 100% espetou reconhece na horinha.

não sei se conhece pascal, mais só de olhar vai entender.
Código: Selecionar todos
program USB_HID_test;                       // p18f4550def  delays

uses USBdsc2, USBGenHID;

var
 k, i          : byte;
 //ch : array[20] of byte;
 userWR_buffer : array[64] of byte;
 userRD_buffer : array[64] of byte;


label
 principal, loop, hid_fora;


//******************************************************************************
// interrupção
//******************************************************************************
procedure interrupt;
begin
  HID_InterruptProc;
end;
//******************************************************************************

//******************************************************************************
// inicialização
//******************************************************************************
procedure Init_Main;
begin
   //--------------------------------------
   // Disable interrupts
   //--------------------------------------
   INTCON := 0;                             // desliga GIE, PEIE, TMR0IE,INT0IE,RBIE
   INTCON2 := 0xF5;
   INTCON3 := 0xC0;
   RCON.IPEN := 0;
   PIE1 := 0;
   PIE2 := 0;
   PIR1 := 0;
   PIR2 := 0;

   ADCON1 := ADCON1 or 0x0F;
   //--------------------------------------
   // configura portas
   //--------------------------------------
   TRISA := 0xFF;
   TRISB := %11111110;
   TRISC := 0xFF;
   TRISD := 0Xff;
   TRISE := 0x07;

   LATA := 0;
   LATB := 0;
   LATC := 0;
   LATD := 0;
   LATE := 0;
   //--------------------------------------
   // limpa RAM
   //--------------------------------------
   asm
    LFSR     FSR0, $000
    MOVLW    $08
    CLRF     POSTINC0, 0
    CPFSEQ   FSR0H, 0
    BRA      $ - 2
  end;

   

end;
//******************************************************************************
// Main Program Routine
//******************************************************************************
//var bbbb: byte; volatile;
begin
  Init_Main;
loop:
  delay_ms(500);
  setbit(latb,0);
  delay_ms(500);
  clearbit(latb,0);
  if testbit(portd,3)=1 then goto principal
  else
  goto loop;
principal:
  setbit (UCFG,FSEN); //liga usb
  setbit (UCFG,UPUEN); // liga pull up no D+ pra falar que é full speed
  delay_ms(1);
  HID_Enable(@userRD_buffer, @userWR_buffer); //inicializa comunicação usb
  delay_ms(1000);
   { while true do
    begin
    if portd.3 = 0 then goto hid_fora {//se ptd.3 = 0 cabo usb desligado
      else }
      while portd.3 = 1 do
      begin
      k := HID_Read;
      i := 0;
      while i < k do
          begin
          setbit(latb,0);
          userWR_buffer := userRD_buffer;
          HID_Write(@userWR_buffer, k);
          k := 0;
          inc(i);
          clearbit(latb,0);
          end;
      end;
  hid_fora:
  clearbit (UCFG,FSEN); //desliga usb
  clearbit (UCFG,UPUEN);// desli pull de full speed
  HID_Disable;
  goto loop;
  InitUSBdsc;
end.

fabim
Editado pela última vez por fabim em 03 Mai 2008 12:06, em um total de 1 vez.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: erro inicialização PIC USB

Mensagempor Jorge_Francisco » 03 Mai 2008 11:58

Colocou FOSC_HSPLL?? Sobre colocar cap no D- e D+ nunca tentei, acho que não daria certo, mas tente aí. Está tirando a alimentação direto da USB? Seu dispositivo não está consumindo mais do que a USB pode fornecer não neh? Ajustou o consumo no arquivo de configuração?
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Re: erro inicialização PIC USB

Mensagempor SoMeWhErE » 05 Mai 2008 08:05

Jorge_Francisco
FOSC_HSPLL coloquei sim.

Não, estou tirando a alimentação da fonte do pc.
No arquivo de configuração desmarquei a opção Bus Powered.


Fabim
Vou ver se consigo testar isso ae ainda hj, depois posto o resultado.

VALEW
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Mensagempor SoMeWhErE » 13 Mai 2008 11:08

Fabim

valew cara, mais uma vez vc me ajudando, testei essa do resistor ligado ao VDD da USB e joguei no pino do pic, e funcionou certinho, agora toda vez que espeto o bixim no pc, ele reconhece certinhu.

agora só me resta resolver o outro problema que comentei no outro tópico, sobre o pic travar quando aciono os reles. Agora parece que ele reseta as vezes. Medi com um osciloscópio a alimentação do uC quando acionava os reles, e não mexeu nada. O pino MCLR está desativado.

Obrigado a todos pela ajuda.

VALEW GALERA ! ! ! !
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Mensagempor fabim » 13 Mai 2008 12:37

faz um rascunho pobre do circuito de interface de comando dos reles e pic, um componente de bloco de como esta a fonte e posta aí pra gente ver. Com certeza uma imagem fala mais que 1000 palavras.

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor SoMeWhErE » 15 Mai 2008 08:36

Código: Selecionar todos

                    +5V
                      |
                     _|_______
      --------------|-o  NA o|------------------ Reator-------------Neutro
      |    Fase---- |o C     |                    |  |
      _    (110)    |_o_____o|                    |  |
      ^1N4148         | Rele                     Lâmpada
      |_______________|
                      |
                      |
                      |
               10k    /
        PIC---/\/\/\-| BC 548
                      \
                       |
                    GND


Ae está um esquema de como esta o comando dos reles.
Como assim componente de bloco???

valew
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Mensagempor fabim » 15 Mai 2008 08:46

faz uma coisa pra mim, fazendo um favor feito por você.rsrs

entre o comum e NA do rele solde o seguinte circuitinho.

COMUM---\/\/\/\/\/\/\----| |----- NA
-----------RES 100R ----CAP 100nF-------

Solde essa associação de componentes em todos os relês por baixo da placa mesmo, e bem na entrada AC do trafo solde um também.

Coloque o circuito pra funcionar e veja se vai dar pau novamente.

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor SoMeWhErE » 15 Mai 2008 17:47

Então fabim, fiz o circuitinho em um rele só e liguei somente ele os outros deixei desligado.....continuou dando o problema....

acontece o seguinte.......é como se o PIC resetasse, as vezes ele para de comunicar e depois volta, outras desaparece de vez e dae só desligando e ligando de novo.

é que em tempo real, um software do pc fica pedindo a temperatura e o pic envia, tem um LM35 ligado ao pic. Tudo junto a parte de ligar os reles.

e quando acontece de ele reiniciar, aparece tipo uns riscos no monitor, tipo interferência.

Obs.: já liguei com foto acionando os transistores e duas fontes, e continuou apresentando o problema.

não sei mais o que fazer.........

VALEWSSSSS
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Mensagempor fabim » 16 Mai 2008 10:36

cara, tu esta comendo bronha em alguma coisa simples.

1° alimente o sistema com bateria de 12V, de moto central de alarme etc.
Se continuar o problema de reset intão descarte que seja a fonte.

2° faça o acionamento aleatório de todos os relês, com e e sem a carga ac ligada aos reles. se sem a carga AC o pic não resetar de forma alguma intão pode ser problema de indução mesmo, mas caso das duas formas ele continue resetando.

3° observe se o WDT esta ligado, caso esteja fique de olho pra ver se não comeu bronha em alguma rotina, ou se não esta fazendo caca em alguma lógica e o processador esta se perdendo no programa.

4° observe quais são os pinos de saida para acionamento de perifericos, faça um teste colocando todos a 1, e meça um por um para ver se tem mesmo os 5V ou se tem algum pino em curto.

5° dispois de fazer tudo o que eu falei, ainda não funcionar.. jogue tudo no chão pise encima até virar poeira cósmica e comece do zero novamente desde a programação simulando passo a passo pra ver se ta certinho até o novo hardware. Se mesmo assim não funcionar, desista desta profissão maldita.rsrs

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor fabim » 19 Mai 2008 00:59

e aí fioti risorveu ?

o maior trunfo de quem tenta pelomenos ajudar é saber os resultados de suas dicas, para pelo menos se não der certo descobrir o que estava errado e aprender com o erro.

fala alguma coisa, ou cale-se para todo o sempre.rs

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor SoMeWhErE » 19 Mai 2008 08:10

ae Fabim.....

ainda naum testei......to cuidando de varias coisas ao mesmo tempo....e faço um poco de cada....mas quando testar...pode ter certeza que postarei o resultado......

VALEWSSS
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Mensagempor SoMeWhErE » 26 Mai 2008 16:42

entaum Fabim.....estou de volta.....dando um parecer

eu havia testado antes com opto e duas fontes.....mas sei lá a caca que eu fiz que continuava a dar problema......

mas conversando aqui com o pessoal....resovi fazer de novo....dae ficou assim....

do pic até a entrada do opto tá com a fonte do pc.....da saida do opto pra frente com uma fonte externa.....e até agora esta tudo rolando normalmente......faz uns 3 dias consecutivos que está funfando blz....

obs.: troquei o cabeamento por cabo manga com malha porém insistia em dar o problema, dae então fiz o teste com os opto novamente.

VALEWSSS......pessual.....
Avatar do usuário
SoMeWhErE
Byte
 
Mensagens: 119
Registrado em: 20 Jun 2007 18:09
Localização: Charqueada

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x