Jump to content
ELFORUM - Forumul electronistilor

Interfata [ PIC18F - PC USB ] - 12Mb/s (concurs cu premii)


Blacksmith

Recommended Posts

  • Replies 23
  • Created
  • Last Reply

Nustiu .... citiva kiloherti .... Dar nu conteaza asta. Nu e un osciloscop adevarat e doar un exemplu pentru folosirea USB-ului cu PIC.Shit! Am aflat ca HID-ul (pe care e facut si ascest osciloscop) e doar pentru Low-Speed. :banghead: Eu vreau o interfata rapida pe USB 2.0 :smt005

Link to comment

Cine ma ajuta sa fac un transfer intre PIC18F2550 si PC pe USB 2.0 Full-Speed 1Mbyte/s

Problema ta asa cum ai enuntat-o nu are solutie:

 

USB2.0 la 1MB nu exista, exista doar USB2.0 la 12Mb = 1.5MB (l-au botezat Full Speed) si USB2.0 la 480Mb = 60MB (High Speed).

1 MB e o viteza nestandard, daca il faci la viteza asta nu vei putea vorbi cu niciun alt device USB2.0.

 

Nu inteleg, de fapt cum vrei sa fie? Daca ai nevoie de ajutor te rog clarifica urmatoarele:

1. De ce vrei la 1 MB si nu il faci la 1.5 MB?

2. Transferul de date iti trebuie neaparat folosind HID?

Link to comment

Problema mea e ca sint afon in ceea ce priveste protocolul USB (am doar 3 zile de studiu) si d-asta nu pot sa spun clar ce vreau ...

 

USB supports three data rates:

A Low Speed (1.1, 2.0) rate of 1.5 Mbit/s (187.5 kB/s) that is mostly used for Human Interface Devices (HID) such as keyboards, mice, and joysticks.

A Full Speed (1.1, 2.0) rate of 12 Mbit/s (1.5 MB/s). Full Speed was the fastest rate before the USB 2.0 specification and many devices fall back to Full Speed. Full Speed devices divide the USB bandwidth between them in a first-come first-served basis and it is not uncommon to run out of bandwidth with several isochronous devices. All USB hubs support Full Speed.

A High-Speed (2.0) rate of 480 Mbit/s (60 MB/s).

 

Ok, atunci m-ar interesa " Full Speed (1.1, 2.0) rate of 12 Mbit/s (1.5 MB/s) ", dar asa vrea sa mai stiu care e diferenta intre 2.0 si 1.1 daca amindoua suporta si low-speed si full-speed...

Nu vreau neaparat HID, orice .... numai sa mearga transferul. :d

Link to comment

Pe scurt, ca sa faci un calculator sa vorbeasca cu un device usb iti trebuie 3 componente software:1. Aplicatia de pe calculator, adica programul care afiseaza osciloscopul ia comenzi de la mouse, etc.2. Driver-ul USB. Asta este alta bucatica de soft care ruleaza tot pe calculator si care, ca orice driver, este un translator intre sistemul de operare al calculatorului si porturile USB ale calculatorului.3. Firmware-ul. Ruleaza in microcontroller si este chiar programul pe care il scrii in PIC.Fluxul de date este asa:Aplicatie -> Sistem de operare -> Driver -> USB -> PIC si invers.Fiecare device USB are o multime de parametri care il fac unic printre care si un ID al producatorului, ID care trebuie cumparat de la USB.ORG ca sa fie unic.Cel mai simplu e sa iei o un exemplu gata facut care iti da sursele de la toate cele 3 componente soft (aplicatie, driver si firmware) si sa incerci sa intelegi cum e facut fiecare.Partea cea mai grea pentru majoritatea programatorilor este driverul. Pentru a-l putea scrie iti trebuie sa cunosti foarte bine atat sistemul de operare al calculatorului cat si device-ul hardware pentru care scrii driverul. Din cauza asta multi gasesc metode de a evita sa scrie un driver. De exemplu folosesc un driver generic HID (HID = Human Interface Device) care in mod normal a fost conceput pentru tastatura sau joystick sau mai stiu eu ce alta interfata.Pacaleala se face cam asa: firmware-ul il minte pe driver cum ca PIC-ul ar fi un joystick cand de fapt el e un osciloscop. Tu, ca programator, citesti cu aplicatia starea joistick-ului dar, cu datele pe care le iei din "joystick-ul" usb, in loc sa pilotezi avioane, desenezi forma de unda a semnalului. In felul asta scapi de scris softul pentru driver.Pacaleala asta nu prea tine cand ai de facut lucruri serioase si la viteze mari.Cum ti-am zis, cauta un exemplu cat mai simplu si incearca sa-i intelegi softul pentru fiecare din cele 3 componente. Mai sapa cateva zile si lucrurile se vor clarifica cu timpul. Pe urma incearca sa modifici exemplul pe care l-ai ales pentru studiu. Ia ceva cat mai simplu si din sursa cat mai sigura. Un application note ar fi cel mai indicat. Dar sa contina si sursele ca sa le poti modifica.In cazul in care mai ai nevoie sa schimbi o parere intreaba. Daca stiu iti pot spune de unde sa apuci problema, indiferent de microcontroller dar nu iti voi scrie eu softul.In cazul in care te intereseaza doar programul gata scris si nu te intereseaza cum se face atunci cauta pe altcineva. Eu nu prea lucrez cu PIC si oricum nu m-am bagat in discutie pentru premiul oferit.Spor la sapat!

Link to comment

Ziua a 4-a :

 

Pagina principala Microchip USB : http://www.microchip.com/stellent/idcpl ... e=en021940

 

Am gasit la Microchip pe site o arhiva "MCHPFSUSB v2.2 USB Framework" care cica ar fi niste exemple de folosire a USB-ului cu PIC18F.

 

Arhiva contine mai multe exemple din care eu am selectat 3 dintre ele, restul sint sigur ca nu e ceea ce imi trebuie mie:

- USB Device - HID - Simple Custom Demo

- USB Device - MCHPUSB - Generic Driver Demo

- USB Device - WinUSB - Generic Driver Demo

 

Acum nustiu care dintre astea 3 o fi cea mai buna pentru un transfer pur de DATE la o viteza cit mai mare (de preferat 12Mb/s).... :smt017

Link to comment

Archived

This topic is now archived and is closed to further replies.




×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines