Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Emlekeztek meg a PicKit2 PGC es PGD jelszint illesztesere? Ott direkt sokat huznak le a labakrol, de a PIC nem engedi, hogy sok jojjon le, mivel rohamosan elkezd esni a fesz szint es beall a kivant ertekre - azaz igy van az illesztes megoldva... Microchip design... szoval az, hogy le akar huzni feszt nem okozhat melegedest en szerintem, de pl egy nem megfelelo Vdd szint, vagy egy szuretlen tap, vagy egy tulporgetett kristaly / rosszul konfigolt oszcillator / nem rezgo hanem gerjedo kristaly stb ezek okozhatnak meglepeteseket - en most nem emlekszem, hogy kulso kristalyt / rezonatort hasznal-e az OP, vagy belsot, valamit a teljes kapcsolast a hasznalt ertekekkel es a mert fesz es esetleg aram szintekkel, no meg a konfig fuse-okat meg nem lattuk, szoval lehet ott rossz tervezestol kezdve hibas alkatreszen keresztul szakadasig ill rovidzarig minden, nem beszelve EMI-rol.
Sziasztok!
Ti hogyan választatok PIC-et egy adott feladatra? Én egy olyan 16F sorozatút keresek, aminek van legalább 5 I/O portja, + legalább 1 A/D konvertere. Ki is néztem a 16F506-ot, viszont nem tudom, hogy lehet-e ICD2-vel programozni, mert nem látok rajta PGC és PGD lábakat. Melyiket javasoljátok az igényeimhez?
Nézd meg az ICD2 által kezelt chipek listáját. Mivel F van a nevében, szinte biztos, hogy lehet ICD2-vel programozni. A PGD és PGC néha ICSPDAT és ICSPCLK néven szerepelnek az adatlapokban.
Amúgy kb. úgy választunk, hogy megszámoljuk hány láb kell, milyen perifériák (ADC, USART, stb.), majd azt is megnézzük, hogy miket lehet viszonylag egyszerűen beszerezni, és így a végén valamire esik a választás. De szoktunk itthon tartani általánosabb jellegű chipeket (18F4550, 18F2550, 18F452, 18F252, 18F1320, 16F887, 16F628, 12F683, stb.), és ha nincs spéci igénye a feladatnak valamilyen perifériára, akkor ezek közül valamelyiket betesszük.
Kiválasztottam MPLAB-ban a 16F506-ot, és ott azt mutatta, hogy lehet ICD2-vel programozni, és utána kerestem a PGC, PGD lábakat, azt nem tudtam, hogy ICSPCLK és ICSPDAT néven is jelölik, mert azok vannak rajta! (Gondolom a PGC a CLK, és a PGD pedig a DAT.)
Köszönöm a segítséget. Egy másik kérdés, hogy a komparátort hogyan lehet használni a PIC-ekben? Azt meg lehet oldani, hogy egy komparátor bemenetén figyelem a feszültséget, és ha az egy bizonyos érték felett van, amit a programba megadok, akkor bebillentsen egy bit-et, vagy erre inkább az A/D-t használjam?
Sziasztok!
Az a kérdésem, hogy Ebben a kapcsolásban használhatok-e a kvarc helyett ilyen kerámia rezonátort? Kvarcot sajnos nemtaláltam hozzá. Ezt a háromlábú cuccot hogy kell a kvarc helyére bekötni? Előre is köszi
Dehiszen a komparátor pont erre való, nem?
(A PIC-ben egy valódi komparátor van(ill. több))
Igen, beteheted ezt is a kvarc helyére. Az egyik szélső lába a PIC 16-os lábára megy, a másik szélső a 15-ös lábra, a középső lábát pedig a földre (GND) kötöd.
Azt is vedd figyelembe az 506-os az baseline, 12bites utasitasokkal, interrupt kezelo nelkul stb. Sok feladatra jo, de azert erdemes ezt is szemelott tartani. Anno ossze irtam a wikipedian a baseline eszkozok listajat. Amugy a Microchip oldalan szoktam parametrikus keresessel valogatni az eszkozoket, neha erdemesebb gyakrabban hasznalt tipusok fele menni, neha erdemes elgondolkodni vajon lesz-e kesobb bovitesre szukseg es annak is megfelel-e az adott chip. Arakat is termeszetesen be kell kalkulalni, foleg ha nem home projectrol van szo.
Ha ez egy óra lenne, akkor azért meggondolandó, hogy kvarcot, vagy rezonátort használsz-e. Nemrég kísérleteztünk itt páran egy sort, és úgy tűnt, hogy a MHz tartományban még a kvarcok is elég pontatlanok ahhoz, hogy valós idejű óra alapja legyen a rezgésük, a legjobbnak a 32768Hz-es órakvarcok bizonyultak. Szóval technikailag beteheted, ahogy Norberto is írta, de ezzel azért légy tisztában!
Megszakítás nélkül elegendő lenne, viszont 12 bites utasításokkal még nem foglalkoztam, akkor olyat kellene keresnem, aminek ugyan az az utasításkészlete, mint a 16F84-nek, mert arra meg van már írva a program egy része, de abban se komparátor, se a/d nincs, és egy mindenképpen szükséges.
Ha 16F84 a kiindulás, akkor talán célszerű megnézni, hogy a 16F628 család nem jó-e a célra (16F627/628/648). A 16F628 az elavult 16F84 leváltására lett kitalálva, azzal lábkompatibilis, és a 84-re írt szoftverek is viszonylag könnyen migrálhatók rá. A 16F628-ban van két komparátor is, lehet, hogy ez elég is a feladathoz. Nézd meg mindenképpen az adatlapját!
Nekem a BigClock órába 4MHz-es kvarc van, és nagyon pontos.
Esetleg nem jó a kapcsolásba 4MHz-es kvarc a 4,194 helyett? Azért köszönöm a segítséget üdv.: Müszi
Halihó mindenkinek!
Bocs hogy nem írtam, de sulis dolgokat intéztem. Szóval! Valóban 16f874A a "kiválasztott"! (csak tegnap már túl este volt) Még nem volt időm átnézni a kapcsolást, h nincs-e vmi rosszul. Az ell. értékeit sem ellenőríztem, bízok benne, h amit a gyártók kiadnak a kezükből, nincs nagyobb eltérés 5%-nél. Csak a színkódot szoktam figyelni, ha pedig vmelyikben nem vagyok biztos rá mérek. De lehet, hogy átfogom nézni őket is. A táp szűrése annyi, amennyit a DC-DC önmagában tartalmaz, 8800µF pufi, 1uF, 100nF kerámia. Nem hálózati feszt szabályozgatok, hanem egy generátor által termelt feszültséget. Ha a "kapcsoló" FET zárva van, a PWM nem is tud működni (program...) Ha pedig kinyit, a PWM elindul (látszik a LED-en, meg kicsit hallani a tekercseken is) és kb 1-2 mp után le is ál! Ekkor már melegszik! Mellékelem a kapcs. rajzot, a programból pedig a lábak konfigurálását végző részt. A kapcs. rajzon a kimeneti és bemeneti kondik (szűrő kondikkal együtt) csak 1-1 kondival vannak szimbolizálva. Várom a kritikákat és véleményeket.
Hát ebből nem látszik ok, ami miatt sülnie kellene. Első körben tényleg jó lenne az ellenállások értékét ellenőrizni. Másodikban pedig szkóppal kellene megnézni, nem kerülnek-e vissza tüskék a PIC felé, amik esetleg a clamp diódákon keresztül okozzák a melegedést.
Igen, egy szkóp nem ártana, sok mindere fényt derítene, csakhogy nincs
aadig is marad az átnézés!
Akkor szerintem szerencséd van azzal a kvarccal.
Nekem itthon van egy zsák 11MHz-es, azok pl. elég pontatlanok, aztán egyszer vettem olyan 12MHz-eseket, amikre tán 5 nullával van ráírva a 12.00000MHz, azok sokkal pontosabbak. De óra céljára szerintem még azok sem túl jók, havi 1-2 perc körül csalnak. Amit legutóbb építettem 32768Hz-es órakvarccal PIC-es órát, az két hónap alatt szedett össze fél percet. Ezt már elfogadhatónak tartom. Minden esetre ha az órát működtető program hozzáférhető forrásban és újra lehet egy módosítás után generálni belőle a hex-et (tehát minden része megvan), akkor bele lehet nyúlni a más frekijű kvarchoz igazítva az időzítéseket. Ha csak hex van, akkor eléggé mazochizmus ízű a dolog.
Azt meg szabad kerdezni, hogy a D1-R14-RV3 mit csinal? Es azt is szabadna tudni, hogy a Q3-mal mi volt a cel? Merthogy ha tekercs mogott nincs puffer kondi akkor az gazos lehet.
Ja, meg valami: A teljes port inicializalast megnezhetnenk? Ezuttal ha lehet nem JPG-ben, merthogy ez szoveg file-bol jon, szoval akar txt-nek beillesztve is megteszi es talan onyebben kezelheto, vagy a [ code = asm ] (a sok space nelkul termeszetesen) hasznalataval ide a forumba...
A D1-R14-RV3 áram mérésre való, a sönt után figyeli a fesz. esést, ezt még meg kell oldjam úgy, hogy az a/D alsó bitjeit nézze, mert elég kis feszültségek lesznek ott. Meg igazából csak áramkorlátként használom, nem is árammérésre.
A Q3 lenne a nagy fogyasztású relét kiváltó kapcsoló. Annyiban tér el a kapcsolás az eredeti nyáktól, hogy mind a két kapcsoló áramköri rész a tekercs előtt van.
A port inicializalas elegge elhanyagolt, a datasheetben ha megnezed a portA-t hogy inicializalja, az egy jo kiindulasi alap. Altalaban az out latch biteket szokas elore nullazni, meg akkor is ha inputra allitod, utana kikapcsolni az osszes kapcsolodo periferiat majd a TRIS piszkalas.
Ami viszont problemas a kodban, hogy a BANKSEL PORTB rossz helyen van, ettol a valtozoid nem inicializalod ill a BCF PORTB,1 is mar a TRIS-t piszkalja, ami jelen esetben a szerencsenek koszonhetoen nem fogja a programod befolyasolni (mivel azt amuy is nullanak akartad). Ha mashol is vannak bankolasi problemak a kodban akkkor az okozhat meglepeteseket (pl atkapcsolot az outputot inputra es mivel a portot nem inicializaltad az isten tudja mi all be az aramkorodben. A kapcsolas nem vilagos, hogy egy rele-vel ki-be kapcsolgattak valami eredeti kapcsolasban a kimenetet? Tehat a PWM generalas allando volt es egy kulon kapcsolo volt beteve? En kivennem azt a masik kapcsolot, ami amugy is rossz helyre kerult, es egyszeruen mikor le kell alliyani az aramkort akkor 0 kitoltesi tenyezot allitanek be a PWM fele... A shunt ellenallas viszont annal az aramkornel nem jatszik jelenleg szerepet, nezd meg, hogy a fesz oszto mindket vezeteke ugyanarra a szintre van rakotve, azaz az minden esetben nullat fog merni.
Nemcsak az utasitaok, hanem a hasznalt periferiak is szamitanak. Tehat pl ha interruptot hasznal akkor mar felejtos nagy valoszinuseggel, vagy csak onyodalom aran irhato at. Ha komparatoron kivul hasznal mast is akkor nyilvan annak is kell lennie a kivalasztott masik tipusban.
Pl. a 84-esben ugy emlekszem van egy open draines kimenet, ha ezt kihasnzalja akkor figyelni kell mert keves PIC-ben van OD kimenet, akkor vagy kell radobni egy fetet, vagy valahogy maskepp illeszteni... A 12 bites utasitasok nem ternek el nagy mertekben amugy, van par utasitas ami nem letezik es par masik ami igen, de ez a resze mindig megoldhato. Ja es meg valami: szinte minden PIC-nel vannak elteresek az IO portok es periferiak multiplexeleseben ezert az inicializalast at kell nezni, hogy az biztosan megfeleloen tortenjen. Sok sikert!
Ez az inicializálás nem igazán tiszta nekem, nem rég kezdtem a PIC-el való foglalkozást.
A áramkört én és egy tanárom segítségével terveztem. Tehát én döntöttem arról, hogy kell oda az a kapcsoló, mléghozzá azért, hogy ha nincs elég fesz. a bemeneten, ne legyen terhelés a generátoron (könyebb indulás). Tehát a generátor üresen felpörög, biz. fesz. szint fölött bekapcsol a "kapcsoló" FET és ezáltal rákapcsolja a terhelést. Amúgy próba panelen működött már az áramkör, viszont ott csak a PWM FET volt benne, a másik csak egy LED-el volt szimbolizálva. Tehát a programnak nem szabadna, h baja legyen. (A PWM ment, tehát a fesz. szabályozás is) A shunt ellenállást a rajzon rossz helyre raktam, de a megépített áramkörben már a shunt előtt van, tehát nem közös potenciálon. Sokszor este csináltam, és ilyenkor lanakad a figyelme a z embernek.
"de a megépített áramkörben már a shunt előtt van"
mármint a mérő pont!
Inicializalas: PIC-ekben majdnem minden port meg van osztva tobb funkcionalitassal is. Mikor inicializalod a portot, akkor az a torekves, hogy lehetoleg arra a feladatra legyen a port felhasznalva amire szeretted volna. Ehhez pl le kell tiltani modulokat (mint ahogy az analog reszt is letiltottad, csak szerencsesebb lenne ezt a TRIS allitgatas elott megtenni). Az adatlap (datasheet "magyarul") sokszor tartalmaz peldat hogyan kell a portot inicializalni, azt erdemes betartani - bar ott is elo-elo fordul olykor-olykor pongyolasag es egyik-masik periferiat nem tiltjak le, de legtobbszor mert POR utan az adott periferia amug is kikapcsolt allapotban van.
Valtozo inicializalas: Gondolom ezt a reszet erted a hozzaszolasomnak? Hogy a bankolas rossz helyre kerult, es erdemes lenne az egesz forrasodat atnezni, hogy a bankolasok mindenutt jol vannak meg? A shunt ellenallas: OK, akkor az nyilvan ugy jo ahogy van, csak a rajzon jelenleg az zavaro. Ami a 2. FET-et illeti, az rendben van, hogy szeretned kapcsolgatni, de akkor tedd oda ahol a rele volt, vagy tedd a buffer utanra. De tovabbra is azt mondanam, hogy ameddig a kivant bemenu feszultseg nem allt elo addig ne is kapcsold be a PWM-et. Ezt egy komparatorral meg lehet egyszeruen oldani, ill a PWM moduloknal (talan csak az enhancedeknel?) szokott lenni olyan, hogy a PIC automatan lecsapja a PWM-et egy adott feltetel teljesulese eseten. Ez lehet a bejovo fesz, vagy a shunt-on mert aram is, lehet ez utobbi szerencsesebb - most jol eltoprengtem magamban Mindenesetre akar egy igazi rovidzar vedelmet is lehetnel az egeszre, ha mar ugyis be akarsz rakni egy 2. FET-et de a puffer kondi utan! A probapanelen mukodott: Az aramkor vegleges formajat kell elerni a probapanelen mielott maratod a nyakot, erre valo.. Nem a programmal (jaj, ne hivjuk mar programnak, ez nem szamitogep hanem mikrocontroller) szoval a firmwarednek lehet nincs kulonosebb baja, de az aramkornek igen. Probald meg egyszeruen atrakni azt a puffer kondit vagy egy masikat probakepp bele tenni oda a tekercs moge kozvetlen, es vizsgald meg melegszik-e a PIC-ed ugy...
"Valtozo inicializalas", hogy értem-e?!
NEM, de majd utána nézek. Az elejét még a tanárom írta, én kisebb-nagyobb változtatásokat végeztem rajta, de az alap konstrukció ugyanaz. Azért nem én, mert akkor tényleg nagyon az elején voltam még ennek a témának, igaz kellett volna vele foglalkozni már előbb is, de vhogy elmaradt. Lényeg az, hogy a tanárom igen jól ért a programozáshoz, és a PIC-ekhez is. Erről a melegedésről majd őt is megkérdem, csakhát vége a sulinak... 2. FET: Mint már mondottam, saját tervezésű kapcsolás, a relé soha nem volt benne, mindig is kis fogyasztásúra akartam. De kifogom próbálni azt, h kiveszem, és egy átkötést teszek a helyére. Azt viszont nem értem, hogy miért baj az, hogy a PWM FET után van közvetlen (közéjük csatlakozik a shottky). Ha teljesen kinyitom, akkor végülis nem sok vizet zavar, vagy igen? A firmware-t nehezebb leírni XD És ha már programozásról van szó, akkor had nevezzem programnak Nem firmware-eltem, legalábbis nem annak hívtam, de sztem te sem annak hívod! (egyenlőre amúgy csak elméleti hibakeresést végzek, mert nincs időm szerelgetni, köv. héten szóbeli vizsgák!!!
Kozben nezem, hogy vissza kapcsolsz a 0-s banra a BANKSEL ADCON0-val, szoval azzal a resszel ott akkor nincs gond, csak van egy felesleges BANKSEL PORTB benne de ez legyen a legkevesebb.
Ha a FET-edet teljesen kicsitod akkor igazad van, nem sok vizet zavar. A gond akkor keletkezhet, ha lezarod, s kozben a PWM elkezd dolgozni. De ha a PWM-et kapcsolgato FET-et tartod zarva akkor ugyanugy nem jut at aram, igy talan ez is elegendo, nem? Magyaran az a 2. FET teljesen feleslegesen van ott, csak hibalehetoseg mind az aramkorben mind pedig a firmware-ben. Firmware Igen, firmware es nem program, firmware fejlesztes es nem programozas A program operacios rendszeren fut, a firmware alatt csak a szilikon van. Azonkivul a firmware az elektronika resze, mivel enelkul pl ez a kapcsolas sem mukodik. Azert nem szeretem programnak nevezni es legfokepp szoftvernek nem, mert ez azt implikalja, hogy a fejleszto a microkontrollert mikroszamitogepnek nezi. Van egy szurke arnyalat a ket dolog kozott, amikor egy kisebb vagy nem eppen kicsi eszkozre operacios rendszert tesznek es teljes programozoi kornyezetet kinalnak - ezek a beagyazott rendszerek. Semmi extra nincs ott, legtobbje nem sokban kulonbozik egy mikroszamitogeptol, csupan az adat tarolasa es a kapcsolodo periferiak ternek el sokszor.
Ez a FET-es dolog tényleg jó lehet, vhogy eddig erre nem gondoltam...
Érdekes módon te vagy az első aki ezt mondja, pedig pár emberrel beszéltem róla. eléri a feszt-kinyit, de csak annyira amennyire kell, és ha nincs elég delej lezár és pont. Amúgy az áramkorlát is a kitöltési tényezőt csökkenti. köszee (akkor a firmvér jó?)
Kaptam egy digitális tárolós pc-re csatlakozós USB-s szkópot.
100Msample/s, 40Mhz-t tud. Próbaképpen meg akartam nézni a picdem panelemen a 20 Mhz-es órajelet. Nem sikerült Biztos én vagyok béna, lévén nincs gyakorlatom szkópos mérésben de jó lenne ha tudnátok adni tippet, hogy mit szúrtam el. Ha jól számolom akkor egy periódus 20Mhz-nél 5ns. Levettem az időalapot 4ns-re (ez a legkisebb), a tartomány pedig 1 Volt DC-n állt. Csipeszt rácsiptettem a GND-re a nyákon, a tűvel meg böködtem az OSC1 és OSC2 bemeneteket, de semmi Nem így kell?
Es kozben MUKODOTT a PIC jol?
Csinalj egy egyszeru villogtatot es utana probald meg. Szerintem leterhelte a kvarcot. Probald meg a brummot merni vele, azt szepen kirajzolja. Vagy a PIC-be irj egy portttekero progit clrf TRISC cimke: incf LATC (vagy PORTC) bra cimke a C port labait tapogasd es akkor labankent felezodik a freki. Es az birja...
Sok oszi leall ha rateszed a scope-ot... Tedd ki az FOSC/4 -et a pic labara es azt probald meg merni elso korben. Valoszinuleg kellene epitened egy oszcillatort, hogy a kristalyt ilyen ertelemben kiprobald, de lehet mas mond valami okosabbat is.
|
Bejelentkezés
Hirdetés |