Fórum témák
» Több friss téma |
Az adatlap szerint rtc kér legalább 2.3v-ot, a ram cellák 1.75v-ig nem törlődnek. Nem igazán érthető a problémád.
Én sem igazán értem, hogy mi a gond. Táp nélkül semmi nem működik. Hogy ez egy külön lábon, vagy a tápra kell az már más tészta. Ha az a hond, hogy nincs BATT kivezetése hát ez van. Úgy emlékszem van olyan Pic aminek van battery lába, ennek nincs. Nem egy ördöngösség egy elemleválasztó tápáramkör.
Nincs gond.. Tudsz ilyen áramkört mutatni?
Egyelőre kikísérletezem az RTC-vel, de nem akar rendesen működni.. Gyári beállításokat és példát használom..
Kimásoltam egy oktató progiból egy saját delay részt.
Eléggé lecsökkentve az idő értékeket, a LED kigyújtások sorba rendben mennek de: Stopperrel mérve 13-14 másodperc a két LED közötti idő. Debugger Stopwatch ablakában ugyanez az idő: 175 us Bődületes különbség. 13 másodperc és 175 mikrosec. Ennyit jelentene az optimalizálás hiánya? A Lite verzióval vacakolok. Egyszerűbb lenne itt berakni egy assembler észt csak a késleltetésre.
Ennél egyszerűbb aligha van: DS01146B (Microchip) Page 2-6 "TIP #7 Battery Backup for PIC MCUs"
Semmi baja a C Lite-nak, és nem, amit vizsgálsz, az nem az optimalizálás hiánya, hanem a helytelen kódolásé. Ha 175 usec időt számol ki egy C logika, akkor lehet, hogy mire asm lesz belőle, már jóval több lesz, de kizártnak tartom, hogy 800 usec fölé mehetne akár legdurvább esetben. Ott már az történhetett, hogy megszakításokat kapott, és arra ment el a cpu idő. És igen, ha jól akarod csinálni, a delay-t nem C-ben írod, hanem asm-ben. Csak asm-ben tudod megszámolni az órajeleket. De még csak nem is az a legjobb gyakorlat, ha interruptokat használsz a design-ban, mert olyankor timert kell felprogramoznod, és aszinkron azzal mérni az időt. Vagy külső időzítő áramkör + interrupt, ha sűrűn váltogatsz órajelet, és attól független pontos idő kell.
Néhány basic és egy c fordítóval játszogattam már -amatőr szint- de ez az időzítés dolog probléma nélkül ment mindegyiken. Tehát a program elején megadva az osc frekvencia, és a delay utasítások pontosan hajtódtak végre. Itt valami egyszerű okra tippelnék.
Sziasztok!
Segítséget szeretnék kérni, egy adc példaprogramra lenne szükségem C8051F320-ra! Ha valaki tudna egyet mellékelni, azt nagyon megköszönném!
Köszi, azt hittem komolyabb kapcsolás kell hozzá.. Ez így túl egyszerűnek hat...
Ezért mondtam, hogy mi ebben a bonyolult? 2 dióda az egész. Ha meg 3.3V a táp akkor semmi sem kell, és még tölti is az elemet. Maximum egy dióda a táp felől, hogy ha nincs táp ne merítse az elemet mert ugye nem lehet tudni mevel táplálod és lehet, hogy kicsi a kimeneti ellenállása.
Hogyan lehet kiolvasni PIC-et MPLAB IPE-vel,sikerült csatlakozni rákattintottam a Read gombra kiírta hogy kiolvasta de utána ezt hol lehet megtekinteni?
File->Export - ezzel ki tudod menteni, vagy View->Memory View opcioval meg tudod nezni
Sziasztok elkészítettem egy MSGEQ7 nyáktéervét és egy pic18f46k22 el szeretném beolvastattni az adatokat sajnos nem sikerült mert minden frekvencián ugrál a ki meneti feszülstség ha bemenetre jelet adok akkor se törnténik semmise.(kijelzéskor a ledek ugrálnak).
Ezt a kapcsolást készítettem el:kapcsolás A bekötésem : RB4(37láb) ADC akol beolvasom az értéket. RB2(35 láb) strobet kötöttem. RB1(34láb) reset lábat. A kódom igy néz ki:
Nyáktervemet is csatolom layout-os. Nem tudom miért nem akarja beolvasni az adatokat ha valaki tud segítsen nagyon megköszönném.
Én a a TRISB.RB1/RB2-őt ha kimenetnek használod 0-ra állítanám.
De mint persze minden, ez is le van írva a doksiban, hogy adott IO akkor kimenet ha a TRISx 0
Meg változtattam de a probléma meg maradt...
Szerk.:ha hozzáérek ujjal az ichez el kezd jobban vibrálni a led... Valahol log egy láb??? A hozzászólás módosítva: Nov 3, 2017
Pontatlanul fogalmaztam, a nevéből gondoltam, arra gondoltam, hogy valóban azt csinálja amit te akarsz channel switch, cap charge time delay és konverzió, eleve ADC rendesen beállítva? pl mekkora órajelen jár a PIC mert ha 64MHz-en akkor aszerint kell a beállítani az ADC-t.
Ennek a kódnak mennie kell, nálam 1-2 éve működött.
Rendben akkor hardveres problémára gyanakszom akkor ...
Nyáktervem jó ??(szerintem ez már off) A hozzászólás módosítva: Nov 3, 2017
Én nem sprint-eztem soha nem is akarok, eagle vagy altium amiről tudok neked mit mondani.
A mikrofon jól van bekötve, vagy nem is mikrofonnal használod? Nekem így nézett ki mikor használtam csak kapott egy ebay-es mátrixot MAX7219-el.
Nem mikrofonnal ... Csak szimpla audio jel erosites nelkul. 200k helyet 220k vant bent es te elhagytad a bemeneti kondit es ellenalast. Lehet en is elhagyom...
Mindenféle delay variációnál hasonló gondom van.
Ha az itt bemásolt proginál megoldódna a rejtély, a többinél is egyenesbe jönnék.
Feleslegesen használsz unsigned int-et, ott ahol egy unsigned char változó tárolókapacitását sem éri el a tárolt érték. 8 bites processzoron az 1 byte-nál hosszabb változók kezelése csak kerülő úton történhet, mert egyszerre csak 1 byte-ot tud mozgatni/feldolgozni. Te itt feleslegesen tölteted be meg tároltatod le és hasonlítod össze az int típusú változód felső byte-ját.
Csak olyan típusú és hosszúságú változót használj (ügyelve az előjel szükségességére, ha kell), amire tényleg szükséged van. Különben feleslegesen dolgoztatod a procit, meg a kódod lesz hosszú. A goto-t meg felejtsd el. Egy while ciklus tökéletesen megfelel.
Azt deritettem ki hogy ha nincs semmi se adc végén és be kapcsolom a picen adc és mérek vele akkor mv os eltéréseket mérek. Tippem az lenne hogy a tápot nem szűröm eléggé (lm7805 utánna 100nf )
Ezért azt gondolom hogy a MSGEQ7 nem tud rendesen müködni . Szerintetek hülyeség??
Srácok pár napja már kínlódom 32MX795 RTCC beállítással, de sehogyan nem sikerül..
Szkóppal mérve a kristály 200KHz-es jelet produkál, nem értem miért mikor 32KHz-es óra kvarc. Más hardverben teszteltem a kristályt, ott hozza a megfelelő értéket, vissza rakva ismét 200KHz-en jár... 10pF-os kondikat használok hozzá, ha leveszem ugyan olyan, tehát nem sok vizet zavar, de ez az ajánlott kapacitás. Hardveres problémát, így kizárnám, ott mindennek klappolnia kell. Szoftveres problémára gyanakszom.., csatolom a gyári példaprogramot, e szerint vacakolok, de másodperces számolás helyett, 6-12-esével ugrál a számolás 1 másodperces ciklusonként. Lemértem... A header beállításaim:
Mit nézek be? Mi lehet a gond? Előre is köszi..
A mindennek klappolnia kell egy kicsit erős, amikor nyilvánvalóan nem klappol
Az egyik legnagyobb szivacs pic32-nél a cache line-ok esete. Amikor újraprogramozod, konkrétan ki is kell kapcsolni utána, resetelni nem elég. A szkópot rakd félre, programozni kellene. Állítsd be a timerre a second jelet, oszd le 32k-val, és kapcsolgass vele ledet. Ha 1 sec ütemenként kapcsol be / alszik ki, akkor csak hisztéria áldozata lettél. Ha kísérletezel, és csak programot linkelsz, akkor olyan hardveren kellene tesztelned, hogy a kapcsrajz amiatt legyen biztosan fix. Pld ha a 32mx795-öt nyüstölöd, egy ubw32-esednek lennie kellene otthon mx795-el (usb tápos, rajta van a kettő kvarc, és teszt ledek meg gombok is). Anélkül ne számíts túl sok segítségre. Mindig mindenki azt hiszi, márpedig biztos nem kötött félre semmit, biztosan nem szakadtak a vezetékei, nincsenek örvidzárak / átvezetések, nem selejtesek a szűrő kondijai, nem hulladék a tápegysége, biztos nem figyelmetlenkedtek el semmit se, de nagy arányban az derül ki, hogy nincsenek olyan figyelmesek a népek, mint amilyennek hiszik magukat.
UBW32-őt használok, gyári kapcsolást, mindig ezen fejlesztem a proto programokat..
Kondikat levettem és kimértem, mindegyik 10pF, nem írtam volna, hogy külön teszteltem, ha nem történt volna meg. Kristályt is kivettem és teszteltem.. Vezetők átnézve és kontakt kizárva, PIC lábai érintkeznek minden kivezetésen. PIC 8MHz-es és egy 32KHz-es kristállyal van szerelve, az elsődleges kristállyal nincs gond, szépen tudom használni és pontos. A másodlagos 32KHz-es, illetva az RTC-t nem tudom beállítani, nem működik a gyári függvényeivel. 6-12másodperceket ugrál az 1másodpercre beállított while ciklusomban. Szóval ezt nem értem és ezért dobtam be a header fájlomat és a példa progit, hátha valaki ki tudja próbálni, ha másnál megy, akkor nem szoftveres a hiba és valami nem oké amit nem veszek észre, de mivel mindent műszerrel és szkóppal is átmértem, úgy gondolom, hogy valami szoftveres beállításom nem jó.. |
Bejelentkezés
Hirdetés |