Kérkel segíts, hogy ne maradjon hibás információ az oldalon!
Ha szerinted valami nem fedi a valóságot, kérlek írd meg, hogy javítani tudjam. Ha kérdésed van, fordulj hozzám bizalommal!

2008. március 5., szerda

PICDEM FS USB és a Linux

Az elmúlt pár nap éjszakáját a Microchip boardjához járó mintaprogram és a linux alá írt fsusb (Rick Luddy által) élesztgetésével töltöttem. A mintaprogram kódot már ne tudom, hogy honnan töltöttem le. Nagyon sok információt találtam Xaiofan blogján, ahonnan a megoldás is jött.
Ugyani problémák, na azok voltak. Az elsődleges probléma, hogy nem működött.. Ajánlom az fsusb program Xaiofan által javított változatait, bár nekem nem sikerült lefordítani, de ismerkedésnek jó volt:). A problémát az okozta, hogy a picbe letöltött program nem bulk átvitelre van beállítvan, hanem interruptra.
Az feljebb linkelt fórumnak a végén hangzik el az interrupt függvények használata. Ennek megfelelően kell a libusb usb_interrupt_write és usb_interrupt_read parancsait használni az usb_bulk_xxxx helyett. A hibáról a kernel logban az "usb_submit_urb returned: -22" hibaüzenet értesít. A -22 egyébként az "Invalid argument" hibaüzenet, amit a perror() is kiír. Azóta már belnyomtam egy isochronous endpointot is és igen meglepő, de a libusb nem támogatja, az iso-s ep-t is interrupt parancsokkal kell írni és olvasni.
Emellett, hacsak nem az eredeti PICDEM boardot használjuk, ki kell venni a sense és self power érzékelést.
El kell, hogy mondjam, jó sok fejfájást okozott. Mostmár csak a p18f2550-ös ADC-jét nem tudom feléleszteni C18-al.
A véleményem egyébként sokat változott a C18-al kapcsolatban. Az USB firmware sokkal kevesebb program memóriát igényelt. A fordító megbízható és gyors is.

Nincsenek megjegyzések: