Fórum témák

» Több friss téma
Fórum » PIC - USB - PC projekt
 
Témaindító: JohnyBravo, idő: Szept 26, 2006
Lapozás: OK   25 / 55
(#) icserny válasza mps hozzászólására (») Aug 8, 2010 /
 
Ajánlott olvasmány: BRIAN W. KERNIGHAN – DENNIS M. RITCHIE
A C programozási nyelv

Idézet:
„led[ix] = (uc & 1); mit csinál?”
Egybitesre csonkítja uc értékét (1 vagy 0) és ezt írja led[ix]-be.

Idézet:
„usb_cdc_getc() mindig egy karaktert olvas ki a bufferből?”
Igen. Ez az alap. A get2hex() és get4hex() forráskódjáól pedig kileshető, hogy hogynem lehet ebből összetettebb beolvasásokat szervezni.

Pl. kétjegyű decimális szám beolvasása (figyelem, nem próbáltam ki, csak röptében írtam át get2hex-et!!!):

  1. /** Két decimális számjegy beolvasása és átalakítása unsigned char típusra
  2.  *  Ez a függvény blokkoló típusú, addig vár, amíg be nem érkezik két kararakter,
  3.  *  amelyeket a _user_putc() eljárással vissza is tükrözünk.
  4.  */
  5. unsigned char get2dec(void)
  6. {
  7.   char c,i;
  8.   unsigned char t;
  9.   t=0;
  10.   for (i=0; i<2; i++)
  11.     {
  12.       c=usb_cdc_getc();
  13.       _user_putc(c);
  14.       t= t*10 + (c-48);
  15.     }
  16.   return t;
  17. }
(#) mps válasza icserny hozzászólására (») Aug 8, 2010 /
 
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!
(#) Ven hozzászólása Aug 11, 2010 /
 
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.)
(#) potyo válasza Ven hozzászólására (») Aug 11, 2010 /
 
A komplett USB csomagban van Visual C++ demóprogram. Nekem működött.
(#) icserny válasza Ven hozzászólására (») Aug 11, 2010 /
 
Idézet:
„Hol talalhato a Microchip honlapjan az USB HID-hez Visual C++ ajanlas?”
A www.microchip.com/MAL oldalon (Microchip Application Library). Újabban ebbe van beleintegrálva az USB keretrendszer...

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:
„Probaltam a Watt altal irt cikk alapjan megepiteni a HID eszkozt es elerni C# alatt”
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.
(#) Ven válasza icserny hozzászólására (») Aug 11, 2010 /
 
Köszönöm.
Mindegy, hogy C++ vagy C#, csak pár apróság kell belőle.
(#) pagaby hozzászólása Aug 13, 2010 /
 
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.


usart.ASM
    
(#) icserny válasza pagaby hozzászólására (») Aug 13, 2010 /
 
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:
  1. bcf     ANSELH,ANS11
(#) Sasmadár válasza pagaby hozzászólására (») Aug 13, 2010 /
 
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.
(#) icserny válasza pagaby hozzászólására (») Aug 13, 2010 /
 
Mégegy apróság: az alábbi kód hibás!
  1. MOVWF    TXREG
  2.                 BTFSS    PIR1,TXIF
  3.                 BRA    $ - 2

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.
(#) pagaby válasza icserny hozzászólására (») Aug 15, 2010 /
 
Ok! Működik.
(#) icserny válasza pagaby hozzászólására (») Aug 15, 2010 /
 
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!
(#) szk21 hozzászólása Aug 19, 2010 /
 
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;
}
}>
(#) zebra3 válasza szk21 hozzászólására (») Aug 19, 2010 /
 
A k nem változik, végig 1 marad.
ToSendDataBuffer[k] = 64;
(#) szk21 válasza zebra3 hozzászólására (») Aug 19, 2010 /
 
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>
(#) potyo válasza szk21 hozzászólására (») Aug 19, 2010 /
 
Én nem értem, hogy mit takar az, hogy [0..0] tömböt küldi el?
(#) watt válasza szk21 hozzászólására (») Aug 19, 2010 /
 
  1. Legközelebb használd a Kód gombot!
(#) qwer85 hozzászólása Aug 24, 2010 /
 
Ü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.
(#) icserny válasza qwer85 hozzászólására (») Aug 24, 2010 /
 
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!
(#) trudnai válasza icserny hozzászólására (») Aug 24, 2010 /
 
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?
(#) qwer85 válasza icserny hozzászólására (») Aug 24, 2010 /
 
Í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...

usb.png
    
(#) pipi válasza qwer85 hozzászólására (») Aug 24, 2010 /
 
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
(#) watt válasza qwer85 hozzászólására (») Aug 25, 2010 /
 
Ez a rajz hiányos! Pontos rajzot adjál ami a valóságnak megfelel(értékek, tápcsatlakozások, jelölések stb.)!
(#) qwer85 válasza watt hozzászólására (») Aug 25, 2010 /
 
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

usb.png
    
(#) El_Pinyo válasza qwer85 hozzászólására (») Aug 25, 2010 /
 
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.
(#) qwer85 válasza El_Pinyo hozzászólására (») Aug 25, 2010 /
 
É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.
(#) icserny válasza qwer85 hozzászólására (») Aug 25, 2010 /
 
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.
(#) icserny válasza trudnai hozzászólására (») Aug 25, 2010 /
 
Idézet:
„Az nem rantja meg a Vusb-t tulsagosan?”
Biztosan megrántja, de nálam még nem volt gond miatta sem laptopnál, sem asztali gépnél.
(#) pako válasza qwer85 hozzászólására (») Aug 25, 2010 /
 
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.)
(#) El_Pinyo válasza qwer85 hozzászólására (») Aug 25, 2010 /
 
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!
Következő: »»   25 / 55
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem