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   272 / 1210
(#) icserny válasza mrgrassy hozzászólására (») Jún 26, 2012 /
 
Idézet:
„Ezekkel minden lábat tudok kezelni mármint minden kivezetést külön tudok kezelni mintha a PIC IO lába lenének ?”
Igen is, meg nem is. Pl. az MSP23S17/MCP23017 esetén lábanként lehet beállítani, hogy ki. vagy bemenet legyen, vagy milyen típusú változásra adjon megszakítási jelet. De műszaki okokból (az SPI vagy I2C kommunikáció jellegéből fakadóan) mindig legalább egy bájtot kell írni/olvasni, akkor is, ha csak egy bitet akarsz megváltoztatni.
(#) pajti2 válasza mrgrassy hozzászólására (») Jún 26, 2012 /
 
Természetesen egy másik áramkörön lévő IO láb real-time adottságai sohasem lesznek a pic saját szerves részévé. Lesz úgymond egy kicsike driftjük időben. Ezen kívül nem csak egyszeri regiszter írás/olvasás, hanem célirányos kommunikáció és kivárás kell majd az IO portokhoz hozzáféréshez.

Abban az esetben, ha ez zavarja az alkalmazást, lehetségesen mégis inkább pic-et kellene váltanod.
(#) Kovabe hozzászólása Jún 26, 2012 /
 
Sziasztok nagy segitséget kérnék, kaptam egy propic 2 programozot és neki is láttam a probálgatásnak, van egy 16F870-es IC-m amit 3-4 szer sikerült programoznom és utánna valami történ mert azota nem hogy nem tudom programozni de a program (winpic800) nem is látja az IC-t erre probáltam egy 12F629-est de azt se látja. Arra gondolok hogy a programban valami nincs jol beálitva (egy másik programmal is probáltam és csak azt sikerült egy a programáltal felnemismert IC-böl kiolvasni hogy minden nulla és kodvédelem be van kapcsolva, de én ezt nem is álitgattam. A másik amire gondolok hogy az LPT-portrol valahol olvastam hogy be kell állitani a bios-ban de nem emlékszem hogy mit hogy. Hát röviden tömören ez lenne a problémám, ha valakinek lenne egy leirása hogy hogyan és mit kell beállitani, azt nagyonmegköszönném.
Üdv Kovács
(#) marek hozzászólása Jún 27, 2012 /
 
Sziasztok!
Én egy PIC18F4550 bootloaderhez szeretném a segítségeteket kérni. Beégettem a firmware-t, windows 7 rendben felismerte, ezért gondoltam hogy megpróbálok beégetni egy saját programot. MPLAB-ban, C18 fordítóban csináltam új projektet, hozzáadtam a rm18f4550.lkr scriptet meg egy saját programot, ami bootloadolás nélkül, "simán" pickit2-vel beégetve rendben működött már korábban. Build-eltem a projectet, majd megnyitottam a bootloadoláshoz való számítógépes programot, import hex, beégetés, azt írja hogy sikeresen beégette. Ennek ellenére amikor resetelem a pic-et, nem indul el az én programom. Nem tudom hogy hol lehet a hiba, gondolom ott szúrom el hogy nem ilyen egyszerű egy program bootloadolhatóvá tétele. A config bitekkel lehet esetleg gond? Vagy lehet hogy "rossz forrásból" szereztem be a firmwaret, meg az rm18f4550.lkr-t, és amiatt nem működik?
Segítségeteket nagyon megköszönném, mert eléggé elakadtam ezzel a dologgal.
Marci
(#) Hp41C válasza marek hozzászólására (») Jún 27, 2012 /
 
Szia!

Azt vettem észre az új verziójú MpLab programnál, hogy az Import hex törli az egész memóriát pedig egy régebbivel meg lehetett csinálni, amit leírtál.

A hex állományt kellene szövegszertesztővel összefésülni, de ez sem egyszerű, mert ha egy cím kétszer fordul elő az állományban, akkor sikít és nem tölti be.

Vajon kinek volt jó a módosítás? A saját kiadott programjukat (PICKit2 firmware) nem lehet összeállítani. Mintha egy kicsit kapkodnának a Microchip programfejlesztői. Ennek is "Bug introduced" szaga van...
(#) icserny válasza marek hozzászólására (») Jún 27, 2012 /
 
Idézet:
„Nem tudom hogy hol lehet a hiba, gondolom ott szúrom el hogy nem ilyen egyszerű egy program bootloadolhatóvá tétele.”
Valóban, a linker állományon kívül (ami a program kezdetét tolja el) gondoskodni kell a vektorok áthelyezéséről is.

Nézz meg egy USB Device mintaprogramot, abban meglátod, hogy kell gondoskodni róla! A PICCOLO projektemben a HID bootloadert használom. Ott a piccolo_all.h állomány becsatolása és a linker állomány használata mellett a HID_BOOTLOADER, USE_USB, és USE_INTERRUPT szimbólumok definiálásával lehet konfigurálni az alkalmazást.
(#) icserny válasza Hp41C hozzászólására (») Jún 27, 2012 /
 
Idézet:
„az új verziójú MpLab programnál, hogy az Import hex törli az egész memóriát”
Ez elvileg egy beállítható paraméter (hogy törölje-e, vagy sem). Legalábbis a réginél így van.
(#) marek válasza icserny hozzászólására (») Jún 27, 2012 /
 
Köszönöm az eddigi segítségeteket! Sajnos még nem sikerült működésre bírnom a dolgot. Elfelejtettem írni hogy a PICCOLO projekt mentén haladok (ezúton is köszönet érte, icserny! ), onnan vettem a firmwaret, meg az ottani számítógépes programot használom a bootloadoláshoz. Mellékelve feltöltöm hogy hogy néz ki most a projektem MPLABban, kiszúr valaki benne valami hibát, vagy ennek már így elvileg működnie kellene?
Üdv,
Marci
(#) Hp41C válasza icserny hozzászólására (») Jún 27, 2012 /
 
Szia!

Egy-két éve a PICKit2 forrása alapján csináltam néhány programot, akkor minden beállítás módosítás nélkül lehetett rátölteni a programra a Bootloader -t. Azóta nem változtattam a project -en. A 8.85 -tel, alap beállítással az import törli a program memóriát.

Itt át lehet állítani...
(#) Hp41C válasza Hp41C hozzászólására (») Jún 27, 2012 /
 
További MpLab érdekességek:
- Miért tiltja le az új MpLab az MpLab szimulátort, ha programozót választok ki? Régi projectben lehetett aktív mind a kettő. A szimulátorhoz nem kell hardver...
- Egyes töréspontok mintha nem élnének, ha több sort törlünk, szúrunk be. Persze a töréspont sora megmarad. Ha töröljük őket és újra megadjuk, működnek...
- A Töréspont menüből miért nem lehet a töréspont sorára ugrani a forrásban? Ki van írva, hagy melyik sorban van...
- A programozóval kapcsolatos műveletek után miért hagyja a Vdd -t bekapcsolva. Annyi opciója van, de ezt nem lehet állítani - vagy csak én nem találom? Ha valaki sorozatban programot adapterben, igen jól jönne, ha nem kellene a csere előtt egy paranccsal kikapcsoltatni.
- Miért nincs egy rendes leírás a speciális stimulus nyelvéről? Az utasítások még csak megtalálhatók a Microchip fórumán, de a regiszterek (ezt még könnyű kitalálni) és azok bitjeinek nevei már nem, és azt meg végkép nem találom, mely regiszterekre terjed ki ez a szimuláció.
(#) icserny válasza marek hozzászólására (») Jún 27, 2012 /
 
Idézet:
„kiszúr valaki benne valami hibát”
Igen, hiba az van benne számos...
1. A főprogram elején a mostani helyett a piccolo_all.h állományt kell becsatolni.
2. A konfigurációs paramétereket vagy a piccolo_config.h állományban kell beállítani, vagy pedig a projekt opciók között. (A mintapéldákban én az USE_INTERRUPT és USE_USB opciókat a projekt opciókban definiáltam, amivel sok kezdőnek megkesertem az életét, de csak egyszer kell megtanulni babrálni). A piccolo_config.h-t hamar meg lehet unni minden projektnél álítgatni).
3. Nem azt a linker állományt kell használni, amit nem tudom honann vettél, hanem azt, ami a PICCOLO projektbe van.
4. A linkernek külön meg kell mondani a projekt opcióknál, hogy milyen bootloadert használunk, mert más lehetőséget nem találtam ennek az információnak az átadására. (/u opció)

Töltsd le a mintapéldákat, bontsd ki, s próbáld ki a legegyszerűbb mintapéldát (arra vigyázz, hogy ne 14K50-re beállított projektet tölts 4550-re!)

Olvasd el a Kísérleti áramkör c. fejezet végén, hogy hogyan kell létrehozni a projekteket és használni a linker állományt!
(#) El_Pinyo válasza matheattila hozzászólására (») Jún 27, 2012 /
 
Annyit hozzáfűznék, hogy az első megoldás nem működik. Legalábbis régebbi C18 verzióknál nem működött, azóta lehet, hogy kiszedték a hibát. Bár szintaktikailag teljesen helyes, amit írtál, viszont a fordítónak volt olyan bug-ja, hogy a 8 bites adatokon nem tudta helyesen elvégezni az összetett műveleteket (>>=). A második megoldást már rendesen képes kezelni. Csak azért írtam le, nehogy valaki belefusson ebbe a bosszantó hibába.
(#) pajti2 hozzászólása Jún 27, 2012 /
 
Én csak azt nem értem, hogy ha az új tool-ok annyira gagyik (a jelek szerint azok), de gondolom nem az azóta kiadott vadi új pic-eket használjátok, miért nem maradtok a régi tool-oknál? Miért kell marketing-eszelősnek lenni?
(#) marek válasza icserny hozzászólására (») Jún 27, 2012 /
 
Köszönöm a segítséget, most úgy tűnik hogy teljesen jól sikerült minden, működik a bootloadolás Nagyon jó a PICCOLO projektes leírás, először nem is néztem körül az oldalon, csak letöltöttem a dolgokat, aztán eszetlenül próbáltam mindenfélét csinálni. Egy kérdésem azért lenne:

Nem világos hogy most akkor mi is a helyzet a config bitekkel. Mert a bootloader v2.3-ban ugye ki van véve a pipa az Allow Configuration Word Programming elől, tehát ezek szerint azok a beállítások érvényesek, amiket még pickit2-vel égettem be a firmware égetésekor? És ezeket nem is szabad elállítgatni, ugye? A delay rutinok miatt viszont kellene tudnom hogy mégis hány hertzen ketyeg a PIC, ezt honnan lehet kideríteni? (20MHZ-es kvarc adja a külső órajelet)

Még egyszer köszönöm a segítséget!
Üdv,
Marci
(#) icserny válasza marek hozzászólására (») Jún 27, 2012 /
 
A konfigurációs biteket a bootloader beégetésekor beállítottad. Nem javaslom elpiszkálni. A beállítások egyébként ugyanazok, amelyeket a piccolo-4550.h állományban is láthatsz.

Az órajel 48 MHz, az utasításfrekvencia pedig 12 MHz, ez utóbbival kell számolni.

A 20 MHz-et ugyanis előbb leosztjuk 4 MHz-re, majd a PLL csinál belőle 96 MHz-et, s ebből lesz az USB meghajtó és a CPU számára is 48 MHz.
(#) marek válasza icserny hozzászólására (») Jún 27, 2012 /
 
Köszönöm a segítséget! Egyelőre úgy érzem hogy minden világos
Marci
(#) kissi válasza Hp41C hozzászólására (») Jún 27, 2012 /
 
Szia!

Idézet:
„További MpLab érdekességek:
- Miért tiltja le az új MpLab az MpLab szimulátort, ha programozót választok ki? Régi projectben lehetett aktív mind a kettő. A szimulátorhoz nem kell hardver...”


Én tapasztaltam olyat, hogy 8.14-ben készített projektnél ( tudtommal ez volt az utolsó, ahol "párhuzamosan" használhattam a PK2-t programozó módban és az MPLABSIM-et !) a projektet elmentve ( mind a kettő üzemmód aktivált állapotában!) és MPLAB 8.56-ban megnyitva ott van mind a kettő és működik ( amíg be nem zárom valamelyiket! ) !

Steve
(#) Hp41C válasza kissi hozzászólására (») Jún 27, 2012 /
 
De miért nem mehet egyszerre az új projectekben is? Mi akadálya van?
(#) mrgrassy válasza pajti2 hozzászólására (») Jún 27, 2012 /
 
Hello köszönöm a segítséget.
Gondoltam még arra, hogy ki tudom bővíteni a PIC IO lábait egy másik PIC-el is pl: a két PIC- nek össze kötöm a PORTA- PORTA lábakat ez 8 láb 8 bit és a slave PIC-be switch utasítással be adom, hogy mire mit csináljon ezzel elméletben egy "saját kommunikációs vonalat hozok létre 8vezetéken.
ez azt jelenti, hogy 256 "utasítást" tudok adni a slave PIC-nek ebbe benne vannak az adott lábak ki/be menetre állítása és ilyeneket lehet pl, hogy RESET az összes láb Input lesz vagy futófényt és a master PIC- csak az adott lábakat helyezi egy bizonyos szintre a másikon meg mint a gombokat beolvasom, hogy melyik lábak vannak éppen tápfeszen.
(#) pajti2 válasza mrgrassy hozzászólására (») Jún 27, 2012 /
 
Ha 2 pic-et össze akarsz kötni, részemről javasolnám az SPI használatát. Olyasmi, mint egy full duplex soros port. Egy "csővezeték", amibe az egyik oldalon betöltöd a kimeneti adat regiszterbe a parancsot, a másik oldalon pedig "kifolyik" belőle. Mint valami fifo, aminek a két oldala két külön pic-en van. Persze a vezérlő "protokollt" meg kell írnod hozzá, ez vele jár.

Ugyan nem néztem meg, hogy amiket javasoltak neked eszközöket, azok hogyan kapcsolódnak, de azok is csak maximum spi sebességgel tudnak kapcsolódni, az spi-nél tuti nem gyorsabban.

Viszont ilyesmi megoldásokat szerintem csak akkor érdemes bevetni, ha fontos szempont, hogy pld pdip tokosnak kell lennie az eszköznek, amit használsz, mert nem akarsz tqfp tok és ilyesmikkel szenvedni, a pdip tokoknak pedig tényleg kevés lábuk van, és alkalmasint valóban nem elég egyetlen tok.

Egy másik alternatíva pedig az ilyesmik:
SparkFun BitWhacker

Idézet:
„All of the 78(!) of the PIC32's I/O pins are broken out.”


Jó mondjuk 40 dolcsi + szállítás simán 10 rugó fölött jön ki, viszont itt pld bőven lesznek szabad io vezetékek, amik közvetlenül vannak rajta a pic-en, és közel zéró időveszteséggel programozhatóak (~30-40 nanosec környezeti parazita jelenségektől függően). A nyák kialakítása pedig raszteres, kvázi pdip helyettesítő. Dugaszpanelba rakhatod, vagy bármi.

Amelyik jól esik.
(#) kissi válasza Hp41C hozzászólására (») Jún 27, 2012 /
 
Ezt nem értem én sem... mivel én tanítok, ezért nem is léptem tovább a verzióval, hogy ne kelljen mindig várni az oda-vissza kapcsolgatásra !

Steve
(#) mrgrassy válasza pajti2 hozzászólására (») Jún 28, 2012 /
 
Köszi a javaslatot.
Meg nézem amit ajánlottál.
De érdekelt volna, hogy amit el gondoltam az ugy működő képes lenne e ? mondjuk elég sok lábat használna el
(#) pajti2 válasza mrgrassy hozzászólására (») Jún 28, 2012 /
 
Természetesen működne. Bármilyen saját megírt párhuzamos protokollal is át lehet nyomkodni biteket pic-ek között, ahogyan csak jól esik. Mondjuk ha handshake nélkül aszinkron küldesz át parancsokat, remélem gondolsz rá, hogy a túloldalnak időben át kell vennie a parancsot, mielőtt az adó oldalon megváltozik, különben elveszik egy-két utasítás. Működni ugyan működik, csak megcsinálsz néhány ilyet (csináltam anno magam is), és rájössz, hogy igazából ez egy kényelmetlen dolog. Nem nem lehetséges, hanem nem érdemes. És akkor jön vagy az spi, vagy egy nagyon sok lábú pic, amibe aztán már memóriát is akarni fogsz.. és a többi.
(#) mhatalyak hozzászólása Jún 28, 2012 /
 
Üdv!

Szeretnék Pickit2-vel programozni egy 12f675-öst, de nem tudom, hogy hogyan kössem rá. Ugye +5V és GND megvan, de a többit nem tudom, rajzot pedig nem találtam hozzá.

Előre is köszönöm a segítséget!
mhatalyak
(#) icserny válasza mhatalyak hozzászólására (») Jún 28, 2012 /
 
A PICkit2 Starter Kit-ben található kis láábszámú demókártya kapcsolási rajzát például ebben a cikkemben is megtalálod. Ez a kártya jó a 8 lábú PIC12F mikrovezérlőkhöz is. A PIC16F690 helyére képzeld oda a PIC12F675-öt úgy, hogy az 1-es láb ugyanoda kerül.

1. Kell egy kondenzátor VDD és VSS közé
2. Kell egy 10 k ellenállás MCLR és VDD közé
3. A PICkit2 bekötése pedig a rajzról leolvasható.
(#) Hp41C válasza kissi hozzászólására (») Jún 28, 2012 /
 
A 8.86 azzal örvendeztetett meg, hogy letiltja a debugger soros wonal beállítást, ha kontroller típust váltok...
(#) mhatalyak válasza icserny hozzászólására (») Jún 28, 2012 /
 
Szia!

Köszönöm szépen!

mhatalyak
(#) marek hozzászólása Jún 29, 2012 /
 
Sziasztok!
Valakinek lenne valami ötlete hogy PC oldalról hogyan lehetne felvenni a kapcsolatot egy virtuális COM porttal? C++-ban szeretnék írni egy egyszerűbb programot, amivel adatokat tudnék küldeni illetve fogadni egy 18F4550-től. Néztem, hogy visual c++-ban van egy System::IO:orts nevű namespace, amivel elvileg ilyesmit lehetne csinálni, de nekem túl bonyolult, illetve nem találtam példaprogramokat a neten, így aztán eléggé esélytelennek érzem.
Segítségeteket előre is köszönöm!
(#) icserny válasza marek hozzászólására (») Jún 29, 2012 /
 
Nézd meg a MAL (Microchip Applications Library) mintapéldáit! Elsősorban az USB Device - CDC - Basic Demo-t.
(#) Hp41C válasza marek hozzászólására (») Jún 29, 2012 /
 
Szia!

Nézd, :google: mit hozott ki: Bővebben: Link A Delphi -s változatát használom...
Következő: »»   272 / 1210
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