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   1016 / 1210
(#) progee válasza dani9228 hozzászólására (») Jan 29, 2018 /
 
Én MPLAB IDE v8.92 égetőt használok Pickit3-al. Ebben benne van a 12F617 is.

- Configure / Select Device
- File / Import ... / HEX kiválasztás
- Programmer / Select Programmer / ...

Aztán még a feszültségszintet kell beállítani, hogy a programozó adja-e...
(#) Elektro.on válasza progee hozzászólására (») Jan 29, 2018 /
 
Igen de neki easypic boardja van, amire integrálva van az égető.
(#) Prendick válasza dani9228 hozzászólására (») Jan 30, 2018 /
 
1: Frissíts! A 2.60-as verzió támogatja a 12F617-et

2: Mindig használj külső tápot, USB-ről kissé karcsúak a Mikroe programozói.

3: Ha valamit nem ismer, általában 12F508-nak azonosítja, amit megoldhattak volna kicsit eszesebben is.

4: Ha továbbra sem megy, az ICSP lábakról köss le mindent a programozás idejére.
(#) ativagyok hozzászólása Jan 30, 2018 /
 
Sziasztok!
PIC18F45k22 kontrollerben próbálom életre kelteni a PWM2 modult Timer4-es időalapot használva az alábbi kóddal:

  1. CCPTMRS0      = 0b100010000; //select timer resources, PWM3 - Timer6, PWM2 - Timer4, PWM1 - Timer2
  2. T4CON=0x02;  // Prescaler: 16
  3. PR4=200;
  4. TMR4=0;
  5. TMR4IF_bit=0;
  6. CCP2CON=0x0C;   // pwm mode
  7. CCPR2L=2;
  8. TMR4ON_bit=1;


A kimeneten folyamatos alacsony szint van. Ha a fentebbi kód helyett a MikroC beépített függvényét használom, akkor rendesen működik, viszont azzal csak a Timer2 használható időalapnak.
(#) Prendick válasza ativagyok hozzászólására (») Jan 30, 2018 / 1
 
Kicsit sok a 9 bit a CCPTMRS0 regiszternek.
(#) ativagyok válasza Prendick hozzászólására (») Jan 30, 2018 /
 
Amindenit...egy pár órát elszöszöltem vele, de nem tűnt fel
Köszönöm, jó is lett.
(#) dani9228 válasza Prendick hozzászólására (») Jan 30, 2018 /
 
Szia!
Köszönöm a progit. Sajnos így sem jó, továbbra is 12F508-nak látja :/ . Ha rámegyek a folytatásra, akkor meg nem tölti rá. ICSP lábakról lekötöttem mindent.
A hozzászólás módosítva: Jan 30, 2018
(#) Prendick válasza dani9228 hozzászólására (») Jan 30, 2018 /
 
Ha 508-ast jelez, akkor magát az ic-t nem látja, vagyis semmi nem jön vissza a PG lábakon. Biztos, hogy jól állnak a switch-ek a Mikroprog kocka mellett? MCLR J1-J2-n a 3-as, PGC-PGD 2-4-es pozícióban?
VPP-first be van kapcsolva? Ennél a pic-nél kell.
Külső táp? Néha ezeket a kis pic-eket nem szereti hosszú USB kábelen programozni, pláne HUB-on keresztül (kevés a táp és nincs elég VPP).
(#) Prendick válasza Prendick hozzászólására (») Jan 30, 2018 /
 
Ja és az MCLR pin ne legyen I/O-n.
(#) dani9228 válasza Prendick hozzászólására (») Jan 31, 2018 /
 
Köszi, most már működik. A jumpereken kellett állítani. Programoztam már rajta másik pic-eket, de nem is figyeltem, hogy azokat állítani kell. Amik eddig voltak, azokat meg kezelte az eddigi beállítás.
Rátöltöttem egy alap progit, ahol az egyik kimenete magasba megy, de nem csinál semmit. Konfigurációs bitek beállítva, ANSEL 0.
(#) kriszrap hozzászólása Feb 1, 2018 /
 
Sziasztok lehet rossz helyre írom de ha igen szóljatok köszönöm.

WS2812 ledről szeretnék kérdezni hogy hogyan lehet léptetni a ledeket és hogyan lehet szint válsztani(r,g,b).
Programozáskor mindeki könyvtárat használ erre .... Ennyire bonyolult??
WS2812 és WS2811 között mi a külömbség??
Segítségeteket előre köszönöm
A hozzászólás módosítva: Feb 1, 2018
(#) pipi válasza kriszrap hozzászólására (») Feb 1, 2018 /
 
Hali!
Az adatlapban le van írva, 1 biten egymás után sorosan kell beshiftelni az rgb biteket.
Egyszerűbb meglévő könyvtárat használni, mint megírni persze lehet optimálisabb a saját rutin .
Bővebben: Link
(#) Hp41C válasza kriszrap hozzászólására (») Feb 1, 2018 /
 
Gooooogle a barátod:
Ha adatlapot keresel:
Beírod a típusszámot és a "datasheet" szót. WS2812 esetében a 3. találat ez. A 4. és az 5. oldal foglalkozik a jelalakkal.
WS2811 esetében az 1. találat ez. Adatok a 4. oldalon.

Az időzítéseket pontosan be kell tartani.
(#) kriszrap válasza Hp41C hozzászólására (») Feb 1, 2018 /
 
Természetesen googlet tudom használni....
Angolom nem anyira jo.. Ezért kérdeztem...
(#) sonajkniz válasza kriszrap hozzászólására (») Feb 1, 2018 /
 
Idézet:
„Az időzítéseket pontosan be kell tartani.”

Ez így van. Az adatlaponbetűrt szórás háromszorosánál már téveszt, és két bit között ne várd ki az 50 mikrosecet, mert azt már új adatnak veszi.
(#) pajti2 válasza kriszrap hozzászólására (») Feb 2, 2018 /
 
Ha erősíteni kell angolból, akkor a szokásos eljárás kezdeni a szókinccsel, vagy kezdeni a nyelvtannal, vagy tanulni együtt a kettőt, kinek melyik tetszik jobban.

Például fogni egy szótárat, és valós szöveget fordítani, fordítani, fordítani. Értelmetlen szóhalmazt kiszótárazni egyesével, és puzzlét játszani a szavakkal, hogyan tud belőlük értelmes mondat kijönni abban a szövegkörnyezetben. Pár100 oldalnyit végig kínlódsz tudatlanul, utána előkotrod könyvtárból a középiskolás angol nyelvtan könyvet (például ezt), és meg fogsz lepődni, mennyire gyorsan lehet az után tanulni meg a nyelvtant, amikor megszokás szintjén már egyébként is tudod.

Szókincsre én egyszerűen csak fordítottam az intel 80386-os proci leírásából a fejezeteket (lapkönyvtár, protected mód, debug regiszterek, azok mind olvasmányos részek) és magoltam, magoltam, magoltam. Szerintem jól jön a processzorok működésének az ismerete olyankor is, ha vírust akarsz írni, vagy védelmi rendszerekbe betörni

De ha az autodidakta módszerek nem a kedvenced, vannak tanfolyamok is az alapokat tanítani. Nem mintha sokkal előrébb lennél vele, elvégre helyetted tanulni senki se fog, és még cudar sok pénzbe is van. De akinek ami tetszik, van kínálatban minden.

És hogy mire jó az mind? Sem elektronikában, sem szoftvertechnikában moccanni sem fogsz tudni angol nélkül sem a jelenben, sem a jövőben. Arra jó.
(#) usane válasza kriszrap hozzászólására (») Feb 2, 2018 /
 
És ne akard C-ben kezelni, főleg ha mást is kezel a kontroller. Persze lehetséges, van rá példa és anno én is megírtam, de nem árt egy minimum 12 MIPS-es vezérlő, plusz ismerni kell azt a LED-et, meg minél hoszabb a LED-sor annál szigorúbban be kell tartani az időzítést. Kevés LED esetén lehet játszani az időzítésekkel, van ahol el lehet térni, van ahol maximumot nem ad meg ott azzal lehet játszani, stb. Keresgélj a neten van rá sok példa.
(#) sonajkniz válasza usane hozzászólására (») Feb 2, 2018 /
 
Idézet:
„minél hoszabb a LED-sor annál szigorúbban be kell tartani az időzítést.”

Most miért hülyíted ezt a szerencsétlent? Mi köze a ledsor hosszának az időzítésekhez?
Az még az uartot, vagy a canbust sem érdekli időzítés szempontjából, hogy hány adat megy ki.
Pedig jócskán érzékenyebbek rá.
Ha már úgyis szóba került az adatlap. Le vannak írva az időzítési értékek. Ha kiszámolod a megadott toleranciákkal, látni fogod, hogy 700000 bit/sec-től 1100000 bit/sec-ig képes kezelni a bejövő adatot. Ezt én nem nevezném szigorúan betartandó időzítésnek.
De a valóságban még ennél is nagyobb a toleranciája. Ez az adatküldő rutint PIC10F322-esre
írtam, és 16MHz-s órajelen kiválóan viszi a 60 részes WS2812-es ledsort.
Pedig ez már minden határérték alatt van.

  1. ;-------------------------------------------------------------------------------
  2. KULD_ADAT                      ;1-Wire adatküldés.
  3.     MOVWF   ADATBYTE
  4.     MOVLW   D'8'
  5.     MOVWF   CIKLUS             ;8 bit elküldésének számlálója.
  6. ADAS
  7.     BTFSS   ADATBYTE,7
  8.     GOTO    ADAS2
  9.     BSF     LATA,0
  10.     RLF     ADATBYTE
  11.     NOP
  12.     BCF     LATA,0
  13.     NOP    
  14.     DECFSZ  CIKLUS
  15.     GOTO    ADAS
  16.     RETURN
  17. ADAS2
  18.     BSF     LATA,0
  19.     BCF     LATA,0
  20.     RLF     ADATBYTE
  21.     NOP
  22.     NOP
  23.     DECFSZ  CIKLUS
  24.     GOTO    ADAS
  25.     RETURN
  26. ;-------------------------------------------------------------------------------
(#) kriszrap válasza pajti2 hozzászólására (») Feb 2, 2018 /
 
Szakmaival van igazából nagybajom de rágyúrok
(#) usane válasza sonajkniz hozzászólására (») Feb 2, 2018 /
 
Azért nem hasonlítanék 1 eszközön kimenő adatsort 2-300-on átmenőhöz. Nem egy cső amin átfolyik. átszottam vele eleget. És hiába írtad te meg pic10-re amikor ő MikroC-t használ, akkor cseszheti a 16Mhz-et. 12 MIPS-en meg a Mikroc-vel is tud valamit kezdeni vele.
(#) Hp41C válasza sonajkniz hozzászólására (») Feb 2, 2018 /
 
16 MHz PIC10F322 utasítás végrehajtási ideje 0.25 us. A goto -é kétszer ennyi, ha végrehajtja, ill. ugyanennyi, ha átlépi.
A kódod kétféle képen futhat le a 7. sorban levő utasítástól függően:
Ha "átlépi" a goto -t mivel a tesztelendő bit 1.
A 7 .. 14 utasítás végrehajtásának ideje 8* 0.25us, ha a decfsz az ugrásra viszi a végrehajtást, akkor a ciklusban még kétszer 0.25 us lesz a goto miatt. Ez összesen 10 * 0.25us azaz 2.5us.
A WS2812 adatlapja szerint a T1H + T1L = 0.7 (+/- 0.15) + 0.6 (+/- 0.15) us, aminek maximuma 1.3 + 0.3 azaz 1.6 us.
Ha végrehajtja a goto -t mivel a tesztelendő bit 0.
7. utasítás 0.25 us, a 8. -é 0.5 us, a 18...23 lépésé 6 *0.25 us + 2 * 0.25 a goto miatt. Összesen 11 * 0.25us = 2.75 us.
A WS2812 adatlapja szerint a T0H + T0L = 0.35 (+/- 0.15) + 0.8 (+/- 0.15) us, aminek maximuma 1.15 + 0.3 azaz 1.45 us.

Valamit elszámoltam volna?
(#) Hp41C válasza kriszrap hozzászólására (») Feb 2, 2018 /
 
Szerintem a diagramok érthetők angol tudás nélkül is.
WS2812:
Note: Follow the order of GRB to sent data and the high bit sent at first.
Hevenyészett fordításban annyit tesz:
Kövesd a megadott sorrendet a G R B adatok küldésénél. A magas helyiértékű bitet küld előbb.
WS2811:
Note: Follow the order of RGB to sent data and the high bit sent at first.
Hevenyészett fordításban annyit tesz:
Kövesd a megadott sorrendet a R G B adatok küldésénél. A magas helyiértékű bitet küld előbb.
(#) sonajkniz válasza Hp41C hozzászólására (») Feb 2, 2018 /
 
Nem. Semmit nem számoltál el. Csupán figyelmetlenül olvasol.
Idézném, amit ugyanezen hozzászólásban írtam:
Idézet:
„De a valóságban még ennél is nagyobb a toleranciája. Ez az adatküldő rutint PIC10F322-esre
írtam, és 16MHz-s órajelen kiválóan viszi a 60 részes WS2812-es ledsort.
Pedig ez már minden határérték alatt van.

Ugyanis az 1-Wire rendszereknél a valóságban csupán 2db fontos tényező van.
1. 0 jel küldésénél ne legyen rövidebb a magas inpulzus annál, mint amit a vételi oldal érzékelni tud.
2. 0 jel küldésénél előbb érjen véget a magas inpulzus, mint amennyi a jel kezdetétől a vizsgálatig eltelő idő.
A továbbiakban a rendszer egészen addig vár az újabb jel érkezésére, amíg a reset idő le nem telik.
Ezt több különböző 1-Wire eszközön leteszteltem már. Csak a WS2812-es ledből 3 különböző gyártmányon.
Még annyit tennék hozzá, mer a rutin csak az adásra vonatkozik, hogy két byte küldése között majdnem 4 usec telik el, és az ellen sem emel a WS kifogást.
(#) Hp41C válasza sonajkniz hozzászólására (») Feb 3, 2018 /
 
Zavart érzek az erőben...
(#) sonajkniz válasza Hp41C hozzászólására (») Feb 3, 2018 /
 
Mire gondolsz?
Arra, hogy a standard 1Wire alap magas jelet húz alacsonyra, a WS pedig fordítva? Vagy a jelek aránya nem oké?
Azt már meg sem említi a WS adatlapja, hogy amíg a standard 1-Wire jobbra lépteti a biteket, addig a WS számára balra kell. (Ez utóbbit meg is szívtam, mert nem könyvtári, hanem saját rutinnal dolgozom, és automatikusan jobbra léptettem a biteket.)
De végül is ez lényegtelen. Lényeg, hogy nem mágia az 1-Wire, és mivel meglepően rugalmas és stabil, nem kell tartani a vele való kísérletezéstől.
(#) Hp41C válasza sonajkniz hozzászólására (») Feb 3, 2018 /
 
Tovább böngészve már rájöttem, hogy tényleg más dologról írunk:
  1. WS2812B Datasheet limits [+/- 150 ns]
  2.  0 - High:  400 ns, Low:  850 ns  
  3.  1 - High:  800 ns, Low:  450 ns  
  4.  
  5. WS2812  Datasheet limits [+/- 150 ns]
  6.  0 - High:  350 ns, Low:  800 ns  
  7.  1 - High:  700 ns, Low:  600 ns
  8.  
  9. WS2812D Datasheet limits
  10.  0 - High: <600 ns, Low:      ns        Cycle: >1065 ns
  11.  1 - High: >625 ns, Low:      ns        Cycle: >1065 ns
  12.  
  13. WS2811 Datasheet limits [+/- 150 ns]
  14.  0 - High:   500 ns, Low:  2000 ns  
  15.  1 - High:  1200 ns, Low:  1300 ns


Meglehet, Neked WS2812D típussal megy ez a program. A sima WS2812 nálam nem volt ennyire toleráns.
A hozzászólás módosítva: Feb 3, 2018
(#) sonajkniz válasza Hp41C hozzászólására (») Feb 3, 2018 /
 
Igazából én egy ilyen ledszalagot rendeltem a HESTORE-ból, ezt hajtja a PIC10-es. Azonban a szalagon lévő ledek kinézetre nem olyanok, mint a képen, hanem ilyenek.
Innen kezdve akár igazad is lehet.
(#) pajti2 válasza sonajkniz hozzászólására (») Feb 3, 2018 /
 
Azokkal a programozható ledekkel mennyire aprólékosan lehet kikeverni színeket a gyakorlatban?
(#) kriszrap hozzászólása Feb 3, 2018 /
 
Idézet:
„Most miért hülyíted ezt a szerencsétlent?”

Khm....
(#) sonajkniz válasza pajti2 hozzászólására (») Feb 3, 2018 /
 
Szia!
Az én személyes tapasztalatom az, hogy valamilyen fényterelő használata nélkül csak kellő távolságból nézve hatékony a színkeverés. Különben külön - külön láthatóak a ledek. Persze a 16 millió szín az nem igaz. Csupán 16 millió variáció. Elvégre attól, hogy egy adott szín kisebb vagy nagyobb fényerővel világít, még nem változik meg maga a szín. De azért elég sok szín kikeverhető a teljes, összesített fényerő kb 50 százalékán. Nagyobb fényerőnél már csökken a kikeverhető színek száma.
Következő: »»   1016 / 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