Fórum témák
» Több friss téma |
Fórum » PIC - USB - PC projekt
Ajánlott olvasmány: BRIAN W. KERNIGHAN – DENNIS M. RITCHIE
A C programozási nyelv Idézet: Egybitesre csonkítja uc értékét (1 vagy 0) és ezt írja led[ix]-be.„led[ix] = (uc & 1); mit csinál?” Idézet: Igen. Ez az alap. A get2hex() és get4hex() forráskódjáól pedig kileshető, hogy hogynem lehet ebből összetettebb beolvasásokat szervezni.„usb_cdc_getc() mindig egy karaktert olvas ki a bufferből?” Pl. kétjegyű decimális szám beolvasása (figyelem, nem próbáltam ki, csak röptében írtam át get2hex-et!!!):
Köszönöm!
Ezt a könyvet olvasgatom már, de tényleg talán az egyik leghasználhatóbb. Gondolat olvasó is vagy? A reggeli kávékészítés közben pont ez a ciklus járt a fejemben Nem sokára ki is próbálom. Köszi még egyszer a segítséget, és a türelmed!
Sziasztok!
Hol talalhato a Microchip honlapjan az USB HID-hez Visual C++ ajanlas? Kerestem, de eredmeny nelkul. Az az ajanlas mukodik a Watt HID demojaval? Probaltam a Watt altal irt cikk alapjan megepiteni a HID eszkozt es elerni C# alatt, de vegyes eredmeny szuletett. Az eszkoz parametereit ki tudom olvasni, viszont keptelen a rajta elhelyezkedo ledet kapcsolgatni. A hozza tartozo VB progi gond nelkul tudja kapcsolgatni is. (Kicsit fura a HID fw vagy a VB-hez hasznalt dll.)
A komplett USB csomagban van Visual C++ demóprogram. Nekem működött.
Idézet: A www.microchip.com/MAL oldalon (Microchip Application Library). Újabban ebbe van beleintegrálva az USB keretrendszer...„Hol talalhato a Microchip honlapjan az USB HID-hez Visual C++ ajanlas?” Az USB Device - HID Custom Demos mappában találsz firmware-t és kétféle PC alkalmazást Visual C++ 2005 Express kiadáshoz. Idézet: Az első mondatban még C++-t írtál, itt pedig C#-ot, akkor most melyik kell? Nem gond, ahogy elnézem a legújabb kiadásban a HID PnP demó már Visual C# 2005 Express-hez is mellé van kelve... Lehet válogatni. „Probaltam a Watt altal irt cikk alapjan megepiteni a HID eszkozt es elerni C# alatt”
Köszönöm.
Mindegy, hogy C++ vagy C#, csak pár apróság kell belőle.
Problémám: a PIC USART-on nem érzékeli a bejövő bájtokat.
Írtam egy tesztprogramot (csatolva) a probléma megtatálására, a LED-ek jelzik a program futásának a fázisait. A nyomógomb megnyomásakor a PIC gond nélkül elküldi az 'OK'-ot a treminál programnak, viszont amikor már a terminálba beírok egy karaktert azt nem küldi vissza. Az RCIF nem vált át 1-re. Terminál programként a PICkit 2 UART Tool-t használom.
A legbanálisabb hiba: az RB5 lábon nincs letiltva az analóg funkció. (Ha vígasztal: én is csak többszöri próbálkozás után jöttem rá...)
Ennyi kell:
Az inicializálásnál írd be:
BCF ANSELH,ANS11 A proc reset után minden analóg bemenettel ellátott portot analógnak állít be.
Mégegy apróság: az alábbi kód hibás!
TXREG írása után közvetlenül nem illik a TXIF jelzőt vizsgálni, mert egy utasítás késéssel áll csak be.
Jó, akkor próbáld meg kiegészíteni a hibabitek figyelésével és lekezelésével (FERR, OERR).
Érdemes megnézni az AN774 alkalmazási mintapélda PIC18-hoz való mintaprogramjait!
Hello!
Az lenne a kérdésem, hogy az alábbi kód miért [0..0] tömböt küldi el? Van valakinek ötlete? PIC18F2455 if (FLAGbits_1.msDely) // Megszakításban állítódik be. { for(k = 1; i < 63; ++i) { ToSendDataBuffer[k] = 64; } ToSendDataBuffer[0] = 112; // Üzenetazonosító kód. Konnektálást jelzőt villogtatja a PC Form-on. if(!HIDTxHandleBusy(USBInHandle)) { USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer,64); FLAGbits_1.msDely = Clear; // Ütemjelző törölve sendLED = !sendLED; } }>
A k nem változik, végig 1 marad.
ToSendDataBuffer[k] = 64;
bocsi, ide írtam hibásan, tehát a ciklus :
for(k=1;k<63;++k) { .... } a többi marad csak átírtam, mert a fórum nem szerette az "i"-t kocka zárójelek között>
Én nem értem, hogy mit takar az, hogy [0..0] tömböt küldi el?
Üdv!
Van egy USB-s áramköröm, ahol egy PIC18f14k50 a tápot az USB-ről kapja és a pic mellett van még pár egyéb cucc aminek kevés lenne az USB árama ezért egy LM7805-el és kondikkal egy dugasztápból kapják a betápot. Az USB föld és a DC táp földje össze van kötve. Amikor bedugom vagy kihúzom a dugasztápot (vagy az elosztó piros kapcsolóját ki/be kapcsolom) a PIC resetel (ezt onnan tudom, hogy a gyári példaprogram van rajta ahol a ledek mutatják a pic állapotát), majd nem jön vissza normál működésbe egészen addig még kihuzom az USB-t és vissza. Több ilyen dugasztáppal kipróbáltam és mindegyikkel ezt csinálja. A RA3/MCLR láb fel van húzva USB tápra, mivel ott van a bootloader gombja. Nem tudjátok mi lehet a baj? Köszi! Ja még annyi ,hogy a fesz.stab 4,97V-ot ad az USB táp meg 5,017V.
Az USB-ről jövő 5 V-ot puffereled? Hivatalosan 10 µF-ot illik rákötni, de láttam már működni 100 µF nagyságrendű pufferrel is...
Jó lenne látni a teljes kapcsolást és a vezetékezést is, mert az ördög (és a problémád) a részletekben bújik meg! Idézet: „láttam már működni 100 ľF nagyságrendű pufferrel is...” Az nem rantja meg a Vusb-t tulsagosan? Vagy bizunk az ESR-ben?
Íme a kapcsolás. A végleges változaton egy 12V-os relé lesz ami egy motrot kapcsol, és az LM7805 előtt lesz egy LM7812 ami a relét húzza majd, de addig nem építem rá az áramkörre amég ez sem működik...
akkor is resetel ha a dugasztápot a panelodból dugod/húzod ki, nem a konnektorból?
vagy miért nem minden a dugasztápról jár, az usb 5v-ja meg elfelejtve? a 4148 szerintem még annyi áramot sem tud mint az usb port... a dugasztáp ugye dc, a dióda csak védelemnek van, nem egyutas egyenirányítónak? 7805 bemenetére is tennék 100nF-ot, gondolom a c4 is 100nF kerámia
Ez a rajz hiányos! Pontos rajzot adjál ami a valóságnak megfelel(értékek, tápcsatlakozások, jelölések stb.)!
Bocs, igaz ennek egy része egy régebbi projekt (késő volt összekevertem a két filet)
Szóval annyi plusz lesz még, hogy a dióda utántól ágaztatom le az LM7812-t, de az még nincs rárakva az áramkörre hisz így sem megy tökéletesen, először ezt kellene megoldani. Az értékek a bal felső sarokba és az ellenállások mellé vannak írva. Idézet: „akkor is resetel ha a dugasztápot a panelodból dugod/húzod ki, nem a konnektorból?” akkor nem csinálja ezt Idézet: „dugasztáp ugye dc, a dióda csak védelemnek van, nem egyutas egyenirányítónak?” igen csak védelem
Szia!
C5 legyen 100 nF, C6 470 nF, Q1 12 MHz, C1, C2 pedig 22 pF. A többi akár még jó is lehet.
És ezek az értékek hogyan jöttek ki? Csak mert ez a kapcsolás microchip által javasolt és a low pin count usb development kitben található értékeket használja. Persze lehet, hogy a te értékeid jók de akkor a demo board is resetel (nem próbáltam még, de elég fura lenne...)
Egyébként tettem a 7805 bemenetére is 100nF kerámiát de semmi javulás. Idézet: „És ezek az értékek hogyan jöttek ki?” Onnan, hogy C5-öt és C6-ot a rajzon felcserélted. VUSB-re kell a 470 nF, Vdd-re pedig a 100 nF (bár szerintem egy min. 10 µF is jó volna mellé, ahogy korábban már mondtam...). Ami a rajzból nem derül ki, az a táp- és földvezetékek kialakítása. Abban is lehet bukfenc. Idézet: Biztosan megrántja, de nálam még nem volt gond miatta sem laptopnál, sem asztali gépnél. „Az nem rantja meg a Vusb-t tulsagosan?”
Szóval a dugasztápról gyakorlatilag csak a Gnd van kapcsolatban a PIC-el? Nekem ez így földhurok gyanús, bár nem értem, hogy hogyan. Kapcsoló üzemű a dugasztápod? (Azoknál a Gnd egy kondival csatolva van a földeléshez, és a PC tápokban is.)
Akkor nézd meg jobban azt a demo boardot, én sem hasraütéssel írtam. A kvarc is 12 MHz legyen. Ha meg az értékeid az áramkörödben stimmelnek, akkor legközelebb legyél oly kedves és a valóságnak megfelelő rajzot tegyél fel!
|
Bejelentkezés
Hirdetés |