Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szuper, éreztem, hogy az a 4k7 túl nagy áramot folyathat, de nem gondoltam, hogy az ICD2 nem tudja lehúzni... A jó öreg 10k!
![]()
pickit3-at felejtsd el! ICD3-at mindenki dicseri bar nekem sajnos nincs.
Marad az ICD2.
Szóval a bootloader nem fut normálisan benne, az oszcillátorral lehet baj, mert a PC ismeretlen eszközt talál. A boglyába összeforrasztott PIC24FJXXXGB206-al megy ez a kód. A 210-essel panelen nem megy. Ha külső kvarcal hajtom akkor nem is indul el mindíg. Ha belső oszcira kapcsolom azzal is ugyan ez a helyzet, bár az legalább mindíg elindul. Felrakom a kapcsolási rajzot, hátha valami gáz van vele de én nem találtam hibát. USB-vel nem szívtam még ennyit ![]() A rajzot nem lehet feltölteni, mert php fatalerrorvan. ![]()
15Pf-et a 10MHz-en kicsit keveslem oda inkább 33pF et tennék!
A VDDCORE kondi az milyen? Oda is tennék egy 100n-t és Tantál kondit. Egy ekkora IC-nek már átgondolt nyák kell. Hanem jó a vonalvezetés, nem lesz stabil.
Ja bocs a rajzon 10Mhz van én 8Mhz használok végül, mert az órajel osztás miatt azt érdemes.
A nyák az gyári, nem házibarkács. Olyan, mintha nem jó frekin menne a cucc. Vddcore az SMD ALUelkó.
Tegyél kerámiát is a VDDCORE-ra. 100-220nF környékét.
Vddcore ráraktam még 100n nincs változás.
15p cseréltem 33p ra nincs változás.
Az IESO (internal external switch over) bitet engedélyeztem és betettem a kódba ezt:
unsigned int pll_startup_counter = 600; CLKDIVbits.PLLEN = 1; while(pll_startup_counter--); Így már stabilan indul de az USB még mindíg felismerhetetlen.
Lehet, hogy a panel gyári kivitelezésű, a tervezés/vonalvezetés attól még lehet hibás. De az elvi kapcsolási rajzon is vannak gondok:
1. Az USB csatlakozó VBUS lábát (pontosabban a rá kötött VBUS bemenetet) device módban egy nagyértékű ellenállással le kell húzni földre, hogy ne lebegjen, amikor nincs a gépre kötve (adatlapi ajánlás). 2. A VUSB lábon nem látok kondenzátort 3. A 30-as (AVDD) lábon nem látok kondenzátort 4. A 2-es lábon (VDD) sem látok kondenzátort
A kondikat pótoltam (otólag) bár nem változott semmi. Meg a 100K-t is a VBUS lábra.
A próbakapcsolás egy zárlatkert ot semilyen kondi nincs csak a vddcore kondija és mégis megy. Próbálkozom tovább. Idézet: „2. A VUSB lábon nem látok kondenzátort” Hogy is van a VUSB-vel, ha tápot kintről kapja? Vagy a 24F-eknél másképp van? (Most nincs erőm adatlapot böngészni... ![]()
Ha a VUSB-t kívülről kapja a PIC, akkor szerintem ugyanúgy kell tekinteni/kezelni, mint a VDD vagy AVDD lábat, elvégre a PIC egy részegységének a tápfeszültsége.
Amúgy sem szoktam igy kívülről táplálni, mert ha csak az usb-t csatlakoztatják akkot a pic-en át folyik a villany és azt nem szereti. Itt most self powered módban megy.
Mindegy szerintem valami a 210-es végű pic-ben másképp működik mint a többiben, csak nem tudok rájönni, hogy mi. Eredetileg PIC24FJ256GB110-et akartam de az nem volt, ezért lett ez a 210. Ránézésre csak a RAM-ban különböznek. Valami beállítás hiányzik talán. A kondenzátorokkal lenne baja, akkor néha felismerné néha nem vagy esetleg leválna a PC-től de nem így van. Tipikusan olyan mint amikor rossz oszcillátort állít be az ember.
Sziasztok
Ma (hosszú idő után) ismét eljutottam egy PIC program beégetéséig ![]() ![]() Köszönöm
Én az Oshon égetőt az Oshon programjával használtam mindig is.
http://www.oshonsoft.com/picprog Egy 512 utasítást tartalmazó program kb 4-6másodperc volt vele beégetéskor. A PicKit2 klón PIC-jébe ~20 másodperc alatt programozta a programot. A kiolvasásra nem emlékszem, de gyorsabb volt természetesen.
Kitaláltam egy a PIC-es panelmérőimben alkalmazott átlagolási rutinhoz hasonló algoritmust, amivel már váltakozófeszültséget is tudok mérni. Este tíztől reggel hatig ezt írtam, és tök jól működik!
![]() Na de a lényeg: Még hiányzik egy matematikai rutin hozzá hogy valódi effektívet mérjek. Egy hat bájtos számnak a négyzetgyökét kellene kiszámolni. Hol találok ilyen rutint? (Kerestem már pár helyen de ott nem volt.)
Szia!
A sebességről a védett módú operaciós rendszer tehet... A felhasználói programok nem érik el a portokat, egy - egy utasítás helyett hosszú rutinok futnak le - persze a rutinok alatt a megszakítások kiszolgálása is lefut. Ezeket a programozókat (lpt, com stb) - ha egyáltalán működnek az újabb gépekkel - legfeljebb arra lehet használni, hogy egy másik programozóban levő kontrollert felprogramozz. Neked szerencséd van, mert fel tudod programozni a 18F2550 -et a PICKit2 klónhoz (kb 2000 - 2500 Ft anyagköltség a minimál verzió).
Szia!
Algoritmusokat itt találhatsz... Idézet: Valamit félreértettél, mert nem a VBUS-ról, hanem a VUSB-ről volt szó! Azt láthatóan kívülről (mármint a PIC-en kívülről) táplálod, mert a 3,3 V-os tápfeszre van kötve.„Amúgy sem szoktam igy kívülről táplálni, mert ha csak az usb-t csatlakoztatják akkot a pic-en át folyik a villany és azt nem szereti. Itt most self powered módban megy.” Idézet: Ezt könnyű ellenőrizni, ha csinálsz egy 1 Hz-es ledvillogtatást, és stopper vagy karóra segítségevel leméred 10-30 felvillanás idejét. Az okát pedig akkor tudunk segíteni kideríteni, ha becsatolod a konfigurációs regiszterek beállítását, és a programbeli inicializálást (ami az órajel kiválasztását és frekvenciáját módosíthatja). „Tipikusan olyan mint amikor rossz oszcillátort állít be az ember.”
Üdv !
Itt a config beállítás: _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & FWDTEN_OFF & ICS_PGx1) _CONFIG2( IESO_ON & FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_HS & FNOSC_PRIPLL & PLLDIV_DIV4 & PLL96MHZ_OFF & IOL1WAY_ON) _CONFIG3( WPCFG_WPCFGDIS & WPDIS_WPDIS) //Disable erase/write protect of all memory regions. A fúrcsa az az egészben hogy a demóprojektben a PLL96MHZ_OFF opció van gyárilag beállítva. Tehát a main kód elején kellene a PLLEN=1 bitet beállítani, de a projektben ilyen sehol nem volt, én tettem bele. A másik, hogyha a IESO_ON-t OFF-ba teszem, akkor nem indul el. Tehát csak akkor megy ha engedélyezem a clock switchet. Jelenleg 16Mhz kvarc van a panelen ezért van a PLLDIV_DIV4. Közben rájöttem, ogy azért kell a IESO_ON mert átkapcsol a belső oszcillátorra. Tehát elindul a led villogás és a kvarcot egy vsipesszel rövidrezárom a led akkor is villog, tehát a Primary osc. nem megy ezért kapcsol át belsőre.
Mű ködik készvan!
Köszönöm a segítséget. A Külső osc valami oknál fogva el van kötve. ![]()
Ha ilyen lassú, akkor elég sok gond lehet az áramköröddel, vagy a vezetékek hosszával minőségével, esetleg a PC portoddal. Nézzd át, rövidítsd a kábeleket, hátha gyorsabban is megy. Normális esetben 1 perc max egy ekkora PIC teleégetése. A PK2 gyorsabb, de mindig az egész memóriát teleégeti, így nem lehet összehasonlítani egy kicsi program égetési idejével jól működő LPT-s áramkör esetén. A Verfy módot próbáld ki fejlesztéskor, az csak az eltéréseket égeti bele a PIC-be(18F-eknél működik csak!) Ha ügyesen szervezed a programot, akkor egy-egy módosítás néhány másodpercbe telik, és a memóriát is kíméli.
A PK2 építése ennek ellenére ajánlott, természetesen... Idézet: A PIC24FJ64GB004 projektben viszont benne van, s az ottani kommentből úgy tűnik, hogy bizonyos PIC24 vezérlőknél a HS+PLL bekapcsolása automatikusan engedélyezi a PLL96MHZ-et is, míg másoknál ezt külön kell bekapcsolni. Mindenesetre a "kézi" engedélyezés nem árthat...„A furcsa az az egészben hogy a demóprojektben a PLL96MHZ_OFF opció van gyárilag beállítva. Tehát a main kód elején kellene a PLLEN=1 bitet beállítani, de a projektben ilyen sehol nem volt, én tettem bele.” Az adatlap sematikus vázlatából nem derült ki számomra, hogy melyik mikrovezérlőnél mi a PLL96MHZ bit szerepe.
Köszönöm szépen mindenkinek a tanácsokat.
Az egyébként régen tökéletesen és villámgyorsan működő égetőm most úgy volt hajlandó egyáltalán felismerni a PIC-t, hogy watt oldalán olvasott infók alapján beforrasztottam a két db 22nF-os kondit a két vonalra... A kábel eredetileg kb 1,5m volt, ezt hiába rövidítettem meg kb 30cm-re ettől nem változott semmi. Az az érdekes, hogy a felismerés megy 7-es sebességtől már, de az olvasás és írás kb. 200-as értéknél ok. Így viszont a beolvasás is több perc, olyan lassan megy a folyamatjelző csíj, hogy szörnyű ![]() Kipróbáltam (mégesgyszer) az Oshon féle progit, ott 2-30-ig állíthatok valamiféle időt, de teljesen mindegy az érték, mert az írás és olvasás sebessége ettől egyáltalán nem változik, ott egy szám mutatja az aktuális byte-ot, és pörög mint a... ![]() Én megmondom őszintén, mivel két gépen ugyanaz a jelenség, az XP-re illetve az inpout32.dll-re gyanakszom, ebből több verziót is találtam a neten, de miután biosban és az eszközkezelőben minden lehetőséget végigpróbáltam, már elment tőle a kedvem, nem is bízom benne, hogy eredményre jutnék, csak eltökölöm az időt, és azt hiszem feleslegesen. Most jut eszembe, az előbb említett oldalon az ötletek között szerepelt a 7407, nekem 74LS06 volt, ezt is kicseréltem és ezek után kezdett működni a dolog. Mondjuk nem LS típus, azt nem találtam itthon, még esetleg az lehet(ne) a bűnös, nem tudom ![]()
Szerintem inkább 22pF kellene oda azokra a vonalakra.
Szia!
Úgy, egyszerűen nem lehet cserélni a 74(LS)07 -et 74(LS)06 -ra. A 7407 egy nem invertáló nyitott kollktoros meghajtó, a 7406 egy invertáló nyitott kollktoros meghajtó. A programban valahol be kellene állítani, vagy a kiválasztott programhoz valót kell használni.
Sziasztok
Szeretnék használni egy LM335-ös hőszenzort, de van mellette egy DS18B20-as szenzorom is, azt gondoltam hogy az LM335-ös szenzort bekötöm így és bekalibrálom a poti segítségével. Ha ugyanazt az értéket olvasom ki mindkettőből akkor a potit kiveszem lemérem és beteszek helyette 2 ellenállást és így kapok egy pontos hőszenzort. Jó elgondolás ez?
Nem egyszerű? A programok támogatják a vonalak beállíthatóságát. Véleményem szerint, aki PIC-et akar programozni, annak ismernie kéne az égető(főleg az ilyen faék felépítésű) működését és annak megfelelően beállítania a programot. Ezt csak azért írom, mert számomra nagyon fura, hogy feltételezni kényszerülünk, hogy ezt valaki nem tudja, azaz fel kell hívni rá a figyelmet. Lassan kész óvoda leszünk!
![]() |
Bejelentkezés
Hirdetés |