Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   766 / 1209
(#) elektroszala válasza Hp41C hozzászólására (») Márc 29, 2016 /
 
Külön köszönet a progiért!
(#) don_peter hozzászólása Márc 30, 2016 /
 
Uraim, milyen PIC-et ajánlanátok a következő projektemhez?
Egy memóriát szeretnék közvetlen meghajtani PIC-el, ezért sok láb kell.
22láb a címzéshez 16láb az adathoz és még kb 5láb vezérléséhez.
Ezen felül szükség van USB használatára is.

Tehát a két fő szempont, hogy legyen benne USB és legyen elegendő lába a közvetlen vezérléshez.
Ezen felül nem árt, ha a választott PIC-nél van tapasztalat mert sajna még USB-vel nem foglalkoztam és ahhoz tuti kell segítség majd.
Persze nem árt az sem, ha lehet majd vásáróli is a kiválasztott típusból.

Én két PIC-et nézegettem:
PIC18F67J94-et, de ügye ez csak 8bit-es, és beszerzése kicsit érdekes és ennél a projektnél lehet hanyagolnom kellene a 8bit-es chipeket.
A másik pedig PIC24FJ64GC006, ez már 16bit-es, de a beszerzése szinte vagy egyáltalán nem is lehet.

Szóval kicsit most tanácstalan vagyok, hogy milyen irányban mozduljak el.
18-as családdal már van tapasztalat bőven, de sajnos a 8bit kicsit korlátoz ennél a projektnél, bár lehet a végén még is csak ez lesz, max majd tologatom a biteket ami kicsit lassítani fog, de csak elviselem valahogy.
16bit-es családot még nem ismerem és vannak kétségeim, hogy nem teljesen úgy kell használni mint a 18-asokat, gondolok itt arra, hogy nem csak az adatok illetve a regiszterek lesznek másak, hanem az egész..

Tudtok nekem megfelelő PIC-et ajánlani?
(#) eSDi válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Üdv!

ChipCAD-nál nézted? Ők a közvetlen forgalmazó hazánkban. Szerintem az, hogy nincs raktáron nem hiszem, hogy azt jelenti, hogy beszerezhetetlen lenne.
(#) don_peter válasza eSDi hozzászólására (») Márc 30, 2016 /
 
Náluk, csak most néztem, de nincs raktáron nekik sem.
Te is ezt ajánlanád vagy esetleg mást erre a feladatra?
(#) nedudgi válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Az, hogy nincs raktáron, nem jelent semmit. (Lehet, hogy várni kell péntekig.)
Mielőtt megrendelnéd, ellenőrizd, hogy van-e fejlesztőeszközöd hozzá.
(#) ktamas66 válasza don_peter hozzászólására (») Márc 30, 2016 /
 
PIC24FJ128GC006 viszont van készleten, igaz az 60 Ft-tal drágább.
(#) don_peter válasza nedudgi hozzászólására (») Márc 30, 2016 /
 
A fő kérdés, hogy a fentebb leírtak alapján ti is ezt ajánlanátok, vagy csak maga a beszerzésére irányul a segítség.
Mert ameddig nem születik meg a döntés bennem, hogy "na jó, akkor ezt választom" addig nem keresném fel őket.
Van egyébként tapasztalat erről a PIC-őr?
Használta már valaki itt?
Tudnátok segíteni az USB részének használatában?
(#) eSDi válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Nem beszélünk olyan eget rengető nagy összegekről, rendelj mind a kettőből. Ha párhuzamosan írod a kettőre a programot, akkor a fejlesztés során, amelyik jobbnak bizonyul, azt megtartod. Hogy elég lesz e a sebesség, programtárhely, RAM és IO, azt mi nem tudhatjuk, mert nem tudjuk mit is szeretnél konkrétan. Meg amúgy is menet közben derül ki.
(#) Hp41C válasza don_peter hozzászólására (») Márc 30, 2016 /
 
USB kezelés a Microchip Application Library -ban vagy a Harmony -ban.
(#) usane válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Mire használod az USB-t. Ha csak ezközként akkor ebből a szempontból 8 bites is megteszi. Ha host-ként is akkor kell a PIC24. USB sebessége is kérdés, ha nem meghatározó akkor szintén mindegy. Az, hogy a memóriakezelés szempontjából mi kell, azt csak te tudhatod. Mit akarsz vele kezdeni. Itt meg nyilván a PIC sebessége lesz a fő szempont, de lehet, hogy nem.
Miután átgondoltad a paramétereket és van választék, az erratákat sem árt megvizsgálni.
(#) don_peter válasza usane hozzászólására (») Márc 30, 2016 /
 
Kicsit megpróbálom összeszedni..
A projekt ugyan az mint amit napokba megosztottam a "Ki mit épített" topikban.
Sega kazetta, annyi csavarral, hogy itt már 64MBit-es memóriát használnék és kiküszöbölném az első projektben tapasztalt korlátokat.

UART helyett USB-t használnék a PC-és adatküldéshez, így megszűnne a maximum 9-10Kb-os adatátviteli küszöb.
Tehát az USB-t adatátvitelre használnám, PC és PIC közt. Maximum 8MB-os fájlokra.

A PIC és a memória közti közvetlen kapcsolattal kiküszöbölném a shift regiszterekkel tapasztalt sebesség korlátot és az azonos típuson belüli kompatibilitási problémákat.

Ha a 16bit-es chipet választanám, akkor az adat kiküldése is lecsökkenhetne 1 utasításra ami jelentősen növelhetné a beírást és az átviteli sebességet.
Illetve az címbusz is gyorsabb lehetne..
Nagyából ennyi lenne a dolga...
A hozzászólás módosítva: Márc 30, 2016
(#) usane válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Ok. Csak Device módban fog működni. A 8 bites és 16 bites USB sebessége ugyanaz mindkettő Full speed módban megy (12Mb/s) és tudtommal mind 2.0 verzió kompatibilis. High spedd módhoz PIC 32 kell. Megfelelő lábszámot 8 bitesben is lehet találni.
Eddig holtverseny.
A 16 bites nyilván gyorsabb, ha számításokról van szó. Nagyobb Stack, több lehetőség,stb.
USB-nek DMA elérés adat memóriához. Device módban a PIC24 elmegy belső osziról is, a 8 biteset nem tudom van e olyan, de biztosan.
A 8 bitesben ha jól tudom korlátozott az USB elérés késleltetése vagy valami ilyesmi.

Összefoglalva, a 16 bites jobb, de hogy a feladat igényli-e azt neked kell eldöntened.
(#) don_peter válasza usane hozzászólására (») Márc 30, 2016 /
 
A lényeg az lenne, hogy gyors legyen az adatfeltöltés.
A jelenleginél csúcsrajártava mindent, 9-10Kb/s érek el.
Ezt kellene jócskán fölözni.
Jelenleg egy 1MB-os fájlt 116másodperc alatt tölt fel, a 64MBit-es memória esetében 8szor ennyit kell, de úgy, hogy az idő ne legyen 8szor annyi.
Nem tudom mennyire lehet majd ezt megoldani, de jó lenne 1perc alatt (legalább is e körüli idő alatt) tartani a maximum 8MB feltöltését.
Ez az egyik legfontosabb dolog a projektben.
A fájl feltöltési idő minimalizálása.
A hozzászólás módosítva: Márc 30, 2016
(#) hg0npj válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Szia!
A chipCAD-tól már rendeltem olyan PIC-et ami nem volt készletem, 3 nap alatt meghozták.
(#) hg0npj hozzászólása Márc 30, 2016 /
 
Sziasztok!

Eddig csak PIC16 és 18-as szériával dolgoztam. Tudnátok-e ajánlani PIC24-et tanuláshoz, olyanra gondolok mint a PIC16F887 vagy a PIC18F45K22 ami alapnak számít és sok példát lehet hozzá találni. PIC24-ben is bizotsan van ilyen.

Köszi.
A hozzászólás módosítva: Márc 30, 2016
(#) Hp41C válasza hg0npj hozzászólására (») Márc 30, 2016 /
 
DIP tokos: 24FJ64GA002, PIC24FJ64GB002, stb.
5V -os: PIC24FV*K*, ezek között is van DIP tokos.
A ChipCad -nál írd be a PIC24FV*K*SP szűrőt a kereséshez.
A hozzászólás módosítva: Márc 30, 2016
(#) hg0npj válasza Hp41C hozzászólására (») Márc 30, 2016 /
 
Köszi, már nézem is...
(#) usane válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Ez szerintem csak programozástechnikai kérdés. A 18f4550 UARTJa is tud elméletben akár 5Mbs-t is megfelelő kvarccal, csak kérdés a zaj (kábel, és hossza)és persze fel kell tudni dolgozni megfelelő sebességgel. Nem követtem végig a Segás projectedet, csak a végeredményt, ezért nem tudom mi okozta a limitet, de nyilván több tényező is.
Ha egyedi project akkor nem baj ha beleszoksz a 16 bitbe, ha sorozat ott a költség is számít, de nincs nagy árkülönbség egy 18f14550 és egy pic24 között.
(#) benjami válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Hány voltról kell annak a memóriának működnie? A 16 és 32 bites vezérlők jellemzően már csak 3,3V-os verzióban léteznek. Ha a memóriának jó a 3,3V, akkor mindenképpen minimum 16biteset választanék. A 32bites még jobb, ott érdemes elgondolkodni esetleg valami ARM alapú megoldásban is.
(#) pajti2 válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Neked ez kell -> UBW32, vagy a panelen lévő pic -> PIC32MX795F512, de legalább is inkább valami 32 bites cucc, mint 16-os. Hogy miért? Egyszer a sebessége miatt, másodszor meg azért, mert ha kényelmesen szeretnél fejleszteni, az mindig erőforrás pocsékolással jár. Ha kell a precizitás, asm-ben újraírni az usb stacket majd ráérsz második körben, de első körben nulla tapasztalattal jobb lenne elfogadni, hogy a dolgok nem lesznek tökéletesek, de annak ellenére valahogyan össze kell találkozni a realitással. Szóval tökéletlen is lesz, meg drága is. Az első alkalom mindig a tanuló pénz, és részemről arra mutatnék rá, hogy vagy kifizeted önként, és akkor csak 1x kell majd kifizetned, vagy nyafogsz rajta, és akkor vagy többször fizeted majd ki, vagy még ráadásul feleslegesen is. Persze mindez csak az én véleményem volt.

USB-hez van support MLA-k formájában is. Abban biztosan tudok segíteni. A harmony-t részemről még nem akarnám zaklatni első körben. Ott túl sok olyasmi is elő tud fordulni, ami hibásan fog működni, és nem azért, mert te elhibáztad, hanem mert a harmony elhibázta. Ha ki kell szűrni minél több hibajelenséget - első alkalomkor legalább is - csak kiforrott cuccban kellene gondolkodni. Vagy legalább is ha kedves neked az arcbőröd simasága. A harmony-t jelenleg maximum a marketing nevezné kiforrottnak, a gyakorlatias közösség még nem.

Memóriából nem tudom, mit találtál, de remélem, jól megnézted azt a cuccot, hogy 3.3V-os elektronika legyen, vagy hogy ha több féle feszültséget kér, a kommunikációs feszültsége tudjon 3.3V-os is lenni.

Remélem, akadnak fentebb gondolatok, amik rá tudtak világítani megfontolandó szempontokra.
(#) pajti2 válasza hg0npj hozzászólására (») Márc 30, 2016 /
 
Amihez tuti biztosan találsz példákat, azok leginkább a microchip saját termék boardjai. Ha adjak egy tippet, fordítva érdemes haladni vele. Megnézed a példa kódot (pld letöltögetsz MLA libeket), és ott írják a hozzájuk tartozó doksiban is, milyen boardhoz lehet instant fordítani azokat a példakódokat (össze vannak hozzájuk válogatva az #if-ek). Annak alapján érdemes utána boardot választani. De ha a fejlesztői észközök között egyébként is körbenézelődnél, van központi weboldal az összes jellemző témáról, kiindulásnak: mc development tools, és ott az oldalon a Demo & Evaluation alatt vannak teszt boardok is, meg velük együtt a példakódjaik is.
(#) don_peter válasza usane hozzászólására (») Márc 30, 2016 /
 
usane: én is 18F4550-ben gondolkodtam, de kevés a lába és ha ezt választom, még mindig ott a shift regiszterek problémája, hogy lassúak.
A címbuszt ugyanis 3 shift regiszterrel hajtom, mivel csak így lesz elegendő láb.
Mindenképpen egyedi a projekt, szóval ezen csak tanulhatok, de lehetőség szerint a legkevesebb tisztelet körrel.

benjami: sokat gondolkodtam azon amit te is említesz, lenne is rá lehetőségem, de még egyelőre nem tudom bele e mennyek.
Új környezet, új eszköz, és sok kérdőjel.
Egyébiránt ez lenne a kiszemelt MCU: Bővebben: STM32F103 pdf
Jó-jó, de azért még sem PIC

simpi: Nem, ha van más és gyorsabb módja a fájlok beolvasására, betöltésére.
Az SD kártyával az a baj, hogy kell egy plusz menü vagy valami amivel lehetőség szerint kiválaszthatom a kívánt játékot.
Meg aztán, meg is kellene írni az SD kártya kezelését, fájlok kezelését, FAT32-es tábla...stb.
Ha van ilyen kódod C18-ra amivel segíteni tudsz, akkor ez is lehet egy lehetőség lehet.
Sajnos SD kártyában nem sokan szeretnek segíteni, pláne nem átadni a kiszenvedett kódokat.
Marha sok meló van vele...

pajti2: Ez a chip elég drága..
A projekt tanuló projekt, nem profitálok belőle, mivel limites a nyákgyártás így minimum 10db, fog készülni belőle, ha jó lesz.
Legjobb esetben is maximum a legközelebbi ismerőseim, fognak rácuppanni, mert játék
De tömeggyártásról szó sincsen...

Mindenkinek:
A memória már 16MBit-től felfelé mind 3v-os, így a rendszer 3v-os lesz, persze az USB miatt lesz 3v-os stabkocka, és használnom kell szintillesztőket mivel a SEGA rendszere 5v-os.
Ez a része már mondhatni meg is van..
18-as családnál maradnék legszívesebben, de tudom, hogy ehhez a projekthez ha tetszik hanem ugranom kell, de fontos, hogy jót válasszak, mert senki nem szeret feleslegesen dolgozni pláne nem költeni, még ha tanulópénz akkor sem.
A hozzászólás módosítva: Márc 30, 2016
(#) Hp41C válasza don_peter hozzászólására (») Márc 30, 2016 /
 
A PC oldalon milyen megoldást használnál? Az USB-CDC illetve az USB-HID maximum 64kbyte/s átviteli sebességet nyújt, ha ennél magasabbat szeretnél, saját (vendor specific) kommunikációt kell megvalósítani. De még az USB-CDC maximális sebességét is csak legalább 3 szálú (USB adás, USB vétel és a feldolgozás) program írásával lehet elérni.
Idézet:
„A címbuszt ugyanis 3 shift regiszterrel hajtom, mivel csak így lesz elegendő láb.”

Miért nem 8 bitesen írod a 24 bites címet. Használj 74HC374 vagy 74HC574 tárolókat. Így három írásból beállhat az egész cím.
Vannak olyan PIC kontrollerek a 18F és a nagyobbak között, amivel külső memória elérése is megvalósítható.
A hozzászólás módosítva: Márc 30, 2016
(#) don_peter válasza Hp41C hozzászólására (») Márc 30, 2016 /
 
A programon még nem agyaltam, ebben majd a segítségetekre fogok támaszkodni.
Piccolo projekt-et fogom első körben felhasználni tanulmányozni
Szerintem sokat fog segíteni.

Az általad említett IC-éket nem ismerem és nem is tudom jelenleg, hogy miképpen lehetne a hasznomra.

Abból a 64kbyte/s-ból kezdtem el kiindulni amit már másodjára is említettél, ez majd 5szöröse lenne a mostaninak.
(#) lastewer hozzászólása Márc 30, 2016 /
 
Sziasztok!

Szeretnék csinálni egy PIC18f4520-as mikrovezérlővel egy olyat , hogy folyamatosan szolgáltat áramot egy eszköznek addig , még indítható marad az autó.

Na most ezt meg is csináltam , de feszültséget figyelve és mint kiderült , az szinte mindig állandó , nem megyek vele semmire. Helyette az áramot kellene mérni , tudnátok segíteni egy kicsit , hogy is kellene ezt kivitelezni ?
(#) cross51 válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Én pajti2 mellet tenném a voksom, a PIC32 nehezebb először, de kifizetödő(legalábbis szerintem).

Itt nem kéne külső shift registerekkel és egyebekkel foglalkozni ott az EBI. Nem kell azzal foglalkozni, hogy van-e hely vagy nincs ami tanuláskor szerintem fontos, aztán lehet arra felé menni, hogy jobb kódot írni kisebb helyen olcsóbb vezérlővel. Esetleg, ha szügség lenne nagy sebességű USB-re, itt már elérhető a Hi-Speed USB. És még lehet jó pár előnye a későbbiekben.

Meg amiért én is váltottam(bár ez nem biztos, hogy téged "lehengerel") az, hogy C++ is elérhető rá.
(#) icserny válasza hg0npj hozzászólására (») Márc 30, 2016 /
 
Ha érdekel a honlapomon található PIC-kwik projekt, akkor Microstick vagy Microstick II (PIC24HJ64GP502 vagy PIC24HJ128GP502 mikrovezérlővel) javallott. Ha a Microstick Plus-ra is futja, még kényelmesebb az ismerkedés. Ez utóbbiból csak az A verziót láttam közelről...
(#) apromax hozzászólása Márc 30, 2016 /
 
C ben hogyan kell egy függvény visszatérési érték típusát beállítani ha valamely byte egy bitjével szeretnénk visszatérni? Ezt követően annak feldolgozása 0 - 1 összehasonlításban történik?
Tudna valaki érni egy rövid példát?
(#) pajti2 válasza apromax hozzászólására (») Márc 30, 2016 /
 
Nincs olyan függvény visszatérési érték, hogy 1 bit. A minimum, ami mindenképpen visszatér, az az mcu-ra jellemző szélesség, 8 / 16 / 32 bit. A visszatérő érték tipikusan az akkumlátor értéke, ami 32 bites mcu esetén akkor is 32 bites, ha te C-ben byte szélességű visszatérési értéket jelölsz meg, szóval simán csak ne törd magad ilyesmin, semmit sem számít. Térj vissza a C programokban egy mcu-ra jellemző szélességű értékkel, vagy ha hordozni akarod a kódot, akkor "BYTE" típussal. És igen, utána bit logikázni kell a visszakapott értéken. Példa:

  1. byte func_name(void) { return 0xc1; }
  2.  
  3. void func2(void) {
  4.  byte b1;
  5.  b1= func_name();
  6.  if (b1 & 0x80) {
  7.    //be fog ide jönni, a 0xc1-ben a legfelső bit 1-es
  8.    }
  9.  if (!(b1 & 0x02)) {
  10.    //ide is be fog jönni, a 0xc1-ben a 0x02 helyiérték 0, a false tagadása pedig true
  11.   }
  12.  return;}
(#) pajti2 válasza don_peter hozzászólására (») Márc 30, 2016 /
 
Sokat segítene sanity check gyanánt, ha leírnád a memória pontos típusjelét, amit használni kívánsz, csak hogy biztosan ne legyen valami extrém tévedésről szó. A 16 megabit-es tok már nem éppen kicsike. Vannak ugyan akkora sramok is, de csak a biztonság kedvéért ráfér egy több szem többet lát ellenőrzés arra, amit használni szeretnél.
Következő: »»   766 / 1209
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