Fórum témák

» Több friss téma
Fórum » LC mérő
 
Témaindító: jocoka, idő: Jan 22, 2007
Lapozás: OK   13 / 188
(#) zombee válasza nagy hoho hozzászólására (») Jún 3, 2009 /
 
Még mindig. Amúgy én ARV chipekre szeretném átvinni a dolgot, erről szólnak a HSZ-eim...
(#) deguss válasza nagy hoho hozzászólására (») Jún 3, 2009 /
 
Ez engem is érdekelne, írtam neki épp tegnap egy üzenetet.
(#) levi18 válasza zombee hozzászólására (») Jún 3, 2009 /
 
Én még az EPE által leadott lcf mérőt csináltam meg, ebben pic16f628 volt. Ez 3.2768MHz-en fut. De én úgy emlékszem, hogy a pic-ek négy órajelciklus alatt hajtanak végre egy utasitást átlagosan. Szóval a 12 megának elégnek kell lennie. Az avr-ek gyorsabbak és hasonlóan pontos frekvenciájú kristállyal a mérés is pontosabb lehet. Szerintem amúgy megfelelő a mega16 is, mert egy 16f628 ugyanannyyiba kerül kb. Én eyszer szinuszgenerátort csináltam C-ben és 8 megás belső oszcillátornál 2,5kHz jött ki, aztán megirtam asm-ben és láss csodát 125kHz lett belőle.
(#) zombee válasza levi18 hozzászólására (») Jún 3, 2009 /
 
AVR-nél nem mindegy az órajel osztás, ezzel már én is szívtam.
Van egy előosztás, ami csak 8, 64, 256, 1024 lehet. Lehetőleg legyen minél nagyobb az előosztás, mert tapasztalataim szerint akkor is történik pár dolog a kontrollerben amikor az előosztó impulzust ad.

Az előosztó impulzusaira épül a számláló, ami 0-tól k-1 - ig számol, utána interruptol.

A PIC-es rajzon mintha 4MHz - es kristályt láttam volna.

Egyelőre próbálkozom az assemblerrel, remélem inkább több mint kevesebb sikerrel.
Mivel a kijelzőt magam programoztam be C-ben, ezért azzal nem lehet túl nagy probléma.
Ha mást nem, akkor regisztereken adom át a paramétereket. Csak el ne fogyjanak...
(#) zombee válasza levi18 hozzászólására (») Jún 4, 2009 /
 
Nah, lassan készülget az LCD driver ATMEGA16-ra assembler-ben. Beizzítottam a JTAG-et is, így az AVRStudio-ból gyorsabban ki lehet írni a kódot...
Tesztelni csak jövőhéten tudom, de úgy néz ki, az LCD driver kódmérete megáll 700 bájt alatt(már majdnem kész, kb. 460 bájt-nál tartok). Szóval ha ATTINY2313-ra is meg akarom írni, akkor igencsak össze kell kapnom magam hogy beleférjen 2KB-ba.

Nem is tudom, hogy PIC-nél hogy állhat meg az EGÉSZ 1KB-nál? Lehet hogy nem spórolt a programozó a regiszterekkel úgy mint én...

Azért is hajtok a TINY-ra, mert ez a példány is programozható ISP-n keresztül, az ára fele-harmada a PIC-nek, és a méretei is azonosak. Ez pedig kedvezhet a sorozatgyártásnak, és egy egészen kicsike műszert építhetek belőle...
(#) levi18 válasza zombee hozzászólására (») Jún 4, 2009 /
 
Nem, az enyémben tuti, hogy 3,2768-as kristály van. Az enyém az EPE magazinból van. Csatoltam egy asm kódot, ami az EPE honlapjáról tölthető le, csak nehéz rátalálni. Ez a progi F628-ra iródott. Remélem ez talán segit.

LCFMET737.asm
    
(#) zombee válasza levi18 hozzászólására (») Jún 4, 2009 /
 
Jah, én meg azt hittem most ATMEL-ről van szó...

Amúgy elkészült az LCD illesztő, assemblerben. Lényegében áthúztam a C kódot, amit ugyancsak magam írtam. Magyar ékezetes karakter támogatás nélkül most kb. 650 bájt. Ha egy kicsit pazarlok a regiszterekből, akkor szerintem 500 bájtra levihető. Ugyanez a kód C-ben 4kilobájt volt...

Jah, egy kérdés.
r0-r15 regisztereket használja valaki/valami?
Úgy tanultuk hogy csak r16-r31 amit piszkálhatok, de ha pl. r0-t buzerálom nem történik semmi különös.
Jah, és r26-r31 - et sem lehet csak úgy birizgálni, mert ők az X,Y,Z pointerek. A Z regiszternek éppen a sztring kiíratásnál vettem nagyon jó hasznát.
(#) levi18 válasza zombee hozzászólására (») Jún 5, 2009 /
 
Ezt csak példának raktam fel, hogy valami hasonlónak kellene lennie Avr-nél is. Szerintem r0-r31-ig használhatod bármelyiket, de azért meg kell nézni az adatlapot. A string kiiráshoz én is a kétbájtos Z-regisztert használtam. Egyébként a mérési tartományok milyenek lennének?
(#) zombee válasza levi18 hozzászólására (») Jún 5, 2009 /
 
Nah, megnéztem mit tud az r0-r15
Az van, hogy ezekkel is ugyanúgy lehet játszani, DE.

Csak regiszterből lehet beléjül adatot átvinni, és vissza. Ergo, az ldi, out és társai nem használhatók, de a mov, clr, inc... stb igen.
Ezeket fogom használni az óra és a frekvenciamérő számlálásához.
(#) zombee hozzászólása Jún 6, 2009 /
 
Valamiért bugzik a kijelzőm.

Az van, hogy időnként "kiesik" a szinkronból.
Ez úgy lehetséges, hogy 4 vezetékes módban használom, és az lcd_command_write néha-néha elveszt egy fonalat. Gondolom nem kell említeni, mekkora galibát okozhat egy ilyen...

Megnéztem egy teljesen más felépítésű kijelzővel, és annál is így volt. Sokszor éppen akkor esik szét, ha túl sok ideig tartom az engedélyező vonalat magas állapotban. Természetesen itt mikroszekundumokról van szó...

Néha az segít, ha a kódba valahová beteszek egy nop-ot, de ez gondolom senkinek sem lenne kielégítő. Aztán kicsit átírtam azlcd_command_write rutint, volt egy olyan rész hogy egy regisztert úgy vett elő a stack-ből hogy utána rögtön vissza is tette(mert később is kelleni fog), lehet-e hogy a push nem garantálja a regiszter értékét? Szóval, inkább felhasználtam mégegy regisztert, hogy ne kelljen stack-elni szerencsétlent, akkor jó lett, de valahová próbaképp betettem egy kis várakozást(1 millisec), és megint ezt csinálja...
(#) zombee válasza zombee hozzászólására (») Jún 6, 2009 /
 
nah, mindegy. majd csinálom úgy, hogy képernyőre kiíratáskor letiltom az IRQ-kat, úgyse kellenek amikor már a kiértékelés zajlik. utána meg újra elindítom...
(#) levi18 válasza zombee hozzászólására (») Jún 6, 2009 /
 
Én a displaytech162b kijelzővel jártam igy, pl a dem16101 ugyanazzal a programmal működik, persze csak az initek különböznek egy kicsit. A dem kijelzők véleményem szerint sokkal érzéketlenebbek. Igazából az lenne a megoldás, ha figyeled a busy-flag-et is, de hát az méretben többet foglalna.
(#) zombee válasza levi18 hozzászólására (») Jún 6, 2009 /
 
aaaaaaargh! NEM!

az összes k**va vére folyjon patakokba!!

TimerIRQ:
push temp
ldi temp, SREG

Miközben "ldi" helyett "in" kell. A fordító mégis megette. A szemét!
(#) zombee hozzászólása Jún 6, 2009 /
 
Nah, sokminden történt a mai napon.
Szorzáson és osztáson kívül kész a 32 bites aritmerikai rész(összeadás, kivonás, jobbra/balratolás).
A jobbra/balratolás lényegében a 2-vel való szorzás/osztást jelenti.

Készenvan az időzítő rész.
Most úgy működik, hogy 250ms időre elindítja az órát, számol, majd ha lejárt, tiltja a megszakításokat, kiértékel és kiír az LCD-re.
A 250ms miatt 2-ször balra kell tolni a számolt értéket, persze még a bináris formában.
Ezután jön egy átváltás emberi(decimális) sztring alakba.

Eredmények:
47uH tekercs + 3.3nF kondi: 403kHz körül ugrál(kb. 800Hz-es sávon). A számítotthoz képest 5 ezrelékes(!!!) eltérés.

Kicsit játszottam vele.
47uH+1nF - t már nem bír el a kontroller. Kb. 750kHz-en berezeg a rezgőkör, de szegényt lefagyasztja...
(#) zombee válasza zombee hozzászólására (») Jún 7, 2009 /
 
talán majd a 20MHz-es kavics változtat a helyzeten.
(#) zombee hozzászólása Jún 7, 2009 /
 
Újabb méricskéléseim.
10nF-os mérőkondi + 47uH-s cseppentett formájú tekercs, ami nem a 0.125W-os ellenállás kivitelben készült.

eredmények:
Két toroid kicsi magon, bár elég sok menetesek, a műszerem szerint 0.510H körüliek.
Nem igazán hittem el, ezért sorbakötve is lemértem. Láss csodát!
Sorbakötve: 1572Hz, külön-külön: 2208Hz és 2232Hz.
Ugye Le=(L1*L2)/(L1+L2). Az eltérés: 2 EZRELÉK!!

kondenzátor:
multiméter 104.4nF - ot mér, és az enyém is!!

Egyelőre még csak a frekimérő kész, hamarosan szállítom a végleges változatot.
Ha a korábbi terveknek megfelelően rakta valaki össze, akkor a kóddal működni fog.

A nyomógomb, a hangszóró és a módválasztó relé nincs még leprogramozva szal elhagyható.
Ez utóbbit lehet hogy nem is teszem be, helyette kapcsolós lesz, úgy mint a PIC-es változatban. Ott a PIC a kapcsolóról kapta az infót hogy L vagy C állapotban van.

Szerintem breadboardon seperc alatt megépíthető a digitális rész, ha meg véletlenül elrontottam valamit a rajzban akkor még könnyen javítható.

Az analóg rész viszont HANGSÚLYOZOM, csakis egy külön lapkára építsétek meg, mert breadboardon nekem a büdös életbe nem akart berezegni, egyszer a 4.-ről is kidobtam annyira felhúzott, miatta tartok még csak itt, ha akkor megépítettem volna normálisan egy panelre akkor már lehet hogy nem kéne itt sz*rakodni, már megvásárolhatnátok 4-5 ezer Ft-ért.
(#) zombee hozzászólása Jún 7, 2009 /
 
Üdv még1x.
Egy eredmény is született. Kész az aritmetikai rész, szorzások osztások, stb.
A hex fájl már méri az induktivitást, DE.
47uH legyen a tekercs, és 10nF a kondi.
Nem árt, ha a tekercs hangolható, így rövidrezárva rá tudod hangolni hogy pont 0-t mutasson.

Eredetileg a frekit is kiírná, de most ez a változat csak az induktivitást írja ki uH-ben, semmi mást nem csinál.

Lehetőleg olyan LCD-t érdemes választani, ami 11 karaktert az első sorban megjelenít.
(#) denon888 válasza zombee hozzászólására (») Jún 7, 2009 /
 
Nagyon szuper lesz ha elkészül. Kíváncsian várom a végleges változatot. Lenne 2 kérdésem. ATmega16 helyett lehet használni ATmega32-est? A fuse biteket hogyan állítottad be?
(#) zombee válasza denon888 hozzászólására (») Jún 7, 2009 /
 
Elvileg ugyanazt tudja de erre nem vennék mérget.
Már töltöttem ATMEGA32-es hex - et 16-ra, az jó volt.
Tudod mit? Végülis csak a forrás elején az ".include "m16def.inc" " - et kell 32-re átírnom és újrafordítom. Töltsd inkább azt fel...

A FUSE biteket még a lovas-nyerítős PonyProg - al állítottam be, mutatom a screenshot-ot.
Igazából semmi különös nincs, az összes CLK pipa ki van véve, JTAG engedélyezve. De csak akkor állítsd be, ha már rajt van a kavics(12MHz), ellenkező esetben hibát fog dobni...
Én egy saját panelre raktam össze, amire tettem egy ISP portot is, JTAG portot is.
(#) denon888 válasza zombee hozzászólására (») Jún 7, 2009 /
 
Köszi! Megnézem hogyan működik. Az avr fuse bitekkel, nekem mindig problémám volt.
(#) zombee hozzászólása Jún 8, 2009 /
 
Kis alvás után(közben) találtam egy bugot, bár érdemben nem befolyásolja a mérést.
Lényege, hogy az időzítő és az analóg rész megszakítása egyszerre engedélyeződik, de a legelső órajelütésig lényegében bármennyi megszakítás érkezhet a számlálóra.
Az óra 1kHz-es, míg az analóg rész 230kHz körül van. Ez azt jelenti, hogy a legelső órajelütésig 0-229 állapotban is lehet a számláló. A mintavétel 0.25sec, emiatt +/- 500Hz-es eltérések adódnak(ugrál a számláló).
Ezt úgy fogom kiküszöbölni, hogy csak az első órajelütéskor engedélyezem a külső megszakításrutint...
(#) zombee hozzászólása Jún 8, 2009 /
 
franc vinné, nem sokat javított. bár most csak +/- 200-300 Hz-eket ugrál. 230kHz-en.
(#) nagy hoho válasza deguss hozzászólására (») Jún 8, 2009 /
 
Szevasz ! Van hír p istvánról?
(#) deguss válasza nagy hoho hozzászólására (») Jún 9, 2009 /
 
azt írta egy hete, hogy elfoglalt, majd próbálja utolérni magát.
(#) nagy hoho válasza deguss hozzászólására (») Jún 9, 2009 /
 
Köszönöm !
(#) zombee hozzászólása Jún 12, 2009 /
 
Üdv.

Kérdésem, hogy nálatok mekkora a frekvencia, ha kapacitásmérő módban rövidrezárjátok a kimenetet?
Nálam 400 kHz az alap, és rövidrezártan kb. 300kHz, de utóbbi erősen ugrándozik és mindig más.

Persze a rövidrezárás nem tartozik a rendeltetésszerű használathoz(csak tekercsnél), de egy hibás kondi okozhat meglepetéseket...
(#) Farkas D. György hozzászólása Jún 12, 2009 /
 
Üdv Ifjak!
Böngészgetem, és találtam erre a témára. Talán nem haszontalan, ha ajánlok figyelmetekbe egy másik "érintett" fórumot:

http://forum.hasix.org/smf/index.php?topic=2083.0

Ha itt, és az ajánlott linket kissé átböngészitek, több választ is találtok felvetéseitekre. Pölö a frekimászkálásra...
Több példányát (változatát) építettem meg a műszerecskének, teljes megelégedésre. (LM IC-s, és az nélküli változat...)
Sajna az ajánlott linkeken a becsatolt képeim már nemigen láthatók, hisz már régebben történtek, ezért ami még megvan a tárházban megmutatom.
Sikeres építgetést!
(#) Farkas D. György válasza Farkas D. György hozzászólására (») Jún 12, 2009 /
 
Megpróbálom a linkajánlásomat beszúrni.
Még nem gyakoroltam ezt a módot...

Bővebben: Link

Talán....?
(#) zombee válasza Farkas D. György hozzászólására (») Jún 15, 2009 /
 
Megtaláltam a hiba okát, nevezetesen az ugráló freki miértjét.
Ehhez az AVR lelkivilágába is bele kell tekinteni.
Eddig az OCR időzítő módot használtam az ATMEGA16-nál, és interrupttal kezeltem a rezgőkört és az időzítőt is.
A rezgőkör 100-400kHz frekvenciája megzvarja az időzítőt. Ráadásul az időzítő nem csak 1kHz-enként okoz interruptot, hanem MINDEN ELŐOSZTÁS alkalmával, csak azt a júzer nem veszi észre.

Kipróbáltam, mi történik, ha szoftveres időzítést használok, és a rezgőkört továbbra is interrupttal kezelem le. Óriási meglepetés ért!

A számok ugrálása az egyesek helyiértékére korlátozódott, azaz kb 3-8 Hz-et ugrál 400kHz-en is. Van egy minimális elmászás is. Bekapcsolás után nagyon lassan áll be a végleges frekvencia. 400kHz környékén kb. 100Hz-et esik a freki 6 perc után.

A megoldásom az lesz, hogy a rezgőkört meghagyom interrupton, az időzítést pedig átteszem szoftveresre. Ez esetben a késleltetéshez hozzá kell adni azt az időmennyiséget, amit az interruptok okoztak.
Azaz ha a számlálás indulásától kezdve T időt vártunk és N-et számolt ezalatt, akkor a frekvencia:
f=N/(T+N*T[interrupt])
(#) zombee hozzászólása Jún 16, 2009 /
 
Nem hagyott nyugodni a dolog, mingyá le is programoztam a mérés alatt eltelt összidő, és így a frekvencia kiszámítását. Egyelőre még csak kapacitásmérés van önkalibrálás nélkül, mert a reléknek ez az alapállapota.

Az eredmények magukért beszélnek:
Bár még csak papíron számolom át a frekvenciát kapacitásra, a 3000Ft-os kínai(DT9205A) multiméteremhez képest az eltérés EZRELÉKBEN(! ! !) mérhető!
Következő: »»   13 / 188
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem