Fórum témák
» Több friss téma |
Idézet: 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. „Ezekkel minden lábat tudok kezelni mármint minden kivezetést külön tudok kezelni mintha a PIC IO lába lenének ?”
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.
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
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
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... Idézet: 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.„Nem tudom hogy hol lehet a hiba, gondolom ott szúrom el hogy nem ilyen egyszerű egy program bootloadolhatóvá tétele.” 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. Idézet: Ez elvileg egy beállítható paraméter (hogy törölje-e, vagy sem). Legalábbis a réginél így van. „az új verziójú MpLab programnál, hogy az Import hex törli az egész memóriát”
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
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...
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ó. Idézet: Igen, hiba az van benne számos...„kiszúr valaki benne valami hibát” 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!
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.
É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?
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
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.
Köszönöm a segítséget! Egyelőre úgy érzem hogy minden világos
Marci
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
De miért nem mehet egyszerre az új projectekben is? Mi akadálya van?
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.
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.
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
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
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.
Ü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
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ó.
A 8.86 azzal örvendeztetett meg, hogy letiltja a debugger soros wonal beállítást, ha kontroller típust váltok...
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!
Nézd meg a MAL (Microchip Applications Library) mintapéldáit! Elsősorban az USB Device - CDC - Basic Demo-t.
|
Bejelentkezés
Hirdetés |