Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   850 / 1319
(#) Lozsa válasza potyo hozzászólására (») Dec 1, 2010 /
 
Köszönöm, igazad van!
(#) Gamedavid hozzászólása Dec 1, 2010 /
 
Sziasztok!

Most először szeretném használni a PICkit3-at egy 18F27J53-al, amit belső oszcillátorral szeretnék hajtani, de nem tudom mekkora órajelen van, azt hol kell beállítani? De a legnagyobb baj, hogy ezt írja ki program módban PICkit3-al az OUTPUT ablakban:
PICkit 3 detected
Connecting to PICkit 3...
Running self test...
Self test completed
Firmware Suite Version...... 01.26.26
Firmware type......................PIC18FJ
PICkit 3 Connected.
Target Device ID (000000e0) does not match expected Device
ID (00005860).

Programming...
The following memory regions failed to program correctly:
Program Memory
Address: 00000001 Expected Value: 000000ef Received Value: 000000ff
Programming failed

és néha még így is megprogramozza, ami érdekes és utána működik is. Debug módban viszont ezt írja ki:
Connecting to PICkit 3...
Firmware Suite Version...... 01.26.26
Firmware type......................PIC18FJ
PICkit 3 Connected.
Target Device ID (000000e0) does not match expected Device
ID (00005860).

MPLAB's memory has changed since the last program operation.
Would you like to continue?

Running...
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.

és nem is tudok semmit sem kezdeni. A konfigurációs biteket nem a programban adom meg, hanem menüpontból, de azok sem tiszták pontosan hogy mi mire való, sajnos a PIC adatlapjából sem jöttem rá. Elmagyarázná nekem valaki, hogy a következő beállítások mire jók: CFGPLLEN, CPUDIV, SOSCEL, CLKOEC, FCMEN, IESO, DSWDTOSC, IOL1WAY, LS48MHZ

Előre is köszönöm segítségeteket.
(#) Zsora válasza Gamedavid hozzászólására (») Dec 1, 2010 /
 
Az Configure/Select Device... menüben tudod beállítani, hogy milyen PIC-et használsz. (Az az MPLAB gondja hogy a beállított típus nem egyezik a detektált típussal.) A PIC konfigurációját pedig ugyanezen menü Configuration Bits... menüpontjában tudod elvégezni. (Bár ezt te is megtaláltad már...)
(#) Gamedavid válasza Zsora hozzászólására (») Dec 1, 2010 /
 
Természetesen jó PIC van beállítva. Néha ezek ellenére is beégeti amit írtam és fut is, bár hibásan, ami érthetetlen. Például egy sima led villogtatásnál amikor BSF és BCF parancsokkal kapcsolgatnám a ledeket, akkor az egyik kapcsolt láb működik, a másik nem. De ha egy literális értéket írok az adott portba, akkor meg villog az is ami BSF/BCF-el nem. Ki érti ezt?
(#) nedudgi válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Nincs véletlenül valami terhelés egy programozó lábon? A tápot a PICkit adja?
(#) watt válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Gondolod, ha minden nap felteszed ugyanazt a kérdést akkor választ kapsz?
Valami nem jó az áramkörödbem ha már a PK3 sem ismeri fel! Vagy a PK3 nem jó. Nem vagyunk látnokok, nem tudjuk milyen áramkört építettél.
(#) icserny válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Idézet:
„Target Device ID (000000e0) does not match expected Device ID (00005860).”
Nagy valószínűséggel áramköri probléma. Lehet szimpla érintkezési vagy forrasztási hiba is...
(#) Hp41C válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Szia!

Ugyan az idézett részt a PICKit2 -höz írtam, de igaz a PICKit3 -ra is:

Idézet:
„- Ha a programozáshoz használt lábakat kimenetnek vagy Timer1 oszcillátornak stb. használjuk és belső órajellel működtetjük a kontrollert, előfordulhat, hogy nem sikerül a normál módon (Vdd first) a programozás. Két megoldás kínálkozik:

- Használjuk a "Vpp first" módszert. A kontrollernek vagy a kártyának a tápfeszültséget ekkor a PICKit2 -nek kell adnia.

- A kimenetek vagy az oszcillátor stb. engedélyezése elé tegyünk néhány ms várakozást a program elejére.”
(#) accesid hozzászólása Dec 2, 2010 /
 
Lehet le fogtok hülyézni, de légyszi magyarázza el nekem valaki hogy hogyan kell leprogramozni egy billentyűzetkezelést megszakitással...
Nem azt kérem hogy valaki megcsinálja csak ha van valakinek ideje magyarázza el légyszi.
Szabad portok RB0 RB1 RB2 RB3 / 16F628, 3 gomb kellene.
Köszönöm.
(#) watt válasza accesid hozzászólására (») Dec 2, 2010 /
 
Szia!
A feladat az, hogy adott időközönként meg kell vizsgálni, hogy a billentyűk le vannak e nyomva. Ha ezt megszakításban akarjuk lekezelni, akkor ez azt jelenti, hogy egy Timer megszakítást kell készítenünk, ami mondjuk másodpercenként 20...50szer megszakít. Ekkor kell megvizsgálni a gomb állapotokat(BTFSC, If (!gomb). Célszerű ilyenkor jelzőket beálllítani, ha úgy döntünk, hogy a gomb le van nyomva. A döntést akkor hozzuk, ha a gomb nem prellel, azaz mondjuk 5..15(Ezt ki kell tapasztalni, hogy kényelmes és mi az ami elegendő. Egy kis játék az egész.) megszakításig nem detektálunk elengedést. Ezt egy erre fenntartott számlálóval a legegyszerűbb megoldani. A számláló törlődik, ha a gomb közben elengedődik, prellez. Ha megvan a kívánt határozottság, azaz a gomb lenyomása bizonyosságot nyer, akkor beállítunk egy jelzőt, miszerint a gomb le van nyomva. Ezt a jelzést a programban már bárhol és bármikor lekezelhetjük, majd törölhetjük a megszakításon kívül.
Ha a lekezelés időpontja kritikus, akkor még a megszakításban tesszük meg ezt.

A másik megoldás, hogy ha olyan lábakat választunk, aminek a változása megszakítást okoz( PORTB 7..4 vagy PORTB0). A megoldás hasonló csak oda azért kell Timer, hogy a prellt lekezeljük. Várakozás nem túl jó megoldás egy kis erőforrású rendszerben, ezért jobb a Timer-t erre használni. Bejön a megszakítás a gombtól, ami beállít egy jelzőt és az engedélyezett megszakítású Timer-t elindítja(alap helyzetben a Timer-t le kell állítani), majd kilép a gomb megszakításból. A többi hasonló mint amit korábban leírtam, csak a végén le kell állítani a Timer-t, hogy több megszakítást ne adjon, majd csak a legközelebbi PROTBx megszakításkor.
(#) accesid válasza watt hozzászólására (») Dec 2, 2010 /
 
Értem, köszönöm
(#) Gamedavid válasza nedudgi hozzászólására (») Dec 2, 2010 /
 
A tápot a Pk3 adja. 2 db led van a C porton, direkt egy teszt áramkör, mivel először használnám a Pk3-at. A pic meg az adatlap szerint van bekötve. Tehát semmi terhelés nincs a programozólábakra kötve.
(#) szilva válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Ilyenkor szokott az következni, hogy ha lehet _pontosan_ rajzold le a kapcsolást, amit összedobtál. Sok apró momentum lényeges lehet, de az is lényeges lehet például, hogy a PK3-hoz milyen és milyen hosszú vezetékezéssel csatlakozik a PIC-es áramkör.
(#) Gamedavid válasza szilva hozzászólására (») Dec 2, 2010 /
 
Itt a kapcsolási rajz.

bekötés.jpg
    
(#) El_Pinyo válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
A Vdd és a Vss közé amilyen közel csak lehet, kell 100 nF- os kerámia kondenzátor is.
(#) icserny válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Az MCLR lábon ne legyen kondenzátor, a VDD és VSS lábak között viszont legyen 100 nF!
(#) spepe válasza icserny hozzászólására (») Dec 2, 2010 /
 
De az MCLR-ről le ne hagyd az ellenállást ami felhúzza.
Mondjuk nem tudom, hogy PicKit3-nál, hogy működik.
(#) Gamedavid válasza icserny hozzászólására (») Dec 2, 2010 /
 
Most akkor az MCLR lábról áttettem azt a 100nF-os kondenzátort a VDD és a VSS lábak közé közvetlen, de nincs változás, ugyan úgy hibát ír ki, de megprogramozza. A kivett kondenzátor helyére tegyek átkötést vagy valamit? Hogyan kell konfigurálni ezt a PIC-et, mert annyi beállítási lehetősége van és nem tudom pontosan mi micsoda. Valaki leírná? Köszönöm az eddigi segítséget és bocsi a fárasztó kérdésekért...
(#) watt válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
A Vusb-re is tegyél egy 470nF-ot. Az MCLR kondi helyére nem kell semmi természetesen, esetleg 10n, de nem létfontosságú.
Milyen hosszú az ICSP összekötő vezeték és miből van?
Töltsd le a legújabb PK3 firmwaret, hátha az a baj!
Milyen nyákot terveztél neki?
(#) Gamedavid válasza watt hozzászólására (») Dec 2, 2010 /
 
Vusb-re tettem kondit, de továbbra sem jó. Kb 20 cm-es szalagkábel(ugyanezt használtam eddig Pk2-höz gond nélkül) köti össze a PK3-at a PIC-el ami egy dugaszolós panelon van. A Fw-t hogy kell letölteni, mert nem találom? Amúgy v1.26.26 van rajt.
(#) szilva válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Első körben lerövidíteném a 20cm-es kábelt, a lehető legrövidebbre, valamint egyelőre kivenném a LED-eket (vagy a soros ellenállásaikat) az áramkörből. A Vdd-Vss közé (a korábban már említett, a PIC-hez minél közelebb szerelt 100nF mellé) még elfér egy pár µF-os elkó is.

Azt kellene elérni, hogy a programozó hibátlanul felismerje, azonosítsa a PIC-et. Amíg ez nincs meg, addig nem megfelelő a kommunikáció a PIC és a programozó között, szerintem nem érdemes tovább lépni és programozni próbálni.
(#) watt válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Szerintem is hosszú a kábel.
Sajnos nem volt még PK3-am, most utánanéztem úgy tűnik nincs olyan firmware update-je mint a PK2-nek. Valószínű az MPLAB tartalmazza a szükséges frissítéseket. A legújabb van fenn?
(#) fokti Attila válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Én kb 1 hete frissítettem (PK3) , nekem az 1.26.33-at rakta fel. Frissíteni az MPLAB alól lehet.
(#) 5cmarzo hozzászólása Dec 2, 2010 /
 
Sziasztok!

A minap elkezdtem foglalkozni egy 12F675-ös kontrollerrel. A problémám az volna, hogy nem tudom a GPIO5-ös lábat I/O funkcióként használni. Pedig a konfigurációs bitek között be van állítva a belső oszcillátor úgy, hogy a GPIO4 és 5 I/O portként viselkedjenek. Valami miatt mégsem működik.
Csatoltam az ASM programot.

Köszönöm a segítséget

Üdv.: Zoli
(#) icserny válasza 5cmarzo hozzászólására (») Dec 2, 2010 /
 
CLRF ANSEL lesz a nyerő! (Nem '1'-be, hanem nullába kell állítani)
(#) Hp41C válasza Gamedavid hozzászólására (») Dec 2, 2010 /
 
Szia!

A pic rá volt kapcsolva a PICKit3 -ra, amikor az USB csatlakoztatás történt? Volt-e Check communication végrehajtva? Hogyan ismerteted fel a kontrollert.

A legrosszabb, amit tehetünk egy nem 5V-os kontrollerrel.

Az a 100 ohm - 100nF a MCLR vonalon megakadályozta, hogy a 3.3V-os családnál felismerje a kontrollert, lehet, hogy megkapta az 5V -ot is...
(#) szilva válasza icserny hozzászólására (») Dec 2, 2010 /
 
Ez igaz, de a GP5-ön nincs analóg funkció. Én inkább arra gyanakodnék, hogy a kezdeti, gombravárós ciklus tényleg vár-e, nem szalad-e tovább, és nem kapcsolja-e ki valahol azt a GP5-öt. Ezt kizárandó meg kellene próbálni ideiglenesen egy "FOPROGRAM GOTO FOPROGRAM" végtelen ciklussal.
(#) Hp41C válasza icserny hozzászólására (») Dec 2, 2010 /
 
Csak 7 -et ír az ANSEL-be, az AN0 - GP0, AN1 - GP1, AN2 - GP2 analóg, a AN3 - GP3 már digitálisra van állítva.

Ha egy kivezetést ugyan analógra állítunk, de a TRIS bitjét töröljük, a kimenet megjelenik, az A/D a logikai szinteket fogja mérni. De a RMW műveletek meglepő eredményt adnak, mivel a visszaolvasott digitális érték mindig 0.

Így hát a
  1. BTFSC   GPIO, 1

sorok (ahol a bitszám 0..2) mindig 0-t éreznek...
(#) Gamedavid válasza fokti Attila hozzászólására (») Dec 2, 2010 /
 
Hogyan lehet frissíteni?
(#) watt válasza 5cmarzo hozzászólására (») Dec 2, 2010 /
 
Mi van a lábra kötve?
Következő: »»   850 / 1319
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