Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Az alábbi helyen van két Appnote, az 588 és a 849. Mindkettő a PIC-ek oszcillátorával foglalkozik, esetleg nézd át ezeket is:
Bővebben: Link
Írtam már, hogyha 0-át olvas, akkor probléma van a kommunikációval.
Ott van az üzenetben, hogy 0x00-t olvasott, tehát semmit. Vagy halott a PIC, vagy nem kap tápot, vagy kontakt hibád van.
Koszonom szilva es watt a segito hozzaszolasotokat.
Alapvetoen az optocsatolos megoldasrol teljesen letettem. Most azon torom az agyam, hogy hogyan lehetne valamifele vedelmet beletenni a pic ele. A jelenlegi kapcsolas ugy mukodik, hogy az osszes bemenet optocsatolos (digitalis 1 vagy 0), es az osszes kimenet 24V DC finder relevel megoldva. A pic 1 trafo, a kimeneti releknek meg egy trafo. Tehat elvileg a pic minden iranybol galvanikusan le van valasztva. Tehat vissza terve az analog-digitalis atalakitasra. Alapvetoen a kovetkezo hibak fordulhatnak elo (tegyuk fel, hogy az aramhurokba egy sima 100Ohm-os ellenallast teszek, es ezt merem pickel): hiba: rovidzar az ellenallas elott megoldas: nem kell vele foglalkozni, minket nem erint hiba: szakadas az ellenallas elott megoldas: ezzel se kell foglalkozni, mert 0V lesz. hiba: szakadas az ellenallas utan megoldas: nem tudom elkepzeles: beteszek az ellenallassal parhuzamosan egy 3.3V-os zener diodat. Tehat ha 3.3V-nal nagyobb a feszultseg, akkor a zener dioda rovidrezar, es meg mindig 5V alatt tudok merni a pickel. Az a bajom ezzel a megoldassal, hogyha tul nagy aram folyik, akkor a zener is tonkremegy. (ha zarlattal megy tonkre, akkor nincs gond. De ha szakadassal, akkor megint ott vagyok mintha semmi vedelmem se lenne) hiba: tul nagy aramot kapok (>>20mA), pl. rossz helyre kotik telepitesnel. megoldas: nem tudom elkepzeles: megint a zener diodas mese jut eszembe. Szoval latott mar valaki valamilyen vedelmet AD atalakito elott? Igazi kapcsolasi rajz is erdekelne! Ha az ad atalakitast egy masik pickel csinalnam es a digitalizalt jelet mar optocsatolon adnam az igazi picnek, akkor a problema kb. megmarad. (ugyanolyan picbol tennek 2-ot). Raadasul akkor bejonne meg egy olyan is, hogy milyen tapfeszultseggel menne a masik AD. Igazabol en valami olyan megoldast szeretnek latni, mint a jobb multimeterekben lathato. Tehat eloszor a legkisebb ellenallason keresztul meri meg a jelet, es ha lehet lejjebb menni, akkor atkapcsol (ezt hogyan?), es akkor megmeri azon. Pl. eloszor megmernem 1Ohm-on, aztan 10-en aztan 100-on. De erre se latok seholse peldat. 5letek? (ez a tema lassan mar nem is kapcsolodik igazan a picekhez)
Nem volt kontakt hiba,kimértem, aztán Potyo mondta, hogy ezeknél át kell rakni a jumpert, és láss csodát jó lett.
persze rögtön felmerült a kérdés, hogy hogyan kell ezt assembly-ben programozni, mert ehhez már mást kell beállítani az MPLAB-ban is, mert az inc-et nem jó helyen keresi, de majd küzdök vele.
Nos hazaértem, nagy lelkesen nekiestem a dolognak. Se HS se Xt módban nem megy. Bánatomban lejjebb adtam, 4 megás kristályra, de a jelenség ugyan az, vagyis semmi.
Az adatlapon van egy ilyen Idézet: „A series resistor (RS) may be required for quartz crystals with low drive level.” Valaki elárulná mi lenne ez? Még csak utalást sem találtam rá hogy mekkora ellenállás kéne neki a kristállyal sorba a 3as lábraés hogy mit ért low drive level-en. ("kissé hiányos" az angol tudásom)
Sziasztok!
MPLAB V8.00 + PICKIT2- vel szeretnék PIC 16F877A-t programozni/DEBUG-olni, de ezt írja ki mikor próbálom csatlakoztatni .....Nem tudom mi a gáz.... PKWarn0003: Unexpected device ID: Please verify that a PIC16F877A is correctly installed in the application. (Expected ID = 0xE20, ID Read = 0x9A0) PICkit 2 Ready
Régen volt valamelyik rádiótechnikában egy jópofa kapcsolás arra, hogyan lehet analóg jelet relatíve kis torzítással optocsatolóval átvinni. A módszer az volt, hogy 2db optocsatolót használtak, az egyikkel vitték át a jelet a galvanikusan leválasztott részre, a másikat pedig betették egy negatív visszacsatoló ágba. A visszacsatolás kikompenzálja az opto torzítását, a probléma csak az optocsatolók példányainak szórásában van, ami azért állítólag elég nagy.
Sajna nem tudom melyik számban volt ez a kapcsolás, de legalább 5-10 éve láttam.
na kész aprogi. végül a saját módszerembe építettem be az álltalam kitalált kikapcsolgatós részt, de azért kösz a segítségeket. még a pergésmentesítést kell valahogy megoldanom. van valakinek erre ötlete?
Az OSC2 lábbal tegyél sorba egy ellenállást, valami néhánytíz ohmot. De nem hiszem, hogy ez lenne a gondja, inkább rossz a kvarc.
Legalább annyit megtehetnél, hogy a kérdésemre válaszolsz! Na mindegy...
elnézést, de csak most olvastam a hozzászólásod.
az "Arra rájösz, hogy az első példa miért hibás?" kérdésre várod a választ? szerinte az hogy az elsőnél amikor megvizsgáljuk hog még mindig meg van e nyomva a gomb, ott ha nem volt elengedve akkor visszament a fő programrészbe, a 2. verzióban pedig addig ismételte ezt amíg el nem engedtük a gombot. lehet hogy te nem erre gondoltál vagy ezzel arra akarsz célozni hogy a másodiknak ez a része jó pergésmentesítésre?
Hogy a kvarc rossz lenne azt kizárnám, mert az egyiket egy működő kütyüből bányásztam, és még két másik vadi újjal próbáltam. Ezt az ellenállás dolgot ugyan nem értem, d emegpróbálom. Köszi!
Amit leírsz az addig rendben, de a kérdés, milyen hibás működést okoz az első verzió, miért nem jó arra amit én hozzá leírtam, ill. amit a második verzió jól csinál, csak közben lefogja a fő ciklustól a programszálat? Annyit segítek, hogy elképzelhető olyan álapot, amikor jól működik, de olyan is amikor nem. Még annyit segítek, hogy ez az állapot a gomb felengedésének időpontjától függ.
A második verzió nem prellmentesít, elsősorban nem e miatt változtattam meg a kódot, hanem a feltett kérdés miatt! A prellmentesítést másképp kell megoldani. Itt is van több lehetőség, az egyik hogy várakozásokat iktatsz be az ellenőrzések közé. Ez a megoldás lefogja a programot, hasonlóan a második megoldásomhoz. (már előkészítettem egy olyan példát, ami nem fogja le a ciklustól a programszálat, de még nincs benne prellmentesítés. Gondoltam lépésenként kéne menni, hogy megértsd a lényeget. Ez csak akkor megy, ha partner leszel!) A jó megoldás pedig az lenne, ha számlálókkal számolnád meg, hogy mennyi ideig volt lenyomva a gomb. Ha időn belül felengedted, akkor a számlálót lenullázod. Ha letelt a meghatározott számlálás, akkor a gombot lenyomottnak kell tekinteni. A számláló elhelyezése a programban kritikus, mert számlálóval is lehet olyan kódot írni, ami ugyanúgy lefogja a többi résztől az erőforrást. Az egyik legkényelmesebb megoldás a megszakításban való prellmenetesítés, ami azt is magával vonja, hogy a gomkezelést is a megszakításban végzed. De szerintem érdemesebb lenne lépésenként haladni.
Lehet amugy Neomur gyorsabban tanulna, ha valami ravezetos modszerrel sajat maga talalna ki az algoritmusokat - akar azt is, hogy "hany kuonbozo szoftveres modszert tudna elkepzelni a pergesmentesitesre". Ha mas Te is meg en is leirtunk modszert, akkor inkabb egy ide vonatkozo, de megis picit mas "ravezeto" kerdes:
Neomur, hogyan oldanad meg kulso alkatreszekkel a gomb pergesmentesiteset? (Internet es szakkonyvek hasznalata tilos ) Idézet: „Lehet amugy Neomur gyorsabban tanulna, ha valami ravezetos modszerrel sajat maga talalna ki az algoritmusokat” Én csak elvet írtam le, az algoritmust nem. Aztán nem biztos, hogy gyorsabban halad valaki, ha nem lát konkrét példákat. Én pl. szeretek ilyeneket látni(most tanulom a VHDL-t, pontosabban az ISE-t.).
Igen, neha jok a peldak, de pl sokat segit nekem pl, ha atgondolom hogy oldanam meg. Meg akkor is ha hulyeseget csinalok, vagy egeszen vakvaganyon indulok el, mikor megnezen kesobb mas hogy oldotta meg, akkor valahogy sokkal jobban rogzul az egesz.
Pl ebben az esetben sokat segit, ha atgondolja, hogy mi is tortenik valojaban, miert pereg az a billentyu. Es ha atgondolja, hogy hogyan lehet ezt a pergesidot felismerni szoftveresen, ill hogy milyen egyszeru modon lehetne ezt hardveresen megszuntetni (hogy pl szoftveresen ne kelljen ilyennel mar foglalkozni).
Helló. Most Készitettem egyPIC égetőt. Most az előbb raktam fel a ,,Ki mit épitett,,-be. ÉS van itthon egy PIC12F629-es PIC-m. Nos ebbe szeretnék egy nagyon egyszerű programot beleégetni. Légyszi küldjetek már valami nagyon egyszerű kis beleégettetnivaló fájlt. Lehet az valami csipogó, vagy villogó kis kütyü. Akármi.
én még anno ezt írtam tesztprogramnak
villogtaja az összes ledet a D porton. nem tudom hogy hány portja van a 629-nek, de ha nincs PORTD akkor írd át port A vagy PORTB-re nem tudom hogy jó lesz-e azon az ic-n is
azt kell megoldani hogy a gomb megnyomása után csak 1 impulzust adjon a picnek. mondjuk szerintem 555 astbil módban jó lenne erre. a pergés álltalában nem tart ovább 1 másodpercnél, így az 555öt be kell állítani úgy hogy ha triggert tápfeszre vagy GND-re (nem tom most hogy monostabilnál hov kell húni) húzzuk, akkor a kimeneten 1mp-ig high jelet fog adni a picnek. ez szerintem megszűntetné a pergést, hogy a pic ezt ne érzékelje úgy mintha hosszan nyomnánk a gombot, ezért a programba kéne rakni egy kis várakoztatást, de ez nem feltétlenül szükséges szerintem
Én eretnekségnek tartom, ha PIC-re kötött gombot külső alkatrésszel pergésmentesítenek!
ok csinálhatjuk így csak nics sok időm most a héten, úgyhogy ha nem gond, akor majd a hétvégén átgondolom ezt a kérdés
amúgy itt a kész progi amibe akkor még pergésmentesítést akarom megcsinálni, amit akkor csinálhatunk a rávezetős módszerrel
hát igen az elősző teljes mértékben az én ötletem volt, de van még1 ötlet: tegnap amikor kész lett a program, apámnak mondtam hogy már csak a pergésmentesítést kell megoldani (mivel ő is ért az elektronikához valamenniyre), és ő szerinte flip-flop-okkal lehtne még megoldani
En is szeretem a minimalis kulso alkatresz felhasznalast, es mindent szoftverbol csinalni amig a pic gyozi De tanulashoz ezeket meg kell velemenyem szerint csinalni, mert ettol rogzul be, hogy mi is tortenik, miert fontos stb.
Neomur, tulbonyolitod a dolgot. Javaslom rajzolj le egy jelet, ami a mechanikai gomb megnyomasakor es elengedesekor lathato. Nem kell halalosan preciznek lenni, csak, hogy nagyjabol mi tortenik szerinted, es miert erzekeled ugy a pic szemszogebol, mintha sokszor megnyomkodtak volna a gombot. A megoldas joval egyszerubb mint amerre elindultal.
hát valahogy talán így nézhet ki egy pergés.
ha az két rajzom közül jó valamelyik. akkor az végülis egy analóg jel, mivel nem csak 1/0 az értéke, hanem vannak köztes értékei is, a PIC bemeneti lábai pedig digitálisra vannak állítva, szóval e miatt is érzékelheti a pic, hogy sokszor nyomták meg a gombot, bár szerintem ez hülyeség. ha a 3. rajzom a jó, akkor pedig a jel szerint tényleg többször nyomtuk meg a gombot, és egyértelmű hogy ezt a pic is így értelmezi, ebben az esetben, tényleg valami olyan külső alkatrész kell ami csak 1 impulzust ad az IC-nek a gomb megnyomása után. szerintem ez is hülyeség de most ez jutott eszembe: tranzisztor, mert talán az nem kapcsol olyan gyorsan, mint ahogy a pergés "kapcsolgat"
ja ha 8 lábú, akkor közel se biztos hogy ez a progi működni fog rajta
de majd megnézem az adatlapot, aztán írok rá valami hasonlót
Inkább a harmadik rajz, de a pergés főleg akkor jelentkezik, amikor összefelé nyomódnak az érintkezők. A tranzisztor nem jó, mert túl gyors erre a célra. Ha jó lenne, akkor a pic bemenetén levő tranzisztorok is kiszűrnék.
Ahogy potyo irta inkabb a 3.-hoz hasonlo. Ha analog jel lenne akkor sem lenne erdekes a PIC szemszogebol - ill ez sem teljesen igaz mert vannak smidt triggeres kapuk is, de ne menjunk elore ennyire. A PIC-ek dokumentaciojaban amugy le van irva, hogy mi az a feszultseg szint ami alatt 0-nak es ami felett 1-nek tekinti a jelet a chip.
Mar kozel jarsz amugy a megoldashoz, valoban kesleltetni kell a jel allapotvaltasanak sebesseget, de az ilyesmit joval egyszerubb alkatreszekkel szokas megoldani mint a tranzisztor... |
Bejelentkezés
Hirdetés |