Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szia!
- 16F877 A port - nincs belső felhúzó ellenállása, a bemenet CMOS, a komparálási szint 0.15 * Vdd illetve 0.8V (4.5V < Vdd < 5.5V). A bemenet árama max. 5uA. - A lehúzás is majdnem ugyan olyan jó, mint a felhúzás. Az egyetlen eltérés, hogy kisebb a zavartartalék, azaz kisebb zavarjal át tudja billenteni a bemenetet. Használj kisebb értékű (1 .. 2 k) ellenállást és egy kis szűrőkondenzátort. - Ha van még szabad ST bemenet, akkor érdemesebb azt használni, mert a komparálási szint 0.2 * Vdd ill 0.8 * Vdd lesz... Egyszóval, működni fog...>>
Mivel csak az ADRESH értékét olvastam ki és használtam ezért a kiolvasott érték csak 8 bites tehát max 255 lehet. A kapcsolási rajzot te is könnyedén elkészítheted mivel mindent kommenteztem és felül megtalálod a bekötését a kijelzőnek. Az NTC bekötését csatolom, ha jól tudom a PORTA0-ra van kötve a középkivezetés. 25 foknál az NTC-m 4,7K-s ezért a feszültségosztó kimenetén pont a tápfeszültség felel lesz tehát 2,5V. Tehát már csak annyit kellett csinálnom, hogy az ADRESH értékét osztottam 5-el ekkor megkaptam egy számot melyből már meg tudom határozni a számokat a kijelzéshez maradékos osztással és sima osztással. A képlet nagyon egyszerű volt bár először csináltam ilyent egy kis logikával rá tudtam jönni hogy mivel is kellene osztani vagy éppen szorozni. Csak számolgatni kell ez az egész.
Sziasztok! Kész a pic-es strobim, most a programján változtatnék. A jelenlegi állás:
Idézet: „#include "C:\PIC programozasaim\stroboszkop\strobika.h" void main() { setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC); setup_vref(FALSE); setup_oscillator(OSC_4MHZ); while(1) { Output_high (PIN_A5); //A portA 5-ös kimenete legyen H szintű Delay_ms(40); //Várakozz most 40ms-ot és nincs feladat Output_low (PIN_A5); //A portA 5-ös kimenete legyen L szintű Delay_ms(40); //Várakozz most 40ms-ot és nincs feladat } }” Azt szeretném rajta változtatni, hogy szünetmentesen és megállás nélkül villogjon, addig míg ki nem húzom az USB-ből. Hogyan oldjam meg? Most szünetenként megáll, majd kikapcsol az egész, amig újra ki és vissza nem dugom.. ![]()
Akkor ott valami baj van. A program jó, nem állhat le.
Akkor csak a tranzisztor lehet a vacak. Most egy 548-as van benne, mert a 2n3904-el el sem akart indulni. Majd veszek másikat bele. Ja, meg egyelőre 2 led van rajta..
![]()
Szia!
Az USB szabvány szerit a készülékeknek a kommunikáció kezdetén jelezniük kell az áramigényüket. A későbbiekben egy áramkorlátos táplálást kapnak. Kommunikáció nélkül csak korlátorott áramot adnak ki az alaplapi illesztők. Valószínűleg a felvillanás árama meghaladja a határt, a port lekapcsolja a táplálást.
Hp41C kipróbáltam egy 4,5-ös elemmel. Tényleg igazad van ! Így megy szépen !
![]()
Hogy mik vannak! Arduino kompatibilis 32-bites fejlesztői kártyák
A ChipCAD honlapján is hirdetik, tehát előbb, vagy utóbb itthon is kaphatók lesznek a DILIGENT PIC32 mikrovezérlőkre alapozott, Arduino kompatibilis fejlesztői kártyák. A ChipKIT Uno32 kártya központi egysége a Microchip PIC32MX320F128 mikrovezérlője. (ChiCAD ár: 5.190 Ft+áfa) A chipKIT Max32 pedig, amely PIC32MX795F512 mikrovezérlőt tartalmaz, az Arduino Mega kártya babérjaira tör. (ChiCAD ár: 9.530 Ft+áfa) Érdekesség, hogy a kártyák nem csak hardveresen kompatibilisek (a shield kártyák csatlakoztathatósága révén) az Arduni kártyákkal, hanem ugyanaz a programnyelv és fejlesztői környezet is használható hozzájuk, könnyű indulást ígérve a kezdőknek. Természetesen, annak sincs akadálya, hogy az MPLAB C32 fordítójával és PICkit3 programozóval "hagyományos" módon programozzuk a kártyán lakó mikrovezérlőt.
Amugy ezt mar egyszer megirtad ide
![]() Idézet: Valóban. „Amugy ezt mar egyszer megirtad ide” ![]()
Sziasztok!
Egy PIC18F14K50 segítségével ismerkedek az AD átalakítással. Referenciafeszültségnek a belső 2,048V-ot használom. Az miért van: ha negatív referenciaforrásnak a VSS-t használom (ADCON1 NVCFG = 00) akkor hibásan mér, ha viszont negatív referenciaforrásnak a VREF- -t használom (ADCON1 NVCFG=01) és a VREF- lábat lekötöm GND-re akkor meg jól mér. Az analóg bemenet elé a gyári ajánlás szerinti kapcsolás van megépítve, azelőtt pedig egy ellenállásokból felépített feszültségosztó van.
A PICCOLO projektben mindenhol VSS-t használtam referenciának és nem volt gondom vele. Nézd meg az azokban taláható ADC konfigurálást, hátha találsz valami eltérést a sajátodtól!
Sziasztok!
Olyan kérdésem lenne valaki foglalkozott már 18fxxk22 spi modulal? pontosabban ssp2 modul részel. ssp1 modul tökéletesen müködik, természetesen ssp2stat stb.. átírva mindegyik regiszter a megfelelőre. persze bekimeneti konfiguráció is helyesen van beállítva, a portb felhúzó ellenállás is tiltva van. ha kell majd csatalom forrást is... Nincs már semmi ötlettem ![]() Válaszokat előre is köszi!
Szia!
Ez nem hiba, hanem teljesen normális (de parazita!) jelenség. Pont ezért találták ki a PIC AD-ját úgy, hogy van külön VREF- is. A PIC-re kötött dolgok felé folyó árama PIC-ből folyik vagy abba folyik el, a táplábakon keresztül. Ez feszültséget ejt a tápvezetékeken és hogyha a külső referencia negatívja nem közvetlen a PIC VSS lábára van kötve, akkor a mért jel is ugrálni fog. Vagyis igazából nem a jel ugrál, hanem a PIC AD-ja és ebből adódik az ugrálás. Ugyan ez igaz egyébként nem csak a referenciára hanem magára a mérőjelre is. Kár hogy azt sehol nem írják Microchip-ék hogy a bemenő jel negatívjának a VSS-t vagy a VREF--t tekintik. Bár ki lehet mérni végül is. Ezért örültem én nagyon amikor megláttam hogy (például) a PIC18F25K80-nak differenciális bemenetű AD-ja van... ![]()
Üdv Urak!
Tegnap egész nap szívtam egy számomra új problémával. Soros porton kellene adatot küldeni, fogadni egy PIC33 fj 256 mc 710 -el Az a gond, ha a rx lábra kivülről o érkezik, vagy gnd-re húzom akkor resetbe viszi az egészet. Ez csak akkor van így ha az UARTEN be van kapcsolva, I/O ként ez nem történik meg. Az adatirány bit 1-be van írva. Korábban egy másik PIC-el csináltam ilyet, ott nem jelentkezett. A kód részleteket onnan másoltam. Mi lehet a gond? Valamit be kell kapcsolni amiről nem tudok? Üdv mindenkinek kszabi
Az oldalon lévő programokat vettem kiindulási alapként.
A PIC-cel próbaképpen feszültségmérést valósítok meg 0-40V-ig, az eredményt egy LCD kijelzőről olvasom le. A mért feszültséget így kapom meg: Vref*20*ADRES[10bit]/1023. A PIC feszültségmérési tartománya feszültségosztó ellenállásokkal van kibővítve, amiket egy potméterrel kalibrálok. A PIC belső referencia feszültsége (2,048V) rá van kapcsolva a CVref kimeneti lábra. Az feszültségosztó beállításakor a CVref lábon megjelenő ref feszültséget egy követőerősítőn keresztül a feszültségosztó bemenetére kapcsolom, majd a potmétert addig állítom míg a helyes érték 2,048V jelenik meg eredményként. Amikor azonban nagyobb feszültséget mértem pl: 24,5V-ot (2 műszerrel ellenőriztem) eredményként 25,6V jelent meg. Próbaképpen a képletben a Vref értékét is módosítottam , növeltem csökkentettem, de ugyanúgy rosszul mér. Ha a VREF- bemeneti lábat k kb. 20cm-es vezetékkel kötöm le a GND-re akkor meg jól mér. Nem értem miért nem mindegy hogy tokon belül szoftveresen vagy tokon kívül 20cm vezetékkel kötöm le a vref- -t 0V-ra, Így egy láb "pocsékba" megy.
A belső 2,048V feszültségreferenciát használom.
A helyzet attól még ugyan az. A belső referenciát sem mindegy hogy hova kapcsolja rá. Ha a VSS-re akkor ugyan úgy jelentkezik a probléma, mert akkor meg a referencia negatívja és a bemenő jel negatívja nem közös.
Amúgy az áramkörben amivel épp most foglalkozom (egy forrasztóállomás) én is egy analóg lábat felhasználtam arra hogy csak úgy natúrban lekötöttem a földre.
Milyen beállításokat használjak a 4MHz-es belső oszcillátorról futó PIC18F25K80-on, hogy a PWM felbontása 10 bit lehessen? Az adatlapban leírt számításokat nem teljesen értem egyenlőre, a konkrét példa amit leírtak (egy kis táblázatban), az pedig 40MHz-es órajelre szól. Könnyítés hogy a PWM freki bármekkora lehet mert jó nagy integráló tag van utána, de ha a lehet akkor minél kisebbnek kellene lennie.
A PR2 legyen 256-1, ekkor a PWM felbontása 10 bites lesz.
Még egy kérdés: Hogyan állítsam be az AD-t?
![]() Mindig Icserny EZEN hozzászólását veszem alapul. Most akkor 4MHz-ről van szó, tehát Fosc/2-nek kell lennie az 1,28us-os Tad-hoz. Ez 1Tacq-val kevés, kettővel meg már sok hogy az Icserny által írt határok közt legyen. ![]() Idézet: Úgy állítsd be, ahogy az adatlap mondja! Lásd pl. Table 23-1! „Még egy kérdés: Hogyan állítsam be az AD-t?”
Még egy adalék: meg kell nézni az adatlapban Table 31-26-ot is, mert TAD minimális értéke a referencia feszültségtől is függ! (0.8 us vagy 1.4 us)
Hmm... 2,048V lesz a belső referencia, úgyhogy ha jól értem Fosc/2 és 4TAD-kell lennie.
Építettem 1 PIC-es áramkört 12F675-tel, amit autóban használok törtem is a fejem a kérdés feltevése előtt, h melyik topicba írjak - pláne Watt #1016094 hsz.a után... Csak annyi a működése, h 1 lábon jelsorozatot dekódol, 1 másikon pedig annak megfelelő sorozatot küld ki. Ha csak a gyújtást adom rá, akkor elvileg sokáig működik.Viszont elindulás után menet közben egy idő után nem reagál.
Belső 4 megás oszcillátort használok: lehet, h pár perc után annyira elmászik a frekvencia, h emiatt nem jó? Azután gondoltam erre, mikor legutóbb még az autóban kikapcs/bekapcs (csak az áramkörnek) után sem működött, de másnap már megint jó volt. Nézegettem az adatlap idevágó részét (INTOSC FREQ vs. Temp.) a 114. oldalon, de a "sigma" -kkal nem tudok mit kezdeni..erről nem találtam semmi infót.
Van egy olyan érzésem, hogy a tápon bejutó zavarjel akasztja ki a PIC-et...
![]()
Első gondolatom nekem is ez volt, ezért cseréltem le a PIC-et (előtte 16F84 volt - ebből van 1 csomó
![]() Ha járó motornál resetelem az áramkört (akár többször is), az sem használ.
Plusz tanulmányoztam potyo 2 autós cikkét is itt, így már eleve beépítettem pár zavarszűrő 100n -s kondit a PIC-nél közvetlenül, illetve a táprésznél.
|
Bejelentkezés
Hirdetés |