Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Sziasztok! Ha SPI interfészre kötök megfelelő LCD modult, akkor itt is kell felhúzó ellenállás, mint I2C-nél, vagy csak mehet pőrén a PIC-re?
Elvileg van egy SI (Serial Data In), CLK (Clock), CS (Chip Select), A0 (Command(L)/Data(H)) vonalam. Ha kell, akkor ezek közül melyiket, kell felhúzni és mekkora ellenállással? Hálás köszönet! Goo
Hogyan lehetne PIC-el vezérelt valamivel egy 6-8V közötti jelet 1,1-1,3-szorosan erősíteni? Csak a feszt kell, A minimális.
Néztem OPAMP-okat, amiket lehet vezérelni PIC-ről. Valaki már csinált vmi hasonlót? Más ötlet is érdekel.
Szia!
Az első próba megtörtént(csatoltam a rajzot. A tranyók helyére képzelj FET-eket!). Igaz nem BS170-el, hanem egy TTL FET-el a PHP55N03LT-vel. Belátom nem a legjobb választás, mert nem elhanyagolható a Gate kapacitása, de gondoltam 470ohm-on keresztül csak meg lehet hajtani a gate-et. Hát nem. A BS170 jobb választás, mert pF-os kapacitásai vannak. Tehát a főpróba még várat magára!
Egy Shottky dióda a kollektor és a bázis közé, ahogyan az a 74LS szériában is van. Egy smd kivitelű dióda könnyen szerelhető a TO92 tokozású tranzisztorokra.
Hát, érdekesen nézett volna ki a programozód 55A -es FET -ekkel Ja, még egy ötlet: esetleg egy dual fet-el tovább csökkentheted az alkatrész számot, gate ellenállás se kell szerintem.
A gondom, hogy csak P-s és egy N-P-s duál FET-em van itthon. A próbákat már csak kíváncsiságból csinálom...
Sziasztok!
A paralell porton a vezetékeken jelmeredekség korlátozás van beépítve - az adadtvonalak meghajtása legalább szimmetrikus, az autofeed és a többi vezérlő vonal open kollektoros/nyelőelektródás is lehet. Ez gyakorlatilag egy-egy R-C elemet jelent vonalanként. A jelalak trozulását több dolog is befolyásolja: A tranzisztorok nyitása kb 0.7 V-nál következik be, a 7407 komparálási szintje pedig 1.4V, 74LS07-é pedig 1.1V. A BS170 kb 2V küszöbfeszöltséggel rendelkezik. A modernebb fet-ek küszöbfeszültsége kb. 0,7V (irf7306). Lassú felfutás az open kollektoros vezérlő jeleken. Jelvisszaverődés a nem megfelelő lezárás miatt. A tranzisztorok bázisellenállása sokkal nagyobb, mint a megkívánt lezárás. Föleg a nagysebességű átvilelre képes (EPP, ECP) portoknál jelentkezhet. Az ic-s megoldásoknál a bemeneti vedő diódák a reflexiókat csökkenthetik. Sajnos a fent felsorolt problémákat okozó tulajdonságok a portot megvalósító áramkörtől erősen függenek. A legjobb megoldásnak a lezáró ellenállás beillesztése (értéke az adott porttól függ), és hiszterézises vevőáramkör lenne. A 7407 kapuja elé egy 74LS14. Vagy egy jelet két 74LS14 illesztene a pichez. Az open kollektoros meghajtást a második kimenetére kötött Shottky diódával is meg lehet oldani. Sziasztok.
Találtam pár PIC -es könyvet. Köztük van a feljebb említettek is.
Hali. ezzel az égetővel tudok PIC16F628A égetni?... mert megépítettem, de valami nem stimmel..
Majd mindjárt jön Watt és elmondja hogy ez egy JDM klón, és hogy nemjó. Próbáld ki inkább megépíteni az ő printerportos változatát. A kapcsolások között ott a cikk. Vagy ha többször is használnál pic égetőt, akkor az Oshon félét. Bővebben: Link
ó, ez fantasztikus .... na nembaj. Mit ajánlasz helyette?... milyet készítsek, ami működik is?
Itt az oshon féle nyákokkal kapcs rajzzal mindennel: Bővebben: Link
Nekem működik 16f628-cal. Ic-progot használok. Az oldal supportja szerint a PGM-et GND-re kell kötni.
Meg is építem, nem gond... viszont ma jött meg a rendelésem akkor msot megint kellesz, és csak ,,filléreket,,...
MINDIG előbb kell kérdezni/olvasni/gondolkodni, és csak utána rendelni/forrasztani/feszültség alá helyezni!
Hello
Azt olvastam, hogy ha a Timer1 modulra külső 32768Hz-es kvarcot teszek, és az előosztót pedig 1:1 -re állítom, akkor pontosan másodpercenként lesz megszakítás. Ezt nem nagyon értem, mivel így 32768-szor fog növekedni a Timer1 másodpercenként, és csak a 2. másodperc végén csurdol túl (2^16 = 65536). Szóval akkor hogy is van ez? Üdv.
Valamit ott rosszul írtak, mert valóban két másodpercenként fog túlcsordulni. Esetleg ha túlcsorduláskor a felső regiszter legfelső bitjét 1-be billented, akkor fogsz másodpercenként megszakítást kapni.
----- Amúgy igazán rakhatott volna a microchip ide valami olyan bitet, aminek hatására a felső bit minden túlcsorduláskor 1-be billen, és tényleg másodpercenként okozna megszaítást...
És ha 4194304Hz-es kvarcot használnék? Van ilyenem. Így ezzel elvileg másodpercenként 64 megszakításom lenne; minden megszakításkor növelném egy változó értékét eggyel, és ha ez eléri a 64-et akkor eltelt 1 másodperc. Alkalmas lehet ez időmérésre így?
Üdv.
A nagyfrekvenciás kvarcok általában kevésbé pontosak, mint az órakvarcok, de amúgy igen, így is lehet. Viszont a Timer1 oszcillátor nem tudja a nagyfrekvenciás kvarcot meghajtani, hanem muszáj lesz főoszcillátorként használnod a kvarcot, és a processzor órajeléről hajtani a Timer1-et. Így viszont nem 64, hanem 16 megszakítás fogja adni az 1 másodpercet. Ha viszont 18F-et használsz, akkor a Timer0-t beállítod 16 bitesnek, adsz neki 16-os prescalert, és akkor a Timer0 tényleg másodpercenként fog megszakítást adni.
Vajon kipróbálják a microchipnél a kódjukat, mielőtt kiadják? Ezt találtam a TCPIP csomagban az LCD-re írás kódjában (LCDBlocking.c):
A probléma a felső kóddal, hogy 4 bites módban nagyon nem azt rakja ki az LCD adatvonalaira a felső félbájt kiírásakor, mint amit kellene, hanem nullákat rak ki folyamatosan. Ez a kódrészlet lenne az, ami négy bites módba billenti először a kijelzőt, majd utána bármilyen íráskor ez rakja ki a tényleges lábakra az adatokat. Az érdekes, hogy az alsó félbájtnál viszont jól van írva a kód. Helyesen tehát az eleje:
Nem csak a Microchipnél nem próbálják ki, régebben találtam egy példa programot mikro pascalban ami nem akart működni. Már szinte mindent átnéztem amikor megláttam hogy a portokat állították be rosszul. Szóval szerintem nem nagyon próbálgatják őket vagy a végleges verziót nem tesztelték csak.
Üdv!
Én ezzel a felsőbit-bebillentéssel kínlódtam egy sort. Elméletileg persze így működik, ahog írtad, de nálam a 2 másodperces megszakításokkal (szabadon futtatva a timer1-et) pontos volt az óra, ha pedig a timer1 megszakításban billegtettem a felső biteket, akkor késett (Azért biteket írok, mert ha nem csak a legfelső, hanem pl. a legfelső két bitet billented 1-be, akkor belátható, hogy pontosan fél másodpercenként fog megszakítás érkezni, 3 bitnél, negyed mádosperc, és így tovább. Nálam a cél a másodpercenként 16 megszakítás volt, mert így az ISR-ben kezelem a billentyűket és minden mást is, a főprogram gyakorlatilag egy végtelen ciklusban futó SLEEP lett.)
A megoldás az lett, hogy (kissé elítélhető módon) megvárom a TMR1L változását egy tight loop-pal az ISR-ben, és közvetlenül ezután teszem meg a TMR1H felső bitjeinek bebillentését (egy IORWF utasítással). Tehát erre figyelni kell, ha szükség van a pontosságra, pl. egy RTC esetén.
Ennek a megoldásnak (fő oszcillátornak használni az időalap kvarcát) még az is hátránya lehet, hogy ilyenkor nem tudod altatni a CPU-t, mert akkor a timer túlcsordulás IRQ sosem fog megérkezni. Alvó állapotban csak a timer1 használható időmérésre, aszinkron módban.
Próbálta már valaki, hogy mennyire működőképes MPLAB+C18 alatt, ha pendrive-t használunk project mappaként? Eddig mindig egy gépen írtam a programokat, de most keveset vagyok otthon és így 2 gépet kellene használnom. Csakhát nem azonos meghajtó lesz, így az eléérési út problémás, meg ki tudja még milyen problémákat vet fel a kérdés...
Ha a különböző gépeken azonos módon telepíted a MPLAB-ot és a C18-at, akkor a rendszer beállítások azonosak lehetnek a projectben. Ezután ha másolod a projectet a pendrive-ról monduk a C meghajtón kialakított ugyanolyan mapparendszerbe, akkor szállítható lesz a project. Más megoldást egyelőre én sem ismerek. Elég szégyen ez a microchipre, miután pl. a VB6 évekkel ezelőtt megoldotta ezt a problémát, minden felhasználói macera nélkül! Az elérési útvonal hossz limitálásuk már csak hab a feketetortán!
Az MPLAB-ot szerintem nem érdekli hogy a project merevlemezen vagy pendrive-on található amíg a meghajtó betűjele meg nem változik. Állítsd be mindkét gépen mondjuk P: -re a pendrive-ot és akkor nem fog nyavalyogni (XP-n vezérlőpult / felügyeleti eszközök / számítógép kezelés / lemezkezelés), és ahogy watt is írta ugyanúgy telepítsd a 2 gépen az MPLAB+C18-t.
|
Bejelentkezés
Hirdetés |