Fórum témák
» Több friss téma |
Sziasztok!
Egy kis segítséget szeretnék kérni! PIC16F877A-val szeretnék 20 kHz-es PWM jelet előállítani különböző kitöltési tényezőkkel. Valamit nem jól csinálok, mert a CCPR1L értékét 0-40 között változtatva jól látszik a jel változása, de 40 fölött már 100% kitöltést mutat. Én azt szeretném ha 0 és 255 között egyenletesen változna a jel. Mellékelem a kódot. Valaki legyen szíves vezessen rá a hiba okára!
Szia! A PR regiszterbe írj 255-öt! A kitöltést, CCPR1l reg módosításával kell változtatni. Bár Így lehet nem pont 20Khz lesz... A lényeg, hogy PR2 reg adja a felbontást, ha 255, akkor 0-255 ig használható a CCPR1L reg, Ha PR2 csak 45, akkor CCPR1L 45nél 100% os kitöltést ad, és felette értelmetlen.
A hozzászólás módosítva: Okt 31, 2013
Hello!
Olvastam valahol, egy hozzászólásban, hogy az oszcillátorhoz érdemesebb kisebb frekis kristályt választani és felszorzózni, mint nagyobbat, de most nem találtam meg, hogy ez miért jobb? Tudja valaki? Konkrétan 32Mhz-et tud a PIC, és kérdés, hogy 20 vagy 40Mhz-es kvarcal jobb? A hozzászólás módosítva: Okt 31, 2013
Adatlap / Oszcillátor konfiguráció. Melyik típusról van szó?
Szerintem a 40 MHz-es rezgőkvarcot egyik PIC típus sem tudja használni a saját oszcillátorával.
A DS39969B dokumentum szerint a PLL-nek 4 MHz-es jel kell, tehát a bemenő órajel 4 MHz egész számú többszöröse lehet (4, 8, 12, 16, 20 ...). A bemenő frekvenciának megfelelően be kell állítani a PLLDIV konfigurációs bitekkel a megfelelő leosztást. Pl. 8 MHz-es kvarc és 1:2 leosztás...
Szia! Köszönöm szépen! Valóban, most már jól működik. A számításaim alapján a PR2 255-re beállított értékével a freki jelenleg kb 3,9 kHz. Ha jól gondolom, akkor ezt csak úgy tudom feljebb vinni, ha gyorsabb kvarcot teszek a PIC mellé???
Ezzel nincs is semmi bajom, a kérdés az volt, hogy a 40MHz-es kvarccal megy-e, vagy kisebb jobb lenne, de úgy nézem, hogy amiben benne van ez a 96MHz-es PLL blokk az menne 48MHz-essel is ha jól veszem ki.
Hp41C: ezeket olvastam, csak kicsit bizonytalan voltam. A 22-33pF kondik szempontjából melyik kvarcot célszerűbb?
Közben újabb kérdés: Kiegészítettem a programot egy A/D résszel. Működik is szépen, trimmerrel szépen szabályozható a kitöltés. A bajom az, hogy nekem HALL szenzorral kell megoldanom a szabályzást és a jeladó alap állapotában is ad egy pici feszültséget. Gondolom kellene valami feltétel szerűség, hogy ha az A/D-n mért érték egy bizonyos szint alatt van akkor ne induljon el a pwm kimenet. Ezt, hogy lehet megoldani?
MOVLW kuszobertek
CPFSGT adertek hmmm? Egyszeruen egy adott AD ertek alatt atugrod vagy 0-t adsz pwm kitoltesnek. Vagy lehet, hogy nem jol ertem a kerdest?
Ha a 255-ös felbontást meg akarod tartani, akkor szerintem a nagyobb kvarc lehet a megoldás. Neten ha rákeresel PIC PWM CALCULATOR-kulcsszavakra, találhatsz PWM méretező interaktív oldalakat.
Idézet: Nem megy, hiszen te is azt írtad a DS39700 alapján, hogy ennél a típusnál 32 MHz a plafon.„a kérdés az volt, hogy a 40MHz-es kvarccal megy-e” Idézet: Ennél a típusnál úgy tűnik, hogy HSPLL módban a 16 és a 20 MHz számít középmezőnynek, ezeket érdemes választani. A PIC24FJ termékcsaládnál szokásos 8 MHz-es kvarchoz XTPLL módot kell használni. „A 22-33pF kondik szempontjából melyik kvarcot célszerűbb?” A hozzászólás módosítva: Nov 1, 2013
Sziasztok!
Érdeklődni szeretnék, hogy használja valaki a HITEC C PRO PIC18 programot? Segítséget szeretnék benne kérni.
Nem sikerült hozzáírnom, így utána írom, hogy a DS39700 6.5 pontjában a táblázat azt mondja:
Idézet: „ECPLL - External clock input (4-48 MHz), PLL enabled - FOSC/2, Note 2: Available only in devices with special PLL blocks (such as the 96 MHz PLL); the basic 4x PLL block generates clock frequencies beyond the device’s operating range” Ezért kérdeztem.
Ez jó lenne, csak az a baj, hogy a PIC16F877A utasításkészletében nincs ilyen. Valami más megoldás kell.
A sublw vagy a subwf utasítás használata és a STATUS C bitjének kiértékelése..
Az EC az külső órajelforrást jelent (external clock), ami pl. a PIC-től független órajelgenerátor vagy másik mikrovezérlőből származó jel lehet.
Biztos, hogy a C bitet kell vizsgálni? Ha igen akkor nem értem.....
![]()
A feldolgozás előtt egyszerűen kivonod azt a pici értéket.
Így már értem. Azt hittem a kvarc is külső jelnek számít, de a táblázatoz alaposan megnézve, csak 32MHz-ig van írva, hogy kristály, a két utolsó az external clock. Ezek szerint az kicsit másképp működik. Végülis van benne ráció, a kvarcnak feszkó kell a külső jel meg független a pictől teljesen.
Akkor adok neki egy 20MHz-es szilánkot. Köszönöm a magyarázatot. A hozzászólás módosítva: Nov 1, 2013
Ez csak fél megoldás, mert így igaz, hogy jól indul el a PWM, de nem tudja elérni 100%-ot, mert kivontam belőle. A megoldás Hp41C válaszában rejlik, valóban a C bitet kéne vizsgálni és annak értékétől függően tovább haladni vagy vissza ugrani, csak még nem tudtam megvalósítani.
Sziasztok!
A következő problémám lenne: ma próbálkoztam PIC-et programozni(újrakezdő vagyok ![]() Arra lennék kiváncsi, hogy ez lehet a PIC hibája? Előre is köszönöm a válaszokat.
Miben van a PIC égetés után? Dugaszos panelen, vagy kész áramkör, esetleg demo board?
Kicsit konkretizálni kéne. Mi az, hogy tápra kapcsolod? Szimulátoron nézed, vagy Led nem megy? A hozzászólás módosítva: Nov 1, 2013
Próbapanelban van a PIC égetés közben is, és a ledes áramkört is a próbapanelra építettem meg.
Configuration bits --> LVP bit ?!
PK2 nem DEBUG módban programozott ?! A hozzászólás módosítva: Nov 1, 2013
Mikropascalban irtam a programot, a configbit: PWRTE:on, WDT: off, LVP: off, és INTRC_OSC_NOCLKOUT.
Külön tápja van, vagy PK2 biztosítja? Ha PK2 akkor bekapcsoltad?
|
Bejelentkezés
Hirdetés |