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   49 / 55
(#) Prome válasza icserny hozzászólására (») Jan 8, 2014 /
 
Ez nem a Play Station2 vezérlőpanel?
A hozzászólás módosítva: Jan 8, 2014
(#) icserny válasza Prome hozzászólására (») Jan 8, 2014 /
 
Fogalmam sincs. Csak láttam, hogy van rajta analóg kezelőszerv is, hogy PIC, és van leírás.
(#) Prome hozzászólása Jan 8, 2014 /
 
csak mert olyanom van s elgondolkoztam, ha azt lehet használni erre, akkor már meg is van oldva...
(#) usane hozzászólása Jan 28, 2014 /
 
Üdv!

Az lenne a kérdés, hogy megoldható-e valahogyan, hogy a PIC átírja a saját szoftverét bootloaderes módban. Azt szeretném elérni, hogy pl egy pendriveon található hex-et beégessen magába bootloaderrel, és ne kelljen hozzá a microchip feltöltő fájl-ja.
(#) potyo válasza usane hozzászólására (») Jan 28, 2014 /
 
Megoldható.
(#) usane válasza potyo hozzászólására (») Jan 28, 2014 /
 
Nagyszerű, és tudsz is valami irányt mutatni miképpen kellene ezt elkövetni?
Át kellene írni a bootloadert esetleg?
(#) potyo válasza usane hozzászólására (») Jan 28, 2014 /
 
Nem csináltam még ilyet, de mintha láttam volna a microchip demó programok között olyat, ami pendrive-ot kezel, akkor az a rész abból kiindulva vélhetően minimális módosítással megvan.

Valamit biztosan át kell írni, hogy mit és mennyire, az attól függ, hogy pontosan mit is akarsz csinálni. Lehet pl. úgy, hogy a bootloader megnézi induláskor, hogy van-e pendrive, azon adott nevű fájl, és ha van, meg stimmel mondjuk a CRC-je is, akkor azt felírja a kódterületre.
(#) icserny válasza usane hozzászólására (») Jan 28, 2014 /
 
Idézet:
„Át kellene írni a bootloadert esetleg?
Természetesen. Itt van egy példa: Bővebben: Link
Itt pedig egy hivatalosabb: AN1388 PIC32 bootloader
A hozzászólás módosítva: Jan 28, 2014
(#) usane válasza icserny hozzászólására (») Jan 28, 2014 /
 
Köszönöm. Átolvasgatom őket.
(#) pillesoft hozzászólása Feb 2, 2014 /
 
Jó Napot!

Van egy 28pin-s Low Power Demo Board-om, PICKIT3 programozóval, és vettem hozzá egy PIC18F24K50 microchipet is. ennek van USB áramköre, és szeretném összekötni a PC-vel.
Sajnos ezen a demo board-on nincs USB csatlakozó, ezért ezzel kapcsolatban kérdezném, hogy hogyan kell bekötni az USB-t? ha jól értelmezem a doksit a 14-lábra kell 3.3v, és USB-nek meg kell 5 v.
Erre a problémára tudnátok küldeni kapcsolást?
(#) icserny válasza pillesoft hozzászólására (») Feb 2, 2014 /
 
Nekem tied kisöccse van (PIC18F14K50), erről a honlapomon és ebben a cikkemben is olvashatsz.

Az 5V-ot a számítógép adja. A 3,3 V-ot (gondolom) a PIC beépített LDO-ja adja, csak egy 470 nF-os kondi kell a VUSB kivezetésre. PIC18F14K50-nél azt tapasztaltam, hogy a 3,3 V-ot akkor is produkálta a VUSB kimeneten, amikor 3,3 V volt a bejövő VDD feszültség.
(#) pillesoft válasza icserny hozzászólására (») Feb 5, 2014 /
 
Szia!
Köszönöm a gyors válaszodat, de csak most volt lehetőségem kicsit komolyabban átolvasni a cikkedet. Őszintén szólva megtaláltam már google-val, de talán így kicsit személyesebb, hogy van kontakt..
Tehát, ha jól értem. az 5 V jön a PC-től, de sztem nekem ez még nem kell, mert bőven örülök, ha PICKIT3-al menni fog a dolog.
D+, D- rákötöm a megfelelő lábakra, földet is a demo board földjére.
nem kell extra 3.3v (a Full Speedhez), mert a belső felhúzást a megfelelő regiszterrel tudom konfigurálni.
Vusb3v3-ra rakok egy 470nF-os kondenzátort.
A következő problémám a sebesség. Szerintem ehhez a chiphez nem kell külön oszcillátor, mert van benne egy 16Mhz oszcillátor és ezt lehet szorozni 3-al.
hálás lennék, ha ezekben a kérdésekben segítenél, útba igazítanál, ha vmit nem jól gondolok.
(#) icserny válasza pillesoft hozzászólására (») Feb 6, 2014 /
 
Idézet:
„Szerintem ehhez a chiphez nem kell külön oszcillátor, mert van benne egy 16Mhz oszcillátor és ezt lehet szorozni 3-al.”
Az nem elég, hogy a 48 MHz-et elő lehet állítani, annak kellően pontosnak is kell lenni, mert az USB buszon kritikus időzítések vannak. Kvarc nélkül csak azok az eszközök alkalmasak Full-speed USB-re, amelyek képesek hozzáhangolni az oszcillátor frekvenciát az USB buszhoz. Ha az adatlap ezt nem írja, akkor ilyen képessége nincs a mikrovezérlődnek. A 14k50-nél kifejezett írja, hogy kell a kvarc.

Utóirat: most látom, hogy ennél írják: "Internal 48MHz Oscillator with USB Accuracy -Via Active Clock Tuning from USB Host". Akkor tényleg mehet kvarc nélkül is!
A hozzászólás módosítva: Feb 6, 2014
(#) pillesoft válasza icserny hozzászólására (») Feb 6, 2014 /
 
köszönöm a segítségedet!
(#) bocios hozzászólása Márc 9, 2014 /
 
Sziasztok!

PIC24E -n próbálom (pic24ep512gu810) az USB kapcsolatos feléleszteni.
Ehhez letöltöttem a Microchip Bootloaderét ami kisebb módosítások után felprogramoztam.
Módosítások: (a hardware-en secondary osc-re van kötve 4mhz kvar)
  1. ACLKCON3bits.ASRCSEL = 0;
  2. ACLKCON3bits.FRCSEL  = 0;
  3. ACLKDIV3bits.APLLDIV = 0b111;
  4. ACLKCON3bits.APLLPRE = 0b000;
  5. ACLKCON3bits.APLLPOST = 0b111;
  6. ACLKCON3bits.ENAPLL = 1;


Reményeim szerint így elő áll a 48MHZ
((4mhz / 1)*24)/2 = 48
Kérdésem, hogy a fenti beállítások szerint ha a forrást az AUX-ra állítottam akkor (a rajzok szerint is) a secondary osc-re kötött 4mhz jó kell, hogy legyen, igaz?

Utána még amit változtattam az a LED lába volt így most már villog is, ami elvileg azt jelenti, hogy a bootloader jó. Sajnos ennek ellenére semmiféle usb kommunikációra nem tudtam rávenni. Elindítottam a Microchip -es bootloader PC-s felét, beírtam a VID és PID azonosítókat amiket a forrásban találtam és azt mondja, hogy nem találja!
Egészen pontosan ebből próbáltam kiindulni: "PIC24E_USB_HID_Bootloader_StarterKit.mcp"

Továbbá a HardwareProfile.h-ban találtam 2 dolgot ami nem tudom mire való, kell-e nekem
  1. //#define USE_SELF_POWER_SENSE_IO
  2.     #define tris_self_power     TRISAbits.TRISA2    // Input
  3.     #define self_power          1
  4.  
  5.     //#define USE_USB_BUS_SENSE_IO
  6.     #define tris_usb_bus_sense  TRISBbits.TRISB5    // Input
  7.     #define USB_BUS_SENSE       1


Nem tudom merre fele mehetnék tovább.
(#) Zsora válasza bocios hozzászólására (») Márc 9, 2014 / 1
 
Az USB vezérlő lehet saját táplálású (self powered) ill. USB-n keresztüli táplálású (bus powered). Viszont az áramkör többi része működhet ettől eltérő tápforrásról. Emiatt szükséges lehet hogy az USB vezérlő érzékelje hogy a többi táp is megvan a normális működéshez, ill. az USB kábel egyáltalán csatlakoztatva lett-e. Ehhez kell a Bus Sense (USB 5V megvan, tehát csatlakoztatva van a kiszolgálóhoz), ill. Self power (saját táp megvan) bemenet.
(#) bocios válasza Zsora hozzászólására (») Márc 10, 2014 /
 
Köszönöm!
Az előbbi hsz-ben megírt konfigurációt még ennyivel bővítettem:
  1. ACLCON3bits.AOSCMD=0;
  2. ACLCON3bits.SELACKL=1;


illetve kitettem az USBDeviceState -et ledekre, így most a következő látszik:
POWERED és DETACHED a státusz (sajnos akkor is ha bedugom a kábelt)
(#) pajti2 hozzászólása Ápr 17, 2014 /
 
Egy szemléleti tanácsot szeretnék kérni.

Adatcserét valósítanék meg usb-vel periféria és számítógép között, és döntenem kellene róla, milyen típusú legyen az usb-s periféria. Természetesen meg szeretném úszni a driver fejlesztést, és a meglévők közül is valami olyat kellene választani, ami általánosan elérhető minden platformon.

Információ szempontjából két irányban 580 byte-os csomagokat küldözgetnék, de tudom úgy formázni az adatot, hogy mehet akár nyers soros adatfolyamként az egész, és elég nekem 1 bulk in + 1 bulk out endpoint (kell a hibamentes adatfolyam). Most windows-on tesztelném az eszközt, de később nem lenne rossz android mobil eszközökhöz is hozzácsatolni, és arra bizony semmiféle drivert nem tudok majd fejleszteni, maximum használni, ami biztosan van, és csak java level alkalmazás logikát írni.

Nézegettem hid meg common device classokat, és kissé meglepődtem, hogy nyers adatfolyamot is mennyire megbonyolítanak a szabványok. Becsomagolhatom ugyan bármilyen formába az adatot, de csak nyűg nekem.

Van róla valami kiforrott tapasztalat, milyen formába érdemes csiszolnom az eszközt driver szempontjából?
(#) potyo válasza pajti2 hozzászólására (») Ápr 17, 2014 /
 
Mekkora átviteli sebességre lenne szükség? HID a legegyszerűbb szerintem driver szempontjából. Csomagodat felosztod 58 bájtos darabokra, adsz hozzá sorszámot, és a túloldalon meg a sorszám alapján összerakod.
(#) pajti2 válasza potyo hozzászólására (») Ápr 18, 2014 /
 
Nincs különösebben sebesség probléma. Akár 1 mbps-re sem lesz szükségem átlagos sebességben. Inkább a "ping" az, amit leszorítanék. A hid controllinggal dolgozik. Kimegy a kérdés a hid-nak, hogy "na, történt-e valamit?", és ha visszament a "jaja, akarok róla beszélni" válasz, akkor a host végig kérdezősködik az endpointokon. Mindez nyers bulk eszköz esetében csak egyirányban végigzuhan külön kérdés nélkül.

Tényleg nem létezik olyan driveres support, ami nyers bulk endpointokat kezelni tudna, és megvan minden platformon? A hid az egyetlen, amiben meg lehet bízni?
(#) icserny válasza pajti2 hozzászólására (») Ápr 18, 2014 /
 
Idézet:
„Tényleg nem létezik olyan driveres support, ami nyers bulk endpointokat kezelni tudna, és megvan minden platformon?”
A Microchip Applications Libraries USB szekcióban a LibUSB demót nézd meg!
(#) pajti2 válasza icserny hozzászólására (») Ápr 18, 2014 /
 
Köszönöm a tippet. Nem is értem, azt a könyvtárat miért ugrottam át. Alap libnek hittem, és csak a többibe lestem bele

Apropó az a példa nagyon szereti a 4550-est, de az a 40 lábú izé egy böhöm nagy valami. Próbálta már valaki azt a demót 2550-esre felgyömöszölni?
(#) icserny válasza pajti2 hozzászólására (») Ápr 18, 2014 /
 
Az a demó tudtommal nem sok lábat használ, tehát elvileg mindegy neki, hogy 4550 vagy 2550 . A gond csak az, hogy 2550-es demó kártyát nem készített a Microchip ezért a demóprogramok csak mérsékelten támogatják ezt a típust. Több-kevesebb matatással bizonyára megoldható az adaptálás.

Első lépésként egy hardverprofilt kell készíteni a kártyádhoz, s a HardwareProfile.h állomány feltételeinek bővítésével gondoskodni kell a becsatolásáról:

  1. #if defined(__18CXX)
  2.         #if defined(__18F4550)
  3.             #include "HardwareProfile - PICDEM FSUSB.h"
  4.         #elif defined(__18F45K50)
  5.             #include "HardwareProfile - PICDEM FSUSB K50.h"


Ha a fenti sorok után betoldod az alábbiakat, akkor a siker már félig garantált:
  1. #elif defined(__18F2550)
  2.             #include "HardwareProfile - myboard_2550.h"


Az önkényesen HardwareProfile - myboard_2550.h névvel ellátott harverprofilt például a HardwareProfile - PICDEM FSUSB.h mintájára (átszerkesztésével) lehet létrehozni.

A forrásállományokban (pl. main.c) gondoskodni kell róla, hogy:
- ahol a feltételes fordítási direktívákban 4550 szerepel, ott a 2550 is szerepljen vagylagosan.
- Ahol a PICDEM_FS_USB szimbólum szerepel, ott a MYBOARD_2550 szimbólumhoz is tartozzon egy hasonló feltételes rész.

A MYBOARD_2550 szimbólumot természetesen a harver profil definiálja az alábbi mintájára:
  1. #define DEMO_BOARD PICDEM_FS_USB


Nagyjából ez a lényeg, de 2550 még nem volt a kezemben, úgyhogy csak elvi szempontokat soroltam egy 4550-es, de a PICDEM FSUSB kártyával nem kompatibilis hardver adaptálásának tapasztalatai alapján (én a HID Custom demos mintapéldát használtam, de az adaptálás szempontjából ez most mindegy).
(#) pajti2 válasza icserny hozzászólására (») Ápr 20, 2014 /
 
Köszi a tippeket. Az igazi problémám az volt, van-e valamilyen ismert hw gyengesége a 2550-nek, ami esetleg tuti problémát okoz. Valahogy nem találom ezekhez a pic-ekhez az ismert hibajelenségek listáját, pedig biztos van belőlük. Jó, tudom, ott az errata, de azt mindig csak utólag adják ki.
(#) icserny válasza pajti2 hozzászólására (») Ápr 20, 2014 /
 
Idézet:
„Jó, tudom, ott az errata, de azt mindig csak utólag adják ki.”
Nyilvánvalóan minden hibalistát csak utólag lehet kiadni, amikor a hiba kiderül. Nézd az Erratát, s nézd meg azt is, hogy milyen verziószámú a mikrovezérlőd (a hibák egy részét az újabb kiadásokban már kijavították, más részét újonnan vezették be...)
(#) pajti2 hozzászólása Máj 3, 2014 /
 
Találtam az usb libek között "mchpusb" példát, és azon filozom, vajon mennyi esélyem van arra, hogy az mc gyártói oldalról supportot ad ehhez? Gondolok itt arra, hogy pld valamennyi pic18lf2550, amit csak meg tudok venni, mind előreprogramozottan kerül kereskedelmi forgalomba. Vagy legalább lehet úgy is rendelni eszetlen felár megfizetése nélkül. Például ha valami miniszériát terveznék, a gyártásnál tud az előnyös is lenni, ha létezik ilyen support. Nem az életem múlik rajta, épp csak kíváncsi vagyok. Erre vonatkozó feljegyzéseket kerestem, de amit találtam, az egy sem a "hivatalos" forrás nyilatkozata volt. Aki már megfutotta ezt a kört, segítsen egy kicsit, mi lett a vége? Köszönöm.
(#) icserny válasza pajti2 hozzászólására (») Máj 3, 2014 /
 
Idézet:
„valamennyi pic18lf2550, amit csak meg tudok venni, mind előreprogramozottan kerül kereskedelmi forgalomba.”
Alapértelmezetten egyik Microchip mikrovezérlő sem előreprogramozott. Ha miniszériát tervezel, akkor vagy a MirochipDirectnél próbálkozhatsz (elvileg van újabban ilyen szolgáltatásuk, de én nem próbáltam), vagy beleírod magad.

Megjegyzés: Az "mchpusb" is csak ugyanolyan program, mint a HID, libusb, winusb és a többi mintapélda.
(#) pajti2 hozzászólása Máj 14, 2014 /
 
Van egy olyan szervezet (afféle irodai cég), hogy T10 Technical Committee. Elvileg az a szervezet tartja karban a mass storage protocolt, amit az usb is használ. Sajnos csak regisztráció után lehet tőlük érdemi dokumentációt letölteni. Nincs véletlenül valakinek olyan cégnél ismerőse, ahol ahhoz hozzáférhet? Vagy bármi egyéb ötlet, hogyan lehetne olyan doksinak viszonylag aktuális állapotához hozzájutni?

Megpróbáltam visszakutakodni az usb layer 2 fölötti scsi filtert az MC libből, de nem egyszerű dolog forráskódból ilyet csinálni.
(#) icserny válasza pajti2 hozzászólására (») Máj 14, 2014 /
 
Idézet:
„Elvileg az a szervezet tartja karban a mass storage protocolt, amit az usb is használ.”
Amit az usb.org-on találsz az nem elég neked? Vagy mit is keresel?

Approved Class Specification Documents
A hozzászólás módosítva: Máj 14, 2014
(#) pajti2 válasza icserny hozzászólására (») Máj 14, 2014 /
 
Ott megtalálod ledokumentálva a layer 1 és 2-t, de semmit többet. Ott van részletesen az összes elektronikai elvárás, a bitek dekódolása, és le van írva a frame képzés, a frame képzés protokolljai, a frame-ek típusa. De az még mindig csak maga az üzenet keret. Hogy az üzenet keretbe hogyan vannak beillesztve a scsi parancsok, hogyan küldenek és várnak vissza adatot, milyen parancs kódok vannak, az egész adatátvitelnek milyen időzítési korlátokhoz kell alkalmazkodnia, arról nem találsz majd ott egyetlen szót sem. Van egy könyv valami usb complete reference vagy ilyesmi. Ott van egy kicsit több is. A felső keretből valamit leír, ami azonos cd, dvd, floppy, meg ilyesmiknél. A többiről pedig:

Idézet:
„Generic SCSI media uses the mandatory commands from the SCSI Primary
Command (SPC) Set and SCSI Block Command (SBC) Set from
www.t10.org.”


Nos, azt keresem. Nem lenne rossz valahol rátalálni egy nem túl régi verziójára (mondjuk 2012 és későbbire), mert amúgy állandóan fejlesztik.
Következő: »»   49 / 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