Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   836 / 1210
(#) diablo válasza djadji hozzászólására (») Aug 11, 2016 /
 
Vagy egy pici nyáktrafó is jó lehet.
(#) Elektro.on válasza djadji hozzászólására (») Aug 11, 2016 /
 
Bár mindenhol az mondják, hogy nem illik telefon töltőt használni a zavarok miatt.
Ennek ellenére én mindik egy eddig mebbízhatóan működő Sony töltőt használtam teszteléshez.Eddig nekem még nem okozott gondot. Olcsó noname adapter igen.
(#) c27 hozzászólása Aug 11, 2016 /
 
Sziasztok!
Egy pic adc-jével lehet PWM jelet is normálisan átalakítani? Pl. van 2db pic az egyik PWM csatornájára csatlakozik a másik ADC-je 50%-os kitöltési tényezőnél 10biten 511-et olvasna be? Vagy csak analóg jelet lehet vele olvasni és PWM esetén hülyeségeket olvasna?
A hozzászólás módosítva: Aug 11, 2016
(#) Bakman válasza c27 hozzászólására (») Aug 11, 2016 /
 
Nem megoldás a két kontrollert valamilyen adatvonallal összekötni? Az egyik megomdja a másiknak, hogy mennyi a PWM kitöltési tényezője, így a konvertálásnál keletkező hiba kimarad.

Megoldható a dolog pl. úgy, hogy méred az impulzus szélességet vagy a PWM jelet "átlagolod" egy-két külső alkatrésszel, de a közvetlen adatkapcsolat lenne a tuti.
(#) pajti2 válasza c27 hozzászólására (») Aug 11, 2016 /
 
A pwm jel impulzus üzemben vagy magas, vagy alacsony. A kettő közötti érték nem létezik. Nem sok hasznát vennéd azt bedigizni. Ha adatot szeretnél átjátszani közöttük, uart, i2c, spi, saját X bites protokollok, temérdek sok a lehetőség.
(#) Pali79 válasza pajti2 hozzászólására (») Aug 11, 2016 /
 
Idézet:
„A pwm jel impulzus üzemben vagy magas, vagy alacsony. A kettő közötti érték nem létezik.”

Hát elméletileg lehet, de egy PIC által előállított pwm jel esetében mindig van a fel- és lefutásnak is valamekkora szélessége, persze nagyon pici, de akkor is van.

De az biztos, hogy az eredeti elgondolás nagyon nem jó.
(#) c27 válasza Bakman hozzászólására (») Aug 11, 2016 /
 
Az a gond, hogy nagyon kevés az egyik mikroproci szabadideje két eszköz közötti kommunikációval még nem foglalkoztam, így nem tudom menyi időt vesz igénybe a kommunikáció, de akkor az alapötlet megbukott marad a kommunikáció. Majd átnézem a lehetőségeket.
Kösz.
(#) sonajkniz válasza c27 hozzászólására (») Aug 11, 2016 /
 
Előszőr jó lenne tudni, mi a célod ezzel?
Másodszor, milyen frekvenciájú a PWM jel?
Mekkora frekin megy a fogadó PIC?
Két független rendszerről van szó?
(#) djadji válasza Elektro.on hozzászólására (») Aug 12, 2016 /
 
Köszönöm szépen a hozzászólásokat és az ötleteket mindenkinek!
Ez a HLK-PM01 nagyon tetszik, nem is értem hogy nem találtam rá eddig.

Persze érintésvédelem mindenek előtt!
(#) pajti2 válasza c27 hozzászólására (») Aug 12, 2016 /
 
A pic egy cpu mag köré épített periféria halmaz. Ha támogatott módokat használsz, az adatátviteli folyamat a cpu idejét nem használja, az overhead nagyon kicsi (az adatátvitel elindításához és lezárásához használ cpu időt). Ha csak 2 kommunikáló fél van, akkor az adatmennyiség függvényében UART vagy SPI lenne neked ideális.
(#) c27 válasza pajti2 hozzászólására (») Aug 13, 2016 /
 
Ok, kösz, majd utánanézek.
(#) Lamprologus válasza Hp41C hozzászólására (») Aug 14, 2016 /
 
Végig küzdöttem magam (PIC24FJ256GB106) program memória használata eeprom helyett témán ... na jó ... mondjuk inkább csak azt, hogy már átlátom nagyjából hogyan működik ...
és sikerült is összehoznom egy működő kódot.

Az, hogy csak úgy lehet módosítani az adatot ha előtte törlök, de csak laponként (512 cím) lehet törölni (meg minden negyedit byte kuka) eléggé megnehezíti a kezdő programozó életét.

Mennyire használjátok a program memoriát adatok tárolására?
Vagy érdemesebb egy külső eepromot (pl AT24C32) feltenni?
(#) pajti2 válasza Lamprologus hozzászólására (») Aug 14, 2016 /
 
Nagyon attól függ, mennyi adatot kell tárolnod, milyen sokáig, milyen gyakran írkálod át. Ha tényleg csak pár byte, és maximum ilyen config adatoknak kell, amik nem lesznek sűrűn átírkálva, akkor jó a pic memóriája is. Ha sűrűn lesznek írkálva, vagy nagyobb mennyiség, jobb egy külső dip tokos flash foglalatban (hogy cserélni lehessen). Ha nagyon sok adatról van szó, vagy annyira sűrűn jön az adat, esetleg olyan sokáig kell megőrizni, hogy az már journaling partíciót is megkíván, akkor sd kártya.
A hozzászólás módosítva: Aug 14, 2016
(#) patrik81 hozzászólása Aug 14, 2016 /
 
Adott a pic 7 kimenetén egy-egy led.Hogy lehet egyetlen potméterrel az összesnek a fényerejét változtatni?
(#) Pali79 válasza patrik81 hozzászólására (») Aug 14, 2016 / 1
 
Ahhoz szoftveres PWM kell és egy ADC amivel feldolgozod a potméter állását. A kapott ADC eredményt teszed kitöltési tényezőnek és készen is vagy.
(#) pajti2 válasza patrik81 hozzászólására (») Aug 14, 2016 / 1
 
Egyszerű módszer:
----------------------
Magas aktív jelekkel hajtod meg a ledeket a pic felől, és a gnd helyett egy soros pótméterre közösíted őket (és a potit kötöd le gnd-re). Előny: egyszerű, "fapados". Hátrány: amikor 7 led világít, halványabban fognak világítani, mint amikor csak 3 világít. (Kicsit bénácska lesz.)

Bonyolult módszer:
-----------------------
Impulzus üzemben hajtod a ledeket valami kapcsoló tranzisztoron / feten keresztül, és ha már pótmétert akarsz, akkor annak a jelét adc-vel olvasod be, és annak alapján szabályozod a ledeken a kitöltési tényezőt. 1 mSec nagyságrendű főciklus a pic-en bőven elég gyors, és azt még egy kicsi teljesítményű pic-en is tartani lehet. Előny: tuti precízen szabályozhatod a led-ek fényerejét. Hátrány: egész szépen elleszel vele, ha első alkalommal csinálnád, és egyből ilyesmibe vágtad bele a fejszédet.

Válassz kedved szerint.
(#) Bakman válasza patrik81 hozzászólására (») Aug 14, 2016 / 1
 
Valószínű, hogy a kontrollernek nincs annyi PWM kimenete, így marad a szoftveres PWM. Vagy felhasználsz egy PWM csatornát, amivel az összes led fényerejét tudod változtatni.
(#) nemgyuri válasza c27 hozzászólására (») Aug 14, 2016 /
 
Szia! Ha a PWM-et előállító PIC-nek van kevés szabad ideje, vagy két külön rendszer kell, lehetőség van a PWM jel magas-alacsony állapot idejének mérésére. (Természetesen a PWM freki és a mérő PIC ciklusidejére figyelni kell, és nincs adatforgalom!)
(#) pajti2 válasza Bakman hozzászólására (») Aug 14, 2016 /
 
Ha emberi szemnek készül a mutatvány, ami 45 Hz fölött már totál vak (fáradtabb esetben a 20 Hz is már korlát tud lenni), felesleges a hardveres pwn. A szoftveres is bőven elég, és abból van annyi, amennyi csak kell.
(#) Pali79 válasza pajti2 hozzászólására (») Aug 14, 2016 /
 
Idézet:
„Hátrány: amikor 7 led világít, halványabban fognak világítani, mint amikor csak 3 világít.”

Ezt most totál nem értem. Mikor világít csak 3???
(#) Bakman válasza pajti2 hozzászólására (») Aug 14, 2016 /
 
Nem írtam csak és kizárólag HW-es PWM-ről, csak mint lehetőségről a SW-es helyett. Egyébként az 50 Hz-es villogást még látni, legfőképpen mozgás közben (a szemlélő mozog). Okoz is szép fejfájást. Persze nem tudni, mi a LED-ek célja.
(#) nemgyuri hozzászólása Aug 14, 2016 /
 
Sziasztok! PIC16F1826-nál comparátorral kínlódok. PORT-A0 és -A1 -re van kötve amit az -A2 -vel szeretnék összehasonlítani. Sajnos a pdf-ben leírtak és a comparátorok rajzai között mintha ellentmondás lenne. Jelenleg ez a beállításom:
  1. ;comparátorok beállítása:
  2.         banksel CM1CON0
  3.         movlw   b'10000110'
  4.         movwf   CM1CON0
  5.         movlw   b'10110001'     ;1 comparátor->C12IN+ és C12IN1
  6.         movwf   CM1CON1
  7.         movlw   b'10000110'
  8.         movwf   CM2CON0
  9.         movlw   b'10000000'     ;2 comparátor->C12IN+ és C12IN0
  10.         movwf   CM2CON1

Elvileg C12IN+ lenne a "referencia" (RA2).
MPLAB-ban tesztelve (stimulus) RA3 amikor 1 lesz, beugrik a megszakítás rutinba. (PIR2 bit5 magas lesz. Ha valaki helyre tenne örülnék.
(#) Hp41C válasza nemgyuri hozzászólására (») Aug 15, 2016 /
 
ANSEL beállítva. A komparátor megszakítás kimenete a CMxCON0 regiszter 6. bitjén olvasható, a megszakítás kérését pedig a PIR2 regiszter CM1IF és CM2IF bitjei jelzik.
(#) nemgyuri válasza Hp41C hozzászólására (») Aug 15, 2016 /
 
Igen, ezek mind be vannak állítva. A comparátorok + bemenetére akartam varázsolni az RA2 lábra kötött potmétert. Néztem néhány pdf-et (mindegyik Microchip PIC18F1826 !) nincs teljes egyezés a C1IN+ C2IN+ és C12IN+ váltják egymást RA2-re. De a C1IN+ RA3-ra van írva mindegyikben.
Közben átírtam, a comparátor + bemenetére a DAC-ot kötve is beugrik a megszakításba amikor RA3 '1' lesz - szimulátorban! Nemsokára kipróbálom élesben. (MPLAB nem kezeli jól az analóg jellegű jeleket? - hasonlóval már szívtam)
(#) Poostmaster hozzászólása Aug 16, 2016 /
 
Üdv.
A neten találtam egy könnyen elkészíthető kapcsolást, ami "meteoreső" néven szerepel a karácsonyi fényfüzérek között.
Akit érdekel, itt találja: DIY Meteor
A kapcsolás egy PIC12F629-esre épül, és a komplementer LED meghajtást alkalmazza. A szerző közzétette a hex fájlt is, és remekül működik. 12 LED villog rajta, 4 porton.
Én viszont szeretném a programot reprodukálni, hogy saját effekteket készítsek, és nem utolsó sorban azért, mert én 20 LED-et szeretnék meghajtani 5 port felhasználásával.
Mellékelem a kapcsolást a videóból.
Ott akadtam el, hogy a csip 3-as lábát is szeretném használni, de a videón ez foglalt.
a 3-4 lábak rövidre vannak zárva. Ő arra használja, hogy a 3-4 láb Vss-re kapcsolásával vélt az effektek között. A program érdekessége, hogy eltárolja, hogy melyik futott utoljára, és ha újra bekapcsolom, akkor ismét az fog lefutni.

Valaki meg tudná fejteni nekem, hogy miért kell rövidre zárni a két lábat?

meteor1.jpg
    
(#) cross51 válasza Poostmaster hozzászólására (») Aug 16, 2016 /
 
Esetleg, mivel csak a hex áll rendelkezésre, írd újat saját ízlésed szerint (csak ötlet semmi támadás).
Az eljárás amit a csávó használ a Charliplexing bár a 12 ből 20 led arra ad utalást, hogy ismered, de hátha segít.
Elég érdekes ez a kapcsolás gondolom azért van vss-en 100 Ohm, hogy ne a LED-ek elé kelljen, és hogy az MCLR és GP4 minek van összekötve, jó kérdés lehet azért, mert a progiban kinyomta az MCLR-t és, hogy ne lógjon szabadon.
(#) Poostmaster válasza cross51 hozzászólására (») Aug 16, 2016 /
 
Igen, ez a tervem.
Azért tudakolom ezt az összekötést, mert nem ártana tudni, milyen hatása lehet, ha én kiveszem. Illetve, a program váltást meg tudom-e oldani nélküle.
(#) sonajkniz válasza Poostmaster hozzászólására (») Aug 16, 2016 /
 
Nem néztem utána a kérdéses PIC adatlapjának, de álltalában a config beállításoknál át lehet kapcsolni az MCLR lábat bemenetnek, és többnyire van belső felhúzó ellenállása is. Ravaszul leegyszerűsített szerkezet. Szeretem az ilyeneket.
A hozzászólás módosítva: Aug 16, 2016
(#) Poostmaster válasza sonajkniz hozzászólására (») Aug 16, 2016 /
 
Igen, már be is állítottam, de mindenképpen tudnom kellene, hogy miért van ez így. Biztosan lényeges dolog.
(#) pajti2 válasza Poostmaster hozzászólására (») Aug 16, 2016 /
 
A 3-4 lábakat rövidre zárni szerintem teljesen felesleges, használhatod a 3-ast 5. lábnak.

A kapcsoló alap esetben reset gomb, de gondolom ki van kapcsolva a reset funkció configból, és bemenetnek használja. Az a 12f ttl bemenetes general purpose beállítás esetén, ami alapból magasat érzékel, ha nincsen konkrétan lehúzva földre, az a "funkcióváltás".

A kapcsoláshoz eredetileg adott hex-et szerintem felejtsd el, ha úgyis több ledet akarsz. Egyébként sem olyan nehéz írni olyat.

A táppal sorba kötött ellenállás szerintem túlságosan gány. Inkább a ledek mindegyikével kötögess sorba explicite egy ellenállást. Az eredeti példa azt használja ki, hogy a pic nem tudja tápfeszig felhúzni a kimenetét, maradék feszültség lesz a pic meghajtó áramkörein is, ami a led nyitófeszültségével együtt több lehet, mint 2.0V, ugyanis 2.0V-nál a pic üzeme irstabillá válik az adatlapja szerint. A gyakorlaban persze biztos bírja lejjebb is, mondjuk 1.6V környékéig, és ott már összetalálkozik a ledek nyitófeszültségével is, de az már ledje is válogatja - nem egyforma a ledek mindegyikének a nyitófeszültsége. Ha nem akarod nagyon vakarni a buksit, hogy "rossz ledeket vettél", inkább eleve soros ellenállással tervezz. Aztán ahogy érzed. Ha külön egyesével kiméred mindegyik ledet, az eredeti elgondolás is működhet.

Have fun.
Következő: »»   836 / 1210
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