Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   706 / 1320
(#) icserny válasza Csaplar hozzászólására (») Márc 20, 2010 /
 
Idézet:
„and the target Vdd is above 3.6 volts”

Ebből úgy tűnik, mintha az ICD2-re nem kötötted volna rá a 3,3 V-ot! Ha nem érzékeli, hogy a PIC 3,6 V alatti tápfeszen van, akkor jogosan reklamál, mert ő csak 5 V-os tápfeszt tudna adni, ami önmagában véve nem gond, de az ehhez tartozó magas jelszintű PGD/PGC jel tönkre tenné a mikrovezérlőt.

Végkszükség esetére egy megoldás arra, hogy az ICD adja a tápot és programozza a PIC18F14K50, de ezt nem szívesen használnám, mert kinyírhatja a mikrovezérlőt, ha egyszer adapter nélkül csatlakoztatod!!!.

Ennél sokkal korrektebb megoldás a külső táp (3,3 V) alkalmazása, abból nem lehet baj!
(#) icserny válasza icserny hozzászólására (») Márc 20, 2010 /
 
A kísérleti áramkör csatlakoztatása és bekapcsolása ELŐTT csatlakoztatni kell az ICD2-őt a PC-hez és az MPLAB menüjében gondosan be kell konfigurálni, hogy ne akarjon tápfeszültséget adni a céláramkörnek. Ez megtörtént?
(#) whalaky válasza trudnai hozzászólására (») Márc 20, 2010 /
 
Túl sok kapcs rajz nem kell hozzá... D+, D- USB aljzaton, 470n a VUSB-n, 20MHz kristály két kondival, 100n a tápon.
Ennél primitívebb kapcsolást nehéz elképzelni, egyik gépen 100% a felismerése, a másik 2-n 0.
A tápra tettem már bazinagy elkókat is eredményteklenül.
Nem hiszem el hogy senkinek nem csinált még ilyet.... Senkinek nem csinált ilyet?
Ha a HID oscilloscope HEX file-ját töltöm bele, akkor egyszer ugyan már látott belőle valamit, de felkiáltójeles maradt az eszközkezelőben, azóta semmi. A másik gépen azzal is jó.
Lassan hajlok rá hogy a gépnek van valami baja, de eddig semmi mád USB eszközzel nem volt baja.
(#) icserny válasza whalaky hozzászólására (») Márc 20, 2010 /
 
Megpróbálhatnád egyszer a Microchip gyári HID programjaival is, hogy kizárjuk a szoftver hiba (valami a határon lehet benne...) lehetőségét.

Hardver: tényleg jó lenne a kapcsolás! Külső felhúzás, VBUS figyelés, ugye, nincsen bekötve?
(#) (Felhasználó 56240) válasza icserny hozzászólására (») Márc 20, 2010 /
 
Szia már csak egy kérdés a kapcsolási rajzon R1 21k ellenálláson kapcsolódik a Vpp +12V?
Zavaró mert a kapcsoláson +5V van írva
(#) icserny válasza (Felhasználó 56240) hozzászólására (») Márc 20, 2010 /
 
Idézet:
„R1 21k ellenálláson kapcsolódik a Vpp +12V?”

Szerintem a rajzon R1 = 10 kOhm. Ennél kisebb ne legyen! De a 21 kOhm (ha az van kéznél) is jó. Sokkal nagyobb ne legyen!

De nem ezen kapcsolódik a Vpp, hanem közvetlenül az MCLR lábra. R1-nek az a szerepe, hogy programozás után felhúzza a RESET lábat, hogy elindulhasson a program. Programozáskor Vpp és a +5 V között kiegyenlítő áram folyik R1-en, ezért nem szabad túl kicsinek lennie. A dióda ezt a kiegyenlítő áramot hivatott megszüntetni az eredeti kapcsolásban, de vannak egyéb mellékhatásai, ami miatt nem javasolt a használata (VDD megszűnésekor nem húzza le az MCLR lábat, mert lezár a dióda). A drótosok ezt szebben el tudnák magyarázni, de a lényeg az, hogy elég oda egy 10 kOhm, az mindenkinek bevált...
(#) trudnai válasza (Felhasználó 56240) hozzászólására (») Márc 20, 2010 /
 
Javasolnam, hogy rajzoldd le mit szeretnel megepiteni, mert mar a beszelgetesetek alatt elhangzott par dolog amiket jo lenne feltuntetni a rajzon, es utana azt atnezni. A rajzon termeszetesen legyen rajta az ICSP csatlakozo is, es akkor lehet majd latni, hogy jo helyre gondoltad-e a bekoteset vagy sem.
(#) Csaplar válasza icserny hozzászólására (») Márc 20, 2010 /
 
Szia!
Igen, beállítottam, hogy külső tápról menjen a programozás.
A tápot most USB-ről kapja a panelka és lemértem, hogy el is jut a 3.3V az ICD2-es csatlakozásáig. (Az usb két kommunikációs lábát kikötöttem programozás előtt, hogy csak a tápot kapja)
De ha ennek így működnie kellene, akkor nem tudom mi lehet a baj.
Esetleg újra kiméregetem, hogy biztos jól kötöttem-e be az ICD2-es csatiját...
Köszi
(#) (Felhasználó 56240) válasza trudnai hozzászólására (») Márc 20, 2010 /
 
Rajzoltam a kapcsolást így gondoltam
szerintetek jó lesz?
(#) whalaky válasza icserny hozzászólására (») Márc 20, 2010 /
 
OK, valahogy átküzdöm magam rajta, bár nem hiszek benne, ugyanis mint említettem ugyan az a program egy másik nyákban (ugyan az) tökéletesen működik, és a HID scope amit gondolom páran már megépítettek az is ugyan ezt produkálja, de mit lehet tudni. Egy próbát megérhet....
(#) icserny válasza Csaplar hozzászólására (») Márc 20, 2010 /
 
Nem láttam még ICD2-őt közelről, ezért csak kérdezem: a Programmer/Settings menüben nem kellene a kívülről kapott Vdd-nek valahol megjelennie? (vagy a Power vagy a Status fülre kattintva)

A bekötést ettől függetlenül érdemes ellenőrizni.
(#) tomi52 hozzászólása Márc 20, 2010 /
 
Lehet, hogy teljesen triviális dolgot kérdezek, de (sajnos még) kezdő vagyok....

PIC18F4685-öt használok tanulni (a jó nagy memória miatt néztem ki magamnak).

A kérdésem, hogy a számlálókat interrupt nélkül is lehet-e használni? A számláló regiszter kiolvasható-e? Esetleg írható is?

Egy olyan megoldást szeretnék, hogy két - nem számláló okozta - interrupt közt szeretném mérni az időt. Ugyanakkor nem szeretnék folyamatosan egy számlálót pörgetni fő ágként.
(#) trudnai válasza (Felhasználó 56240) hozzászólására (») Márc 20, 2010 /
 
D1 meg mindig ott van, azt szedd ki, es mindket Vdd es Vss koze tegyel hdegito kondit -- most csak egyet latok (C3)
(#) trudnai válasza tomi52 hozzászólására (») Márc 20, 2010 /
 
Idézet:
„a számlálókat interrupt nélkül is lehet-e használni?”
Igen

Idézet:
„A számláló regiszter kiolvasható-e?”
Igen

Idézet:
„Esetleg írható is?”
Igen

Idézet:
„Egy olyan megoldást szeretnék, hogy két - nem számláló okozta - interrupt közt szeretném mérni az időt. Ugyanakkor nem szeretnék folyamatosan egy számlálót pörgetni fő ágként.”


A szamlalo sajat magatol porog ha egyszer beallitottad. Mikor jon egy megszakitas, tedd el a szamlalo pillanatnyi erteket, majd mikor megint jon, akkor szamold ki, hogy a pillanatnyi es az eltarolt ertekek kozt mennyi ido telt el.

Persze ugy is csinalhatod, hogy a szamlalot az elso alkalommal torlod -- azonban mindket esetben biztosnak kell lenned abban, hogy a szamlalo nem csorgott tul.
(#) tomi52 válasza trudnai hozzászólására (») Márc 20, 2010 /
 
Köszönöm a gyors választ!

Idézet:
„Persze ugy is csinalhatod, hogy a szamlalot az elso alkalommal torlod -- azonban mindket esetben biztosnak kell lenned abban, hogy a szamlalo nem csorgott tul.”

Az írhatóságot a nullázás miatt kérdeztem. Az idők akkorák, hogy "lötyögve" el kell férnie a 2 byte-os számlálóban.
(#) Hp41C válasza tomi52 hozzászólására (») Márc 20, 2010 /
 
Szia!

A mindegyik timer regiszter írható olvasható, de az írás megzavarhatja a működést. (Az a timer, amibe az írás történt, egy ideig nem számol. A Timer1 írására nézd meg a Timer1 Errata-t is.) Elég lenne a folyamatosan számlóló timer állapotát kiolvasni a kérdéses időpontokban és az értékeket kivonni egymásból.
A két CCP modul capture üzemmódját pontosan ilyen feladatokra tervezték...

Az esetleges túlcsordulás állapot figyeléssel vagy megszakításosan is lekezelhető, a számlálás tetszőleges bitszámra növelhető....

Szia
(#) szilva válasza whalaky hozzászólására (») Márc 20, 2010 /
 
Ilyen jellegű bizonytalansággal egyszer találkoztam a PICkit2-vel kapcsolatban, amikoris az összeszerelésnél valami forrasztást "segítő" kencét használt a gazdája, és annak a maradványai tréfáltak meg. A kvarcoszcillátor indult vagy működött bizonytalanul. Egy alapos tisztítás után megszűnt a hiba.

Ha nem is feltétlenül szennyeződés miatt, de nálad is a kvarcoszci problémájára tudok gondolni. Esetleg próbáld meg kvarccserével, vagy a kvarc melletti kondik értékének változtatásával 815-33pF között). Ha USB-zel, akkor amúgy is lehet akár 16, 12, 8 és 4MHz-es kvarcról is járatni a megfelelő sebességgel a PIC-et, ehhez csak a config bitekbe kell belenyúlni (én 12MHz-eset szoktam leginkább használni). A config-ban esetleg a power up timer ki/bekapcsolásával is lehetne kísérletezni.
(#) Hp41C válasza szilva hozzászólására (») Márc 20, 2010 /
 
Szia!

Cseréld össze a két egyforma szerkezet kvarcát. Ha a hiba marad azon a készüléken, amiben eddig is volt, akkor a kapacitások, átvezetések a hiba oka, ha a hiba átmegy a másikra, a kvarc az oka.

Épen tegnap vesződtem a 18F2550 HID bootloaderrel 4MHz kvarccal, előosztás nélkül, nem indult el, 20MHz kvarc, 5-ös előosztással (a kvarcot cseréltem, PicKit2-vel kiolvasva, csak a config területet módosítva beprogramozva), ugyan az a program rendesen fut. A PLL nagyon szűk tartománnyal rendelkezik a 4 MHz alapfrekvenciára (+/- 0.25%), a kvarcom egy régi magas tok volt 4MHz felirattal, a mostani egy új, alacsony tok, 20.000MHz jelzéssel.

Szia
(#) szilva válasza Hp41C hozzászólására (») Márc 20, 2010 /
 
A frekimérőben pont így használom a timereket. Az egyik (timer2) adja az időalapot, a másik (timer1) folyamatosan számolja a külső bemenetre érkező impulzusokat. Az timer2 által generált interruptban kiolvasom a timer1-et (16 bites módon, hogy a kiolvasás közben ne csússzon el), és kivonom belőle az előző interruptban kiolvasott értéket.
(#) Hp41C válasza szilva hozzászólására (») Márc 20, 2010 /
 
Szia!

Ezen az elven, de a CCP modullal tároltatva, már 1 ppm-es mérést is tudok csinálni.... Két dolog miatt nem érdemes a felbontást tovább növelni: a felhasznált alaposzcillátor pontossága - ára, illetve a mérési idő - 1 ppm felbontáshoz már 1MHz méréséhez 1 másodperc kell...

Szia
(#) Hp41C válasza Hp41C hozzászólására (») Márc 20, 2010 /
 
Szia!

Elnézést, nem annak válaszoltam, akinek a két szerkezet közül az egyik rendetlenkedik....

Szia
(#) (Felhasználó 56240) válasza trudnai hozzászólására (») Márc 20, 2010 /
 
Elfeledtem ki venni a D1 diódát
Akkor 31 és 32 láb közé 100Nf kondit rakni és 11 és 12 láb közé is 100nf kondit rakni
Akkor így minden tiszta már csak az égető kapcsolást kel meg építenem pont azon dolgozom
Köszönöm az eddigi segítséget
(#) icserny válasza (Felhasználó 56240) hozzászólására (») Márc 20, 2010 /
 
Az sem volna butaság, ha mindkét áramkörnél a korábban általam javasolt sorrendben vezetnéd ki a jeleket, hogy az ICSP tüskesorod a PICkit2 készülékkel is kompatibilis legyen!
(#) (Felhasználó 56240) válasza icserny hozzászólására (») Márc 20, 2010 /
 
Rendben az jó ötlet

1. MCLR (ez a VPP)
2. VDD (+5V)
3. VSS (GND)
4. PGD
5. PDC
6. PGM (ez csak LVP módban kell...)

De mi az a (LVP)?
Van még valami a R1 lábára +5V ír oda csak a teszteléskor kel +5V kapcsolni?
Égetésnél viszont a PIC 1 lábára +12V kapcsolok de akkor a R1 lábára +5V akkor nem kel ugye?
(#) trudnai válasza (Felhasználó 56240) hozzászólására (») Márc 20, 2010 /
 
LVP --> Low Voltage Programming

Akkor kell neked, ha alacsony feszultseggel programozod a chip-et (tehat a Vpp-n nem 12-13V, hanem 5V van). A PIC-en a PGM/LVP labat amugy erdemes lehuzni egy 10-20k -val a foldre, illetve a configban az LVP legyen kikapcsolva...
(#) meili hozzászólása Márc 20, 2010 /
 
Sziasztok!
Próbanyákon összeraktam egy kis pic18f14k50-es áramkört, programozni lehet PICkit2-vel, az le van tesztelve, csak le szeretném ellenőrizni, hogy működik-e rendesen.
A 8-as lábára, azaz az RC6-ra tettem egy LED-et, és azt szeretném vele villogtatni.
Ott akadtam el, hogy az elején ugye be kell állítani pár regisztert, hogy működjön a dolog, például a lábakat analógról digitálisra átállítani, meg ilyenek. Csak a mikrokontrolller adatlapjában rengeteg regiszter van, és nem tudom, hogy ezek közül melyeket szükséges beállítanom, meg hiába olvasom el, sokról nem is értem, hogy mire való.
Tudnátok nekem abban segíteni, hogy mely regisztereket kell beállítanom?
Köszönöm előre is!

Ja és itt van az adatlapjához a link:
Bővebben: Link
(#) tomi52 hozzászólása Márc 20, 2010 /
 
Megint egy kérdés....

Ha jól olvasom a dokumentációt, akkor sima I/O regiszter megszakítást csak a B7-B4-es lábak tudnak. (PIC18F4685) PicKit2-m van. A programozáshoz a B7-B6 foglalt. Mit csinál a PicKit, amikor éppen nem égeti a programot? Használhatók ezek a lábak a PicKit lehúzása nélkül nyomógombhoz?
A tanuló panelemen pillanatnyilag jumper van a B6-os, B7-es lábon amivel a PGD, PGC bemenetekre, illetve a kiegészító panelek csatlakozójára lehet a lábakat kötni.
(#) szilva válasza meili hozzászólására (») Márc 20, 2010 /
 
A legegyszerűbb, ha az adatlapban megkeresed az I/O portok alatt a PORT C-ről szóló szakaszt (a linkelt doksiban 9.3). Itt találsz egy példát az inicializálásra (example 9.3), de ez sajnos jelen esetben nem teljes, mert ott van megjegyzésben, hogy a 6. bit analógként indul bekapcsoláskor.

Ezért érdemes megnézni ennek a szakasznak a végén a Table 9.5-öt, amiben az összes olyan regiszter fel van sorolva, ami a PORT C-vel kapcsolatban áll (a PORT C viselkedését nem befolyásoló bitek ki vannak szürkítve). Innen látszik, hogy az ANSEL és ANSELH is beleszól. Az ANSEL-re rákeresve a 9.4 pontban találtam meg a bitek jelentését, az ANSELH-ban van az a bit, ami az RC6 analóg vagy digitális voltát állítja.

Érdemes még a portról szóló szakaszban a Table 9.14-et tanulmányozni, amiben a PORT C minden bitjéről le van írva, hogy a digitális I/O-n kívül milyen más funkció van hozzárendelve. Ha nagyon korrekt akar lenni az ember, akkor az adott bithez kapcsolódó minden modult érdemes végignézni, hogy induláskor nem aktív-e, de a 18F-eknél ez már nem szokás, 16F-eknél kellett az analóg komparátorra figyelni ilyen esetekben.
(#) Blint hozzászólása Márc 21, 2010 /
 
Sziasztok!

A gondom ami némi fejtörést okoz: adott egy teljesen alap feladat: led villogtatás a főprogramban, és egy megszakítás rutin, amibe beletettem egy darab NOP()-ot, illetve törlöm a megszakításforrás flag-jét.

Amint generálok egy megszakítást, úgy néz ki, mintha nem térne vissza a megszakítási rutinból, tehát megszűnik a led villogása

paraméterek: hitech-c fordító, 16f1937, a megszakítás PORTB egy pin-jén lefutó él hatására.

Megnéztem a fordított asm-et, abban benne van a RETFIE utasítás.

Van esetleg valakinek valami öltete?

Illetve a másik kérdés: PICKIT2-őt használok, rá lehet valahogy bírni az MPLAB-ot, hogy hajlandó legyen a PK2-vel kommunikálni/debuggolni a 16F1937-et?

Köszi, Blint
(#) szilva válasza Blint hozzászólására (») Márc 21, 2010 /
 
A PORTB változás által okozott megszakítás lekezelésénél meg kell szüntetni a "változás" állapotot. Ezt úgy lehet elérni, hogy ki kell olvasni a PORTB-t (a változás flag-et talán nem is tudod törölni, mert az generálódik a legutolsó PORTB kiolvasáskor eltárolt állapot és az aktuális állapot különbözőségéből). A kiolvasott értékkel nem kell semmit csinálni, csak a kiolvasási művelet a fontos.

Egyéként ez benne van az adatlapban is.
Következő: »»   706 / 1320
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