Fórum témák
» Több friss téma |
Fórum » PIC - USB - PC projekt
De könyörgöm mit építettünk meg használati célból? Egy 18F4550-et csupaszon? Nem igaz, hogy nem látod, hogy ez egy csupasz PIC, amit így nem lehet használni. Nincs mit megépíteni! Ez az alapja az összes 18F4550-el felépített áramkörnek!
Ha meg látod, hogy egy csomó kiegészítő kell hozzá, akkor hogy tehetsz fel egy ilyen együgyű kérdést!?
Ezeknek már kijavítottam a nagyját csak a 10 mikros kondi hiányzott. Érdekes az oldalad már hozzá is kezdtem "a képek nézegetéséhez"
Már többször megfogadtam, hogy nem állok veled szóba, de most felírom a neved, ne felejtsem el.
Ne haragudj már rám, kicsit tényleg kelekótya vagyok, hamarabb kérdezek mielőtt gondolkodok.
Nem haragszom rád, és nem is ítéllek el. Ez szerettem volna leszögezni!
Szia!
No a HID működik, úgyhogy laptopról tudom végre progolni. De később szeretnék valami működő Custom Device drivert is, mert szeretnék valódi USB eszközt (nem Mass Storage-t, HID-t vagy Comm. Device-t) csinálni rajta. Arra valami ötlet?
A HID csak egy protokoll, bármilyen saját eszközhöz lehet használni, driverigény nélkül.
Ne keverjük a szezont a fazonnal! Attól, hogy a bootloader HID eszközként kapcsolódik, a vele beégetett alkalmazás bármilyen protokol szerint kommunikálhat.
A gyári demók között is van néhány olyan, amelyik nem Mass Storage, HID vagy CDC. Ilyenek pl. a MHCPUSB Generic Driver Demo, a LibUSB Generic Driver Demo, és a WinUSB Generic Driver Demo.
Gyerekek, nem kell mellreszívni!
Kérdés: Idézet: „Sziasztok. valaki megcsinálta már ezt a kapcsolást?” Válasz: Igen, már annál valamivel bonyolultabbakat is!
Erre van egy viccem:
Elefánt fürdik a tegerben, egérke hívja: - Gyere ki légyszíves! Elefánt kicammog: - Mi baj egérke? Erre az egér: Á semmi, csak azt akartam megnézni, nincs e rajtad a fürdőgatyám!
Erre még annyit reagálnék, hogy a protokol lehet több rétegű is, azaz a HID is egy protokol, azon felül lehet a mi protokolunk. A kettőnek, vagy akár többnek(mert az USB-nek is van egy néhány, ettől alacsonyabb szintű protokolja) nincs köze egymáshoz, mind egyedi réteget alkot. (ezt nem neked írtam, mivel tudom, hogy tudod )
Üdvözletem!
Egy hete nekiáltam ismerkedni az USB relytelmeivel. Sikerült adatot átvinni mindkét irányba, de 64 KB/s-nél nagyobb sebességet nem tudok elérni. A PC programot Delphiben írtam (Delphi 6), a JvHidDeviceController nevű komponenst használom. Szerintem a probléma ebben van, valamelyik oldalon olvastam, hogy 1 millisecundumonként néz rá az USB-re, van-e rajta adat. A 64 bájtos csomagokkal a plafon az említett 64KB/s. A kérdésem az lenne, hogy ezt a komponenst nem-e lehetne valahogy úgy áttírni, hogy gyakrabban nézzen rá az eszközre? Legalább 3-szoros sebességet jó lenne elérnem. Vagy esetleg tudtok ajánlani egy másik komponenst Delphi alá, ami gyorsabb ennél? Nézegettem az nrcomm nevű komponenst is, de arra hibát ír ki a delphi.
Maga az USB hardver néz rá 1ms időnként az eszközre, ezt nem tudod szoftveresen befolyásolni. A HID ennyit tud. Más protokollt kell használni, ha nagyobb sebességet akarsz elérni. Nézd át a Microchip USB csomagját, talán a Generic Driver Demo-val többet lehet elérni.
A CDC 1MB/s-et tud, keress rá. Egy a baj vele, hogy nem annyira stabil, és külön driver kell a gépre.
Köszi, ez jól hangzik. A külön driver nem gond.
Azt hogy érted, hogy nem annyira stabil? Nem érkezik meg minden bájt, vagy hibás adatot fogad?
Üdv,
Hadd kérdezzem meg, hogy a MCC18-nak hányas verzióját használjátok? Ill. teljes verziót, vagy student/lite verziót? Most szeretnék ismerkedni a 4550 USB részével, a Microchip USB framework 1.2 verzióját találtam meg ehhez, de az ebben lévő CDC lefordításához MCC18 ver 3.11+ -t ír elő, nekem meg a 3.10 teljes verzió van meg.... megtaláltam az USB framework 1-et is, de abban meg nincs meg sajnos a CDC Mindenképpen szeretném lefordítani, mivel a későbbiekben gondolom beleirkálnék a main.c-be... Szóval milyen verziót használtok? (MCC18, framework) köszi előre is!
USB Framework 2.2, MPLAB 8.15a, és C18 Student 3.22
illetve másik gépen: USB Framework 2.5, MPLAB 8.36b és C18 Student 3.34 (vagy eggyel korábbi?)
Csak egy gyors kérdés: Létezik valami komplett project, ami bootloader nélküli és soros portot emulálva kommunikál a PC-vel USB-n? Még jobb lenne ha hi-tech C lenne, nem szutyok C18.
Én mindenhol csak bootloaderes leirást találok.
Miért okoz gondot a bootloader elhagyása?
1. Ne legyen definiálva sem a PROGRAMMABLE_WITH_USB_HID_BOOTLOADER, sem a PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER szimbólum, akkor a 0x00, 0x08, 0x18 címre kerülnek a vektorok. 2. A bootloader-hez való módosított linker állományt vedd ki a projektből. Használd az eredeti (gyári) linker állományt. Az USB Device - CDC _ Basic Demo lehet a kiindulás, ha csak a PIC társalog a PC-vel.
Ezek a szimbólumok hol vannak definiálva ?
Azt sem értem, hogy C18 telepítéskor miért nekem kell megadnoom hogy hol van a fordító exe -je. Jó ezen túllendültem. Azt sem értem hogy egy egyszerű példa miért van szétszórva 120 ezer file-ba ?!
USB Device - CDC - Basic Demo - C18 - PICDEM FSUSB.mcp ezzel próbálkozom, de ezen kívül van még egy adag más HW re készült példa is. Látom hogy van hozzájuk hw profil is, de azt már nem találom, hogy honnan veszi hogy mikor melyik hw profilt kell betölteni ?
Feladom, nem tudom ennek a demonak mit kéne csinálnia ? Szimulálni se lehet proteussal , mert 48Mhz et nem bírja. Bár ez talán nem akadály, mert a virtuális usb -n keresztül létrejön az emulált com port.
Ennél egyszerűbb példa nincs ? Annyi kéne, hogy usb-n emulált soros porton küldjön pár karaktert hiperterminálba, meg reagáljon arra ha ott gépelek. És mindezt szimulátorban ha lehet. szerk: ehh, működik szimben is, hyperterminal szivatott. már "csak" ki kell hámozni ebbőlé a zagyvalékből a lényeget. Idézet: „Látom hogy van hozzájuk hw profil is, de azt már nem találom, hogy honnan veszi hogy mikor melyik hw profilt kell betölteni ?” HardwareProfile.h Idézet: „Ezek a szimbólumok hol vannak definiálva?” Esetedben: HardwareProfile - PICDEM FSUSB.h
Ok, abban látom hogy:
csak azt nem, hogy pl a __18CXX ez hol van akkor ? Vagy a proci tipusából dönti el hogy nekem melyik demo panelem van ? Ez az egész usb példa nagyon gáz, előre hátra include-olnak össze vissza. Elszomorító. Már eleve azt sem értem, hogy mi ez a sok file külön az mplab -ban a source files-nél ? Kéne ott lennie 1 db main.c -nek, és mindent onnan kéne be include-olni nem ? Itt meg egyenként kézzel vannak oda berakva a szükséges file-ok ? Hi-Tech nél én ilyet nem láttam eddig.
A __18CXX akkor van definiálva, ha valamilyen PIC18 chip van kiválasztva a Select device alatt. Ugyanígy a __18F4550 akkor van definiálva, ha ott a PIC18F4550 van kiválasztva. Vannak ilyen konstansok, amik a Projekt beállításaiból, választott fordítótól, stb. függenek, és a kódban csak használva vannak, nem ott vannak definiálva.
Ha a demo panel csak egyféle chippel van gyárilag készítve, akkor igen, abból dönti el. Egyéb esetben szokott lenni erre további makró a megfelelő HardwareProfile.h fájlban. Az USB eleve nem egy egyszerű cucc, és az ő csomagjuk modulárisra van készítve. Az USB funkciók szét vannak választva, a fordító szépen el tudja dönteni, hogy mire van szükség a fájlokból és mire nincs. Neked ezzel nem kell foglalkoznod, általában csak a pl. "USB Host - CDC - Serial Demo" és hasonló mappában levő fájlokkal kell foglalkoznod. Nemnagyon foglalkoztá még bonyolultabb projektekkel, igaz?. Nézd meg pl. egy Firefox forrását, az sokkal durvább.
Komolyabb projektekkel nem (hacsak egy webáruház nem az, php ben) , pláne nem picen.
Mi a különbség abban hogy ha a source fileshez van hozzáadva, vagy be van includeolva a main.c be ? Idézet: „Mi a különbség abban hogy ha a source fileshez van hozzáadva, vagy be van includeolva a main.c be ?” Elvileg semmi, de a gyártó fejlesztői azt hiszik, hogy így jobban áttekinthető(Bár lehet, hogy nem értem a kérdésed! ). A nagy halom ifdef miatt ez valószínű így is van, mert elég káosz lenne, ha mindez a main-ba került volna. Neked csak a mainnal meg az user,c-vel kell fogallkoznod, ha jól emlékszem. A fáklokban jelzik is, hogy hová kell a saját forrásodat illeszteni. Nézd meg a HID-es cikkemet, a CDC nem sokban tér el. Idézet: „Ez az egész usb példa nagyon gáz, előre hátra include-olnak össze vissza. Elszomorító.” Vedd figyelembe, hogy az USB framework jóval több dolgot tartalmaz, mint amennyit te most használni akarsz belőle. Mindez többféle processzorhoz (PIC18, PIC24, PIC32) és fordítóhoz (C32, C30,C18 és újabbn hellyel-közzel talán HiTech C is), többféle üzemmódhoz (Host/device) és eszközosztályhoz (CDC,HID,Mass storage, Libusb,Winusb,MCHPSUB). Így tudták megírni és így tudják karbantartani. Mi meg áttekinteni is alig-alig... Némileg segít a helyzeten, ha a működő projektet kiexportálod egy ZIP fájlba (az MPLAB újabb verzióinál láttamilyen lehetőséget). Ebben elvileg csak a szükséges állományokat viszi át. Ha a számodra szükségtelen részeket (pl. PIC32 vagy PIC24-hez való programrészek) is ki akarod gyomlálni, azt magadnak kell megoldani. Idézet: „Már eleve azt sem értem, hogy mi ez a sok file” Van dokumentációja. Nem tilos az elolvasása... |
Bejelentkezés
Hirdetés |