USB HID na 18F2550

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

USB HID na 18F2550

Post by nermin_np »

Nekoliko dana pokusavam da pokrenem pic 18F2550 ali PC nikako da prepozna mikrokontroler kad ga povezem preko USB interface-a. Nasao sam na netu neki prosti mikroc source code, podesio HID terminal, ubacio generisani fajl USBdsc.c u projekat, kompajliranje prolazi bez problemakao i upis samog hex fajla u mikrokontroleru, ali kad isti treba da se pokaze prakticno, onda dobijem jedno veliko NISTA :(
molim za pomoc, u prilazem source mirkco C kod

Code: Select all

unsigned char readbuff[64];  // Buffers should be in USB RAM, please consult datasheet
unsigned char writebuff[64];
char cnt;

void interrupt(){
   USB_Interrupt_Proc();                  // USB servicing is done inside the interrupt
}
void main(void){
  HID_Enable(&readbuff,&writebuff);       // Initialize HID communication and specify our read and write buffers
  while(1){                               // Main program loop
    while(!HID_Read());                   // Loop until there's data to read on HID

    for(cnt=0;cnt<64;cnt++)               // Loop through our 64 byte buffer.
      writebuff[cnt]=readbuff[cnt];       // Echo each byte from the read buffer to the write buffer

    while(!HID_Write(&writebuff,64));     // Send the write buffer over USB
  }
}
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Sema povezivanja...
Attachments
Capture.JPG
Capture.JPG (55.51 KiB) Viewed 9767 times
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB HID na 18F2550

Post by pedja089 »

Verovatno je do podesavanja oscilatora. Moras imati 96MHz za usb. Pa onda to podelis za procesor koliko ti treba, ili neka druga opcija.
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Ima li neko neki primer u mikroc i isis? Puno bi mi znacilo... :?
User avatar
Khaderah
Odlično uznapredovao
Odlično uznapredovao
Posts: 967
Joined: 17-04-2012, 16:10
Location: Zagreb, Hrvatska

Re: USB HID na 18F2550

Post by Khaderah »

nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Ocito ne umem da podesim nesto. Prilazem mikroC projekat, nadam se da neko ima vremena da pogleda :s
Attachments
usbproba.zip
Fajlovi
(38.96 KiB) Downloaded 346 times
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: USB HID na 18F2550

Post by Kukinjos »

Evo, probao sam tvoj kod na ploči EasyPIC v7, kristal 8MHz....
Image
nisam se gnjavio s tim je li radi ili ne, ali ga je uredno prijavio kao HID na računalo. Evo ti kompletan projekt:
usbproba.rar
(70.67 KiB) Downloaded 382 times
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Hvala, dosta mi je pomogao projekat koji si mi poslao. Ali nemam oscilator od 8mhz, pa sam mikroc projekat korigovao da radi sa kristalom od 12.000 (12 Mhz), testiranje u ISIS 7 je proslo ok, ali i dalje ne mogu da nateram PC da mi prepozna uredjaj kad ga vezem fizicki za USB interfejs :(. Kacim fajlove od MikroC i ISIS, mikrokontroler sam fizicki povezao kao sto je to prikazano u ISIS 7, s tim sto sam pin 20 vezao za +5V, i pinove 8 i 19 za - ...
Attachments
usbproba.zip
(106.5 KiB) Downloaded 346 times
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: USB HID na 18F2550

Post by Kukinjos »

Opet kažem, file koji si poslao prijavljuje PIC uredno na PC, zato nemoj mijenjat sto različitih fileova, već se usredotoči na hardware. Ja sam pronašao jedan kristal na 12MHz i u projektu promijenio djelitelj na 3 i sve radi, tj. prijavljuje se na PC kao HID. U prilogu ti je slika iz hardware managera, slika postavki projekta i projekt. Provjeri dobro pinove na USB-u, dobro su nacrtani na ISIS-u, znači D- ide na RC4 (pin15), a D+ ide na RC5 (pin 16). Moraš povezat masu s USB konektora na GND kontrolera, MCLR (pin1) na +. Ako je sve tako, provjeri USB kabel, konektor, port, što god, jer ovo kod mene radi, prijavljuje se na PC!
Image
Image
usbproba.rar
(70.8 KiB) Downloaded 349 times
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Onda ne znam sta mu je, sve je uradjeno kao sto je navedeno, cak sam i USB kablo isekao od muke, proverio mu raspored zica, i da li je neka u prekidu, sve je kako treba, +D je gde i treba da je, -D takodje. Pokusao da napajam sklop preko USB +5V, i opet nece, pinove na PIC-u ne znam ni koliko puta proveravam, sve je fizicki u redu, na ovaj usb port drugi USB uredjaji rade bez problema, kad prikacim PIC, ponasa se kao da ga nisam ni prikacio. PIC programiram preko PICPgm programera i allpic sa korekcijom zener diode za mclr. PICPgm izbaci poruku da je PIC uspesno programiran ...
Neka ga .... odustajem od projekta :roll:
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Vratio se da se patim sa starim projektom :D . Nasao sam na netu neki hex za USB komunikaciju, koji radi bez problema na isto spajanje komponenti kao sto je gore navedeno (samo sto sam nasao kristal od 8 Mhz), za programiranje koristim PICKIT 2 clone. E sad, kad ucitam moj hex fajl ili hex fajl od kukinjos-a (sa njegovog prvog posta gde je koristio 8Mhz kristal), opet ista prica, kao da je mrtav :cry: . Imal ko bilo kakvu pretpostavku do cega bi moglo biti, ja vise ideja nemam. Uploadovacu hex fajl i PC aplikaciju nadjenu na netu koja radi .... :(
Attachments
pwm0.zip
(14.68 KiB) Downloaded 359 times
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: USB HID na 18F2550

Post by Kukinjos »

Ponukao si me opet otvorit projekt. Moja ploča je dodavala vanjski napon od 3,3V na pin 14-Vusb, pa sam time i isključio fuse VREGEN u CONFIG2L registru. Kako ti nemaš priključen izvor od 3,3V izvana na taj pin, trebaš uključit interni regulator i onda će ti vjerojatno sve proradit kako si zamislio. Ja sam sad skinuo to vanjsko napajanje i uključio interni 3,3V i probao, sve radi i uredno se prijavljuje na PC. Evo ti cijeli projekt na za 8MHz kristal.
usbproba.rar
(70.51 KiB) Downloaded 392 times
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Hvala puno, evo sad radi :D. Samo sto imam problem rekao bih sa mojim mikroC kompajlerom, neka krekovana verzija, otvorim projekat, kompajliram, izbaci poruku da je uspesno kompajlirao, ucitam u PIC i nista ne dobijem, videcu da kupim licencu :)
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Evo opet mene, mozda sam dosadio sa ovim ali sta da radim ... PIC se prijavljuje na PC, sve je ok, samo sto ne obavlja funkciju koju treba, po programu treba kad mu se posalje neki tekst da isti vrati na PC, sto nije slucaj, koliko sam mogao da shvatim, on prihvati neki tekst, ali u vidu praznog stringa. U ISIS simulaciji radi kako treba, kad se sve slozi prakticno ne radi, da napomenem da sam dodao i kondenzator od 200nF izmedju VUSB porta i GND jer jedino tako mi PC prepoznaje HID. Imal neko neku pretpostavku do cega bi moglo biti? Probao sam i sa rezonatorom od 20Mhz, isto se ponasa ...
nermin_np
Pocetnik na forumu
Pocetnik na forumu
Posts: 30
Joined: 21-02-2013, 10:38

Re: USB HID na 18F2550

Post by nermin_np »

Odradio sam. Bilo je potrebno da se u source iskljuce komparatori. Sad radi ok, prilazem soruce ako nekom bude trebalo (soruce je identican sa onim u Help koji ima mikroc kompajler, sa malim izmenama) ....

Code: Select all

unsigned char readbuff[64] absolute 0x500;   // Buffers should be in USB RAM, please consult datasheet
unsigned char writebuff[64] absolute 0x540;
char cnt;
char kk;
char proba[10];
void interrupt(){
   USB_Interrupt_Proc();                   // USB servicing is done inside the interrupt
}
void main(void){
trisb=0;
portb=0;

 // ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
  CMCON  |= 7;                            // Disable comparators
  HID_Enable(&readbuff,&writebuff);       // Enable HID communication  
  while(1){
    while(!HID_Read())      ;    
    for(cnt=0;cnt<64;cnt++)
    {
      writebuff[cnt]=readbuff[cnt];    
     }
      while(!HID_Write(&writebuff,64));
      
      if (readbuff[0]=='u') portb.rb1=1;
      if (readbuff[0]=='i') portb.rb1=0;
      
  }}
DoubleM
Posts: 1
Joined: 11-08-2013, 06:01

Re: USB HID na 18F2550

Post by DoubleM »

Ja sam imao ovaj isti problem i mučio se već mjesec dana i nikako nisam skužio zašto ne radi. Probao sam sve što je tu bilo napisano i ništa nije pomoglo. Onda mi je jednom došla ideja da izmjerim napon na Vusb pinu od PIC-a, i gle čuda, kaže 1.8V. To naravno nije u redu, izgleda da sam prilikom dosadašnjih eksperimentiranja nekako uspio spaliti njegov interni regulator za USB.

Onda sam lijepo isključio interni regulator, stavio jedan LM317 i podesio na 3.3V, dao mu to na Vusb. Evo sad radi savršeno :D

Možda netko ima sličan problem. Ako vam ništa ne pali od gore navedenog, možda vam je neispravan interni regulator, i ovo reješenje mi je pomoglo.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB HID na 18F2550

Post by pedja089 »

Nisam imao takvih problema, ali to mi nikad ne bi palo na pamet da probam...
Odlicna ideja :)
Post Reply