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   45 / 55
(#) matheattila válasza zenetom hozzászólására (») Ápr 21, 2013 /
 
Ezt jó hallani, örvendek, hogy sikerült megoldani
Amúgy megnéztem a két PIC adatlapját és tényleg azonos az USB memória kezdőcíme, nem tudom miért emlékeztem arra hogy eltérnek, lehet, hogy másik típussal tévesztettem össze
MPLAB-nál ügyelj arra, hogy ha a konfig biteket nem a kódban állítod be, hanem a "Configure -> Configuration Bits..." menüben akkor a fordítás utáni hex nem lesz jó ezért a "File -> Export" menüben kell kigenerálni és akkor jó lesz. Ha a kódban adod meg akkor semmi gond a hex-el.
Ezzel én is szívtam eleget az elején
(#) zenetom válasza matheattila hozzászólására (») Ápr 22, 2013 /
 
De ha MPLAB-bal égetem, akkor nem kell kiexportálni.
(#) matheattila válasza zenetom hozzászólására (») Ápr 22, 2013 /
 
Na ezt már nem tudod, nem égettem még úgy, csak külön a PK2 programjával, mert nem mindig az MPLAB-ot használom
(#) pajti2 hozzászólása Máj 18, 2013 /
 
Hali!

Demo projecteket keresgélek neten. Valamelyik ftdi chip fifo/spi eszközt kellene pic-hez kötni, és libet kotorni mass storage-hez (lesz a pic mellé sd kártya szintén spi-vel). Ftdi oldalakat kotorászom, de mindenütt csak host controller role libek vannak. Slave-t nem találtam. Aki találkozott már olyannal, dobjon egy felírást róla plz. Usb-s pic-hez egyébként is vannak ilyen projectek, azt tudom, de jó lenne olyan pic környezetében is elboldogulni, amin spi busz van még felhasználható, usb viszont nincs.

Köszönöm.
(#) El_Pinyo válasza pajti2 hozzászólására (») Máj 18, 2013 /
 
Bár nagyon nem néztem utána, de szerintem FTDI-ba nem fogsz ilyet találni, nem az MSD Class a fő profiljuk. Ellenben egy USB device perifériával is megoldható a dolog, ha kompozit eszközt hozol létre. Erre van demo alkalmazása a Microchipnek is.
(#) icserny válasza pajti2 hozzászólására (») Máj 18, 2013 /
 
Idézet:
„Valamelyik ftdi chip fifo/spi eszközt kellene pic-hez kötni”
FT245 és PIC kulcsszavakkal keress. Mass storage példát én nem találtam, tehát FTDI driver is kelleni fog (PC oldalon). Szerintem egy PIC18F46J50-nel többre mennél.
(#) _vl_ válasza pajti2 hozzászólására (») Máj 18, 2013 /
 
Szerintem azt kéne, hogy leírod, hogy mi a célja az egésznek. Mert amit összeírtál, abból nem jövök rá, hogy egy PC-re köthető USB-s SD kártyaolvasót akarsz összerakni (a belsejében egy PIC-kel), vagy mit.
Az utolsó mondatodból nekem a "gombhoz a kabátot" gondolat jutott az eszembe...
(#) pajti2 válasza _vl_ hozzászólására (») Máj 19, 2013 /
 
Design kérdés. Képzeld el úgy, mint valami alaplapot, amihez a processzor egy külön dip modulos feltét, és az alaplapon vannak perifériák. Az usb lenne az egyik. Elfogadható sebességgel kötni az usb-t legalább egy spi busz kelleni fog a full speed-hez, de azt meg is kaphatja.

Az egyik lehetőségem egy felprogramozott usb-s pic, a másik egy ftdi áramkör. Az ftdi eszik 8mA-t, kicsi helyen elfér, kevés külső elem, van abból is normálisan forrasztható tokozás, átmeneti buffer azon is van, nem kell hozzá külön külső kvarc sem, nem kell hozzá külön felprogramozás sem. Ha azzal is meg lehet csinálni, szerintem előnyösebb, mint egy pic.

Vizsgálom a lehetőségeket. Pic, ftdi - van egyébként harmadik lehetséges versenyző is?

A TI-nál találtam olyan periféria vezérlőket, amiknek már SD/MMC kimenetük volt, de azok meg már "túlképzettek" nekem. Általános célú kliens eszköz kell (nem host), ami szoftveresen képezhető ki mass storage classhoz is.

Ja, és nem szeretem a mákostészta libeket. Te igen?
(#) _vl_ válasza pajti2 hozzászólására (») Máj 19, 2013 /
 
Az alapfeladat értelmét mérsékelten értem. Miért nem használsz eleve olyan processzort, ami tud USB-t? És akkor az egész problémakör okafogyottá válik.
Felprogramozott USB-s PIC helyett létezik az MCP2200, ami igazából pont az, csak nem is kell felprogramozni, mert már a gyárban megtették. Hátránya, hogy pont ugyanúgy, mint az FTDI chipje (meg más hasonló chipek: PL2303, CP2102, hogy csak kettőt említsek), csak fix USB device típust tud "játszani", és szerintem USB mass storage nem lesz ezekből sosem. Van egy MCP2210-es testvére is, azon SPI a felület, de az sem fog neked USB mass storage lenni.
Ő: Bővebben: Link kb. azt tudja, amit szeretnél. Alacsony szinten kezeli csak az USB kommunikációt, SPI slave, és az őt vezérlő mikrokontrolleren kell megírnod az adott USB device classhoz tartozó funkciókat. Apró szépséghibája, hogy a Maxim csinálja, szóval valószínűleg még az FT232-nél is drágább lesz, pedig az se egy olcsó cucc.
Vagy lehet venni bármilyen USB-s mikrokontrollert (pl. a PIC16F1455 nem rossz cucc), és arra írni a kommunikációs szoftvert, így garantáltan bármilyen USB device class megvalósítható. Ennek a hatalmas előnye, hogy akár töredék pénzből kihozható, az "előregyártott" USB IC-khez képest, ill. a mikrokontrolleren eleve elvégezhető a feladat egy része.
A hozzászólás módosítva: Máj 19, 2013
(#) pajti2 válasza _vl_ hozzászólására (») Máj 19, 2013 /
 
Ha nem a tanusítványok, meg a gyártási költség szemével nézed a dolgokat, akkor valóban nem sok értelme van azon filozni, hogy alacsonyra szorítsd az órajeleket. Egyébként meg feladom, jó lesz nekem a pic.
(#) icserny válasza pajti2 hozzászólására (») Máj 19, 2013 /
 
Az FT245 tudtommal nem SPI, hanem 8-bit párhuzamosan jön ki a FIFO bufferéből. Az FT232 pedig TTL jelszintű UART kapcsolatot biztosít. Ha ragaszkodsz az SPI-hez, akkor pl. MAX3420E, de ezt meg nem tudod PIC mikrovezérlővel kihajtani (a Microchip általában max. 10 MHz-es SPI frekvenciát enged meg).
(#) pajti2 válasza icserny hozzászólására (») Máj 19, 2013 /
 
A pic32-es egyébként megengedi a 25mhz-et is (forrás DS61106F-page 23-28 alján táblázat), ftdi-ból pedig mi a szitu például az FT122-essel?
(#) icserny válasza pajti2 hozzászólására (») Máj 19, 2013 /
 
FT122 számomra ismeretlen. Ez valami új (per)verzió?
(#) pajti2 válasza icserny hozzászólására (») Máj 19, 2013 /
 
http://www.ftdichip.com/Products/ICs/FT122.html

Szerk.: adatlapjáról idézek
Idézet:
„Version 1.0 Initial release 1st October 2012”

csakugyan nem egy régi darab.
A hozzászólás módosítva: Máj 19, 2013
(#) _vl_ válasza pajti2 hozzászólására (») Máj 19, 2013 /
 
Ez szép, de honnét tudnál ilyet szerezni?
(#) pajti2 válasza _vl_ hozzászólására (») Máj 20, 2013 /
 
A szokásos módokon. Közvetlenül a gyártótól, viszont eladó cégektől, vagy gyártó cégektől, ahonnét a haver 1-2 darabot ki tud csempészni
(#) pajti2 válasza _vl_ hozzászólására (») Máj 21, 2013 /
 
USB suspend.

Nézegetem a pic-eket, és tanácsot kérnék típus választás ügyben. Néztem a pic16f1455 adatlapját is, meg egy pic24fj64gb004 adatlapot is, és keresgéltem usb suspend lehetőségek után. Nem találtam arra utalást.

Vagy célirányosabb típus kellene a feladatra, vagy arról nem vagyok pontosan képben, hogy mi szokott lenni a trükk, amit ilyen esetekre bevetnek? Például át tudok állni másik oszcillátorra az mcu-val, de mi lesz az usb perifériával? Tudnia kellene felismerni bizonyos vonali állapotokat resume-nál, és persze közben is reset-nél.

Az a suspend fontos lenne.
A hozzászólás módosítva: Máj 21, 2013
(#) _vl_ válasza pajti2 hozzászólására (») Máj 21, 2013 /
 
Szerintem az a trükk, hogy az USB periféria SUSPEND állásban nem igényel órajelet, mert csak egyetlen funkciónak kell működnie: ha jön bármi aktivitás, akkor generáljon egy interruptot (ACTVIF a 1455-nél). Lehet power-down-ba rakni a CPU-t, a oszcillátor és a PLL leáll, amikor jön az interrupt, akkor meg újra elindul. Vagy lehet alacsony fogyasztású oszcillátorra váltani, és ha jön az interrupt, akkor meg visszakapcsolni.
A PIC32 esetében pl. van egy külön interrupt forrás (RESUMEIF), amit csak a suspend idejére kell engedélyezni, a suspend alatt az USB még órajelet sem kap, és ez az interrupt jelzi, hogy fel kell ébredni.
Egyébként mit akarsz csinálni a CPU-val suspend alatt? Ha "high-power" device-ként remote wake-up-ot használsz, akkor 2.5mA a megengedett suspend terhelés, abba azért már bele lehet férni PLL nélkül a 1455-tel. A történet másik oldala, hogy gyakorlatilag nem létezik olyan host, aminek ne lenne mindegy, hogy 1 vagy 5mA-t eszik az eszközöd suspendben.
(#) watt válasza _vl_ hozzászólására (») Máj 22, 2013 /
 
Régóta akarom kérdezni, hogy mit értesz CPU alatt?
(#) _vl_ válasza watt hozzászólására (») Máj 22, 2013 /
 
Általában az utasítás végrehajtó egységet. Itt esetünkben a PIC-nek azt a részét, aminek lehet olyan utasítást adni, hogy "SLEEP".
A hozzászólás módosítva: Máj 22, 2013
(#) watt válasza _vl_ hozzászólására (») Máj 22, 2013 /
 
Abban igazad van, hogy van benne ilyen, csak fura így nevezni egy mikrokontrollert, illetve annak részét külön, legalább is nekem fura, ezért említettem fel...
(#) icserny válasza watt hozzászólására (») Máj 22, 2013 /
 
Idézet:
„fura így nevezni egy mikrokontrollert, illetve annak részét külön”
Pedig láthattál már ilyen ábrákat a Microchip anyagaiban is.

Ami miatt fontos elkülöníteni a CPU-t (és hozzászokni az elnevezéshez):
- Ez az, ami közös a termékcsaládon belül (a memória és a perifériakészlet változik).
- Az ARM mikrovezérlőknél tualajdonképpen a CPU-t licenszelik és építik köré a maguk áramköreit a gyártók.
- A PSoC-nál egy adott CPU (M8C, M51,Cortex-M0, Cortex-M3) köré pakolnak digitális és analóg blokkokat, amelyekből a felhasználó alakítja ki a kívánt perifériákat. Ha ez meg van, utána jöhet a CPU programozása.

mcu.jpg
    
(#) watt válasza icserny hozzászólására (») Máj 22, 2013 /
 
Sőt, olyat is olvastam már a microchipnél, hogy processzornak nevezték az egyik PIC-et...
Nem azt mondtam, hogy nincs bennük CPU rész, hanem csak azt, hogy fura rá hivatkozni konkrétan, mikor egy MCU-ról van szó. De nincs ezzel semmi bajom, csak le szerettem volna tisztázni, mire is gondol _vl_, mikor CPU-t említ, amire meg is kaptam a választ.
A hozzászólás módosítva: Máj 22, 2013
(#) pajti2 válasza _vl_ hozzászólására (») Máj 22, 2013 /
 
Végül is úgy döntöttem, nem kell oda 32-es pic. MC-ék demo boardot pic18f4550-essel építettek. A pic16f1455 miért annyira a kedvenced?
(#) _vl_ válasza pajti2 hozzászólására (») Máj 22, 2013 /
 
Mert
- olcsó,
- tud 5V-ról menni,
- kvarc nélkül is használható USB-re.
(#) pajti2 válasza _vl_ hozzászólására (») Máj 22, 2013 /
 
Nézegetem az adatlapját, és az electrical characteristics-nél valami irgalmatlan alacsony áramfogyasztásokat látok. Konkrétan a 2mA-t sem éri el 16 mhz meghajtásnál sem. Ez komoly, vagy csak félreolvastam valamit? Ez a pic alapból suspend kategóriás áramot fogyaszt?

Tapasztalataid szerint ezen a pic-en egy szimpla usb device lib mennyi ramot eszik meg munkaterületként? Az adatlapjából azt hámoztam ki hirtelen, hogy össz 1k ram van benne, amiből 512 kötelezően usb buffer, másik 512 general purpose. Mennyi ram marad nekem szabadon saját munkaterületnek? Rákötnék egy külső soros ramot, de azt kezelni is kell valami átmeneti buffer. Legalább egy 150 byte-nyi nagyon muszáj lenne.

Általában egy belső osc nem szokott annyira pontos lenni, mint ami pld az usb-hez kell. Tapasztalat is van róla, hogy szuper stabilan viszi arról az usb full speedet? Low speed nekem nem elég.

Köszönöm a tippeket. Barátkozom a 1455-el magam is.
(#) _vl_ válasza pajti2 hozzászólására (») Máj 22, 2013 /
 
Idézet:
„Ez komoly, vagy csak félreolvastam valamit?”

Szerintem komoly. A fenti fogyasztás természetesen csak az IC saját fogyasztását tartalmazza, ha mondjuk rákötsz az egyik lábára egy 10mA-et fogyasztó LED-et, akkor az - mivel ez nem ingyenenergia gép - ezeken az áramokon felül értendő.
Idézet:
„Tapasztalataid szerint ezen a pic-en egy szimpla usb device lib mennyi ramot eszik meg munkaterületként?”

Nincs vele tapasztalatom, egyrészt még csak a polcomon figyel egy ilyen egyelőre, és várja, hogy legyen vele időm foglalkozni (ő a sokadik a sorban), másrészt úgy általában nem vagyok nagy híve a Microchip gyári könyvtárainak - szoktam belőlük ihletet meríteni, de nem szeretem, hogy úgy vannak megírva, hogy 68 különböző modellcsaládon hasonlóan működjenek, aminek az átláthatóság és a hatékonyság sokszor áldozatul esik.
Idézet:
„Tapasztalat is van róla, hogy szuper stabilan viszi arról az usb full speedet?”

Nézd meg az "Active Clock Tuning" szekciót az adatlapban. Az benne a poén, hogy a belső órát hozzászinkronizálja az USB-n a host felől jövő jel frekijéhez.
(#) pajti2 válasza _vl_ hozzászólására (») Máj 24, 2013 /
 
Ugyan csak adatlap kotorászás során felvetődő gyanú, de olybá tűnik, hogy a 1455-ös usb-je nem fog menni külső kvarc nélkül. Van egy másik típus, a pic24fj64gb004 (link közvetlen az adatlapjára). Az adatlap azonnal a 18.0 fejezet starton írja
Idézet:
„0.25% Accuracy using Internal Oscillator – No External Crystal Required”
. A 16f adatlapon ilyet nem találtam. Csak az a hipercuki áramfogyasztása ne lenne

Egyébként ha csak usb célra kell, a 1454-es egy kicsit egyszerűbb (ugyan annak a családnak a tagja). Egyszerűbb bánni a config bitjeivel - lévén szinte semmi sincsen abban a tokban az éppen sláger modulokon kívül. A lábakra még így is felfér az usb, egy spi, egy uart, és a kvarc is. Programozni persze már csak vagy külső foglalatban, vagy a saját helyén az spi busz órajel és adatvezetéke helyén lehet. Ha azok amúgy is el vannak vezetbe (kvázi leválasztható jelek), akkor persze ez nem gond.
(#) icserny válasza pajti2 hozzászólására (») Máj 24, 2013 /
 
Idézet:
„olybá tűnik, hogy a 1455-ös usb-je nem fog menni külső kvarc nélkül.”

Miből jutottál erre a helytelen következtetésre? Ennek ugyanis azt írja az adatlapja, hogy: "Self-Tuning from USB Host (eliminates need for external crystal)" - tehát a gyártó szerint nem szúkséges az USB-hez külső kristályt használni. Lásd: http://ww1.microchip.com/downloads/en/DeviceDoc/41639A.pdf, 3. oldal.
A hozzászólás módosítva: Máj 24, 2013
(#) Hp41C válasza pajti2 hozzászólására (») Máj 24, 2013 /
 
Szia!
A 16F1455 és16F1459 USB -je megy quartz nélkül. Kipróbáltam.
Következő: »»   45 / 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