Fórum témák
» Több friss téma |
Fórum » PIC - USB - PC projekt
Ebben is van igazság, de van aki nem tud felületszerelt nyákot készíteni. Valamint egy kábel mobil, ha több darab céláramkör van, elég egy, csak rájuk kell dugni. Ekkor mindjárt olcsób is lesz.
De tényleg nem akarok ezzel semmit, csak egy lehetőséget vetettem fel. Mindenki dönse el, hogy neki jó e valamire. pl. én arra is használom, hogy a Hondámból kiolvassam az ECU üzeneteit.
Nekem is van egy DKU-5-ös kábelem. Na de hogy tudnám a Popportos kimenetét bármihez is csatlakoztatni. Nem hiszem hogy ilyen aljzatot lehet kapni.
Esetleg egy régi rossz telefonból? Vagy le kell vágni a végét, másik csatit tenni rá.
Elolvastam a témát és nagyon örülök ennek a projectnek. Esetleg a programozásba be tudnék szállni.
Csak próbálkozom az elektronikával, PIC is érdekel, programozáshoz vmelyest konyítok (Delphi). Jelenleg LPT-n keresztüli vezérlésen dolgozom, de mivel az új alaplapokról eltünőben van ez a port, szeretném megtanulni az USB-n keresztüli vezérlés lehetőségeit.
Akkor kezdésnek szerintem olvasd el azt a kis összefoglalót, amit előrébb töltötem fel. Sajnos még nem volt időm fojtatni a sorozatot. De majd igyekszem.
Eljutottam a HID-ig, a mouse emulacio is szepen mukodik, de a billentyuzetkezeles kifogott rajtam, pedig itt van valami...
Sziasztok!
A legegyszerübb USB-s vezérlést az FTDI FT232R chippel lehet megcsinálni, ez USB-soros átalakító IC. http://www.ftdichip.com Itt van hozzá driver is. soros portként látszik. Az S.O.S. electronic-nál lehet venni, van kábelbe épített is (TTL-232R (5V-os , de lehet 3,3V-osban is venni) http://www.soselectronic.hu A mikrokontroller az uarton keresztül tud kommunikálni vele. A PC-s proginak pedig be kell állítani a COM port címét és kész
Ne keverjük a dolgokat. Mi itt USB-ről beszélünk, te pedig soros vezérlésről. Nem a csatlakozótól lesz lesz USB-s valami.
A másik pedig, hogy mindez néhány hozzászólással arrébb már elhangzott egyszer. Előbb olvass, aztán írj.
Már megbocsájts nekem, hogy így beleszóltam, de egy mikrokontrollerhez akarsz csatlakozni, vagy nem?
Akkor az ember miért szivassa magát, ha erre vannak kész eszközök és driverek, és nem is drágák. Egyébként az Ftdi chipjeiben, ha jól tudom, át lehet irni az azonosítót, hogy milyen eszköznek ismerje fel a számítógép. Egyébként már USB host IC is van, ugyancsak az FTDI-nél (pl. ha valaki pendive-ot akar a kütyüjére rakni) http://www.vinculum.com/prd_vnc1l.html Ez is van a S.O.S.-nál Idézet: „Egyébként már USB host IC is van, ugyancsak az FTDI-nél (pl. ha valaki pendive-ot akar a kütyüjére rakni) http://www.vinculum.com/prd_vnc1l.html Ez is van a S.O.S.-nál” Köszi, hogy ezt megosztottad, engem ez nagyon érdekelt!
Igen kontrollerhez akarok csatlakozni, de USB-s kapcsolaton keresztül, és nem RS232 kapcsolaton. Azért a kettő között van sebességileg különbség, még ha ez pillanatnyilag nem is szempont.
Nem szivatjuk magunkat, mivel mindannyian tisztában voltunk az FTDI, és mások által gyártott átalakító chipek létezésével. Egyébként van egy topik, digitális oszcilloszkóp a címe, ott szükség is lesz az USB sebességére az adatok átviteléhez.
Sziasztok!
Most tanulmányozom az első USB-s próbaalkalmazást. Lehet, hogy nagyon láma kérdés, de ami nagyon furcsa, hogy a C18-as forráskódban kb. 80%-ban
formulát használnak. Ez logikailag jó, gyönyörűen működik, de teljesen szokatlan, ill. nagyon kezdők szoktak csak így kódolni. Szerintem ez a jobb, nem?
Namost kíváncsiságból átnéztem több más forráskódot is és azokban is gyakori volt az első formula, így felmerül bennem a kérdés, hogy valamit én nem tudok jól?
Szerintem ez is, az is használható módszer. Valakinek a gyakoribb, valakinek a te módszered tetszik jobban. Egy és ugyanaz mindkét funkció.
hááát könyvekben az előbbit inkább csak elrettentő példaként hozzák, mert logikai változót az iratlan szabályok szerint nem illik hasonlítgatni, mert az önmagában ad vissza értéket (igaz, C-ben nincs kimondottan logikai változó, de akkor se. Suliban ezért már nem biztos, hogy 5-öst kapna)
Én is felkiáltójeles módszert használom, annak idején így tanultuk pc-re.
Eszembe jutott, az így megírt programokra szokták azt mondani, hogy C nyelven írt pascal programok. Bár én Delphiben sem írok a logikai változónál ilyet, hogy
if a=true then..., hanem if a then..., vagy if (not a) then Viszont gondolkodtam, és lehet, hogy a felkiáltójeles módszer fordítótól függően kisebb és gyorsabb kódot eredményez, hiszen ha egyenlőségjel van, akkor össze kell hasonlítani az egyenlőségjel két oldalán levő értéket, aminek hatására a W tartalma biztosan felül lesz írva, valamint egy plusz XORLW vagy XORWF utasítás is kerül a kódba. A felkiáltójeles módszernél viszont csak egy "MOVF reg, F" kell, ami nem írja felül a W tartalalmát, és még gyorsabb is.
Igenám, csakhogy a compilerek szeretnek optimalizálni is. Na most már kíváncsiságból írtam egy egyszerű kis próbát, és megnéztem az asm forrást, hogy hogy oldja meg a feladatot.
MOVF INDF0, W, ACCESS BNZ 0xe2 BSF PORTC, 0x3, ACCESS Tehát MOVF -el a W-be teszi "a"-t. (itt nincs jelentősége annak, hogy átírja a W-t.) És ha 0 volt, akkor Z bebillen, tehát ennek megfelelően ugrik. ha lecserélem az if (!a) if(a==0) -ra, nem változik a kód. Leoptimalizálta Na most jön az igazi optimalizálás: ha if(a==1) -et írok, akkor a-t csökkenti egyel és megnézi, hogy a Z bebillent -e és ennek megfelelően ugrik. Tehát itt sem hasonlít a kis okos Viszont azt nem értem, hogy mi a poén abban, hogy indirekt címzést használ, mikor megadtam, hogy az access ramban van a változó. Na mind1, ez már legyen az ő baja :yes:
Ezért írtam, hogy fordítótól függ, hogy nagyobb vagy kisebb kódot eredményez, de én szeretem inkább eleve olyanra csinálni. Bár a végén kitudja, mit hoz ki belőle. Legjobb lepróbálni így is úgy is, és akkor látjuk, mi az optimális megoldás.
Még mindig az USB 18F4550 el...
Valaki programozta már .asm ben a PIC et USB adatátvitelre? Ha igen, kérem ossza meg tapasztalatait. Én már elég sok mindent tudok az USB protokollról, de egyenlőre mégis nagy falatnak tűnik az elindulás. Első körben megelégednék azzal is, ha pl. data vagy token packet kiküldése menne. Ehhez léteznek jó XP alatt futó monitor programok, melyen lehet nézegetni a kezdeti lépésekből forgalmat.... Szóval, ha valaki(k)nek lenne kedve az alapoktól kezdve beszélgetni a témáról, szívesen várnám isde a fórumba.
Kinek mi tetszik jobban. Van aki == szereti van aki pedig a !-et. Szerintem ettol nem lesz egy kod kezdotol valo.
Kezdoket konnyen fel lehet ismerni, hogy az uj dologtol megremulnek. Tipikus esete, hogy ha interruptot nem csinalt meg es megemlited neki akkor heves vedekezesbe kezd.
Engem érdekelne, de nem tudok túl sokat az USB-ről.
Szerintem nem érdemes assembly-ben usbt programozni, van C.
C-ben könnyebb, mert az orrunk alá dugnak mindent, csak tudatlanok maradunk a lényeget illetően, hogy mit hogyan kell beállítani, hogy működjön a dolog. Ennek ellenére én sem tudok assemlerben USB-zni, C-ben is alig alig. De igyekszem...
Idézet: „Kezdoket konnyen fel lehet ismerni, hogy az uj dologtol megremulnek. Tipikus esete, hogy ha interruptot nem csinalt meg es megemlited neki akkor heves vedekezesbe kezd.” Szia kyrk! Nem érzem magam kezdőnek a PIC témában, még az interruptól sem félek. (no persze a nálam okosabbaktól mindig szívesn tanulok továbbra is...) Vissza az USB re: kitanulmányoztam a soros portot, ma már tulhaladott rajta a technika, akkor jöhet az USB. És hogy milyért .asm? Ennek prózai oka van: assambly nekem jobban megy mint a C. De nem hiszem, hogy probléma .asm ben írni. Lehet, hogy hosszabb a kód, de érthető és logikus, valamint megvan a maga "szépsége" is. Én első körben nem is annyira a majdan megírandó programot szeretném kivesézni a topikban , hanem csupán az USB protokollról és az ehhez kapcsolódó 18F4550 -es USB regiszter beállításokkkal kapcsolatosan szeretnék "beszélgetni". Akinek van kedve tartos velem(velünk)
No és ne hogy csak a levegőbe beszéljek első lépésnek ajánlanék egy linket, hogy az alapokkal az érdeklődők tisztában legyenek (magyar nyelvű, ami ritkaság):
http://www.gdf-ri.hu/targy/mikroszg/Diploma/html/01Kulsocsatolok.htm és még néhány angol nyelvű leírás: http://www.usbdeveloper.com/UnderstandUSB/understandusb.htm http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINA...l.html http://www.beyondlogic.org/usbnutshell/usb1.htm (több chapter) http://www.mqp.com/ums_1.htm (part 1-5) http://de.wikipedia.org/wiki/Universal_Serial_Bus és még valami .pdf ben:
Engem marhára izgat, de tényleg, viszont egyáltalán nem kezdtem még magam beleásni komolyabban a témába; így egyelőre csak aktív hallgató lennék
Üdv!
Naná, hogy érdekel engem is. Valahol van egy olyan progim, ami ha jól tudom asm forrást generált, mindjárt előkeresem, talán abból el lehet indulni. Ja és a magyar doksiért örök hála, nagyon jó.
Sziasztok,
igen, engem is érdekel. Ahogy a topic indításakor megfogalmazódott: tudjunk átvinni adatokat PC-PIC (18F4550) között, valódi USB-vel. Lehetőleg maradjunk minél közelebb a hardverhez, hogy megértsük a lényeget. Ez asm programozást jelent, csak akkor használjunk C-t, ha nincs más lehetőség. Gyárilag megírt függvények hívogatása eredményes ugyan, de elfedi a lényeget. Köszi mindenkinek az eddigi doksikat. Egy hardver kérdés: a specifikált 100mA-es terhelhetőség az USB 5V-ján egy biztonságos elvi határ, amit nem illik átlépni, vagy kőkemény gyakorlati is? Magyarul: meddig lehet felmenni? Üdv. |
Bejelentkezés
Hirdetés |