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   225 / 1211
(#) vilmosd válasza colosseum hozzászólására (») Márc 19, 2012 / 1
 
Mint tudjuk a SPI eszkozoknek van 4 uzemmodja. Ezek a adatvonal mintavetelezesben ternek el, valmint az adasnal az adat a CLK melyik elenel ervenyes. A melleklet a 16F690 SPI modul mukodesi modjait szemlelteti.
A mukodesi modok definicioi egy CCS C mintapeldabol:
  1. #define SPI_MODE_0_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
  2. #define SPI_MODE_0_1 (SPI_L_TO_H)
  3. #define SPI_MODE_1_0 (SPI_H_TO_L)
  4. #define SPI_MODE_1_1 (SPI_H_TO_L | SPI_XMIT_L_TO_H)

Remelem ertheto.

41262C_01.jpg
    
(#) colosseum válasza vilmosd hozzászólására (») Márc 19, 2012 /
 
Kedves Vilmos

Pontosan erre volt szükségem , a kiragadott részlet is az említett Picre lett megírva.

Köszönöm szépen.
(#) Geldrin hozzászólása Márc 20, 2012 /
 
Sziasztok, mennyire vagytok járatosak az MPLABX assemblerében?

Két dolog volna:
Láttam egy ilyen megoldást CONFIG-ra:
  1. __config 0x3D18

Szerintetek elfogadja, vagy inkább maradjak a bevállt "__config _HS_OSC & _WDT_OFF & _LVP_OFF..." formátumnál?

A másik:
  1. DISPLAY equ PORTB
  2. PIN0 equ 0
  3. PIN1 equ 1
  4. (...)
  5. #define LED1 DISPLAY,PIN1

Tudnék egyszerűen csak a "LED1" kifejezéssel hivatkozni a PORTB,1-re?
(#) potyo válasza Geldrin hozzászólására (») Márc 20, 2012 /
 
Idézet:
„Szerintetek elfogadja, vagy inkább maradjak a bevállt "__config _HS_OSC & _WDT_OFF & _LVP_OFF..." formátumnál?”


Miért cserélnéd le az olvasható formát egy kevésbé olvashatóra? Egyébként pontosan ugyanazt csinálja mindkettő, mert a header fájlban a _HS_OSC, _WDT_OFF mind egy-egy konstansként van definiálva, és amikor az & jelekkel összeállítja a fordító, akkor az említett konstans formát kapja.

Idézet:
„Tudnék egyszerűen csak a "LED1" kifejezéssel hivatkozni a PORTB,1-re?”


Szerintem így kellene (nem próbáltam ki, csak így próbálnám):
  1. #define DISPLAY PORTB
  2. #define PIN0 0
  3. #define LED0 DISPLAY,PIN0


Így nem jó?
  1. #define LED0 PORTB,RB0
  2. #define LED1 PORTB,RB1

Szerintem amit te akarsz, az már felesleges bonyolítás.
(#) trudnai válasza Geldrin hozzászólására (») Márc 20, 2012 /
 
Idézet:
„Sziasztok, mennyire vagytok járatosak az MPLABX assemblerében?”


Ezeknek semmi koze sincsen az MPLABX-hez, ez az MPASM-tol (Assembly fordito) fugg...

__config-nal (es masnal se) hasznalj beegetett szamokat ha lehet. Nehez atlatni es igy a problema okozojat megtalalni is nehezebb, nem beszelve az esetleges portolasi problemakrol.

Masik: Tudnal #define LED1 PORTB,1 -et is irni, de mint emlitettem nem erdemes 'drotozni' a programodat. Tulajdonkepp minel magasabb az absztrakcio annal konnyebb kesobb a kodot megerteni es modositani.

Ha ugy konyebb neked akkor lehet igy is csinalni:

  1. #define LEDPORT PORTB
  2. #define LED_ZOLD 1
  3. #define LED_HIBA 2
  4.  
  5. BSF  LEDPORT, LED_ZOLD
  6. NOP
  7. BSF  LEDPORT, LED_HIBA


vagy:

  1. #define LEDPORT PORTB
  2. #define LED_ZOLD LEDPORT,1
  3. #define LED_HIBA LEDPORT,2
  4.  
  5. BSF  LED_ZOLD
  6. NOP
  7. BSF  LED_HIBA


Amelyik szimpatikusabb... Lenyeg, hogy kesobb ha atteszed a LED-eket egy masik portra akkor egyszeruan csak egyetlen helyen megvaltoztatod a definiciot es minden mukodik ugy ahogy eddig (mar feltetelezve a port inicializalas stb is megfeleloen van modositva)
(#) bkati hozzászólása Márc 20, 2012 /
 
Lenne egy kérdésem az A/D-átalakítóval kapcsolatban. A szoftveres részét értem, de a hardverben nem vagyok biztos egy dologban. A PicKit2-höz kapott demoboardon van egy 10k-s potméter, és úgy van bekötve, hogy a középső láb nem közvetlenül megy a PIC A/D-lábára, hanem előbb van egy párhuzamos kondenzátor a föld felé, és egy 1k-s ellenállás sorosan a PIC felé. Jól gondolom, hogy zajszűrés miatt van? Amikor forgatom a potmétert, akkor ugrálna nagyon a mért érték? A gyakorlatban kell szűrés, vagy ráköthetem simán a potmétert a PIC-re? (Azért kérdezem, mert elég kevés helyem van.)
(#) Geldrin válasza trudnai hozzászólására (») Márc 20, 2012 1 /
 
Csak kíváncsi vagyok, hogy mennyire rugalmas az MPLAB... egyébként egy oldalon találkoztam ezzel a formával, csak nem volt feltüntetve, hogy milyen fejlesztőkörnyezetet használtak.

Potyo, trudnai: köszönöm a válaszokat!
(#) vilmosd válasza bkati hozzászólására (») Márc 20, 2012 /
 
Igen eleg fontos az AD bemenojel szurese. Eleg rossz gyakorlat, hogy kondi nelkul, nagy belso ellenallasu forrast akarnak merni az AD-vel. Ezen segit a kapacitas, mert mintavetelezeskor a kondibol tolti fel a mintavetelezo kondit. Amugy egy 1206 SMD nem nagy helyet foglal el, es a panel also oldalara felforraszthato kozvetlen az IC labahoz.
(#) bkati válasza vilmosd hozzászólására (») Márc 20, 2012 /
 
Köszönöm, akkor berakom.
(#) icserny válasza bkati hozzászólására (») Márc 20, 2012 /
 
Idézet:
„van egy párhuzamos kondenzátor a föld felé, és egy 1k-s ellenállás sorosan a PIC felé. Jól gondolom, hogy zajszűrés miatt van?”
A soros ellenállásnak védelmi funkciója is van, mert nagyon kellemetlen volna ha a szélső állásig le- vagy feltekert potenciométer mellet kapcsolná a kedves user kimenetnek az RA0 lábat (gondolom, oda csatlakozik a potméter).
(#) kezdo001 hozzászólása Márc 21, 2012 /
 
Sziasztok.
Most ismerkedem a soros kommunikációval. Magával az adatcserével nincs is problémám minden egész jól megy.
Viszont nem tudom, hogy lehetne megoldani, hogy a kommunikáció kezdetét a PIC megszakításként kezelje.
A konkrét problémám az hogy mondjuk küldök a PIC-nek ASCII-ban egy 1-es jelet és ekkor egy 3LED-es futófény indul.Na de nemigazán tudom kikapcsolni. Ehhez kéne egy megszakítás, hogy az RX fogadja az adatokat és az egyik változóba beírja azt.
Valaki tud forráskódrészletet ilyesféle megszakításhoz?
(#) Hp41C válasza kezdo001 hozzászólására (») Márc 21, 2012 /
 
Szia!

A megoldás:
Megszakításosan kell kezelni az UART -ot. A megszakítás a hibaellenőrzés, lekezelés után a jó vett karaktereket egy bufferbe helyezze el. Az adás is így történhet. Az adási megszakítás kiszolálója a soron következő karaktert küldi el az adó bufferból, ha van még, egyébként eltiltja az adási megszakítást.
A program a vételi bufferből olvas ki karaktereket, táviratokat, feldolgozza és elkészíti a választ, az adási bufferbe külsi az elküldendő karaktereket - és endegélyezi az adási megszakítást, ha van küldeni való.

Ebben a hozzászólásban levő linken szereplő programban benne van a megoldás 16F628 -ra...
(#) kezdo001 válasza Hp41C hozzászólására (») Márc 21, 2012 /
 
Nézegettem a linken lévő hozzászólásokat.Nem értettem miért nem találom a "nekem valót". Hát rájöttem...
Elfelejtettem írni hogy CCS fordítót használok
Mindenesetre köszönöm a választ. Az ASM forrás egy kollégámnak fog jól jönni.
(#) Hp41C válasza kezdo001 hozzászólására (») Márc 21, 2012 /
 
Szerintem a problémádat nem a CCS -beli buffer kezelés okozza... A többit (mikor mit kell tenni) fel lehet használni C -ben is. A fordítóval szállított uart kezelés megvárja, amíg megjön a karakter / elküldi az uart a karaktert, ha egy csomót egyszerre kell fogadni / küldeni.
(#) vilmosd válasza kezdo001 hozzászólására (») Márc 21, 2012 /
 
A CCS C eseten a megoldas a Te gepeden talalhato. CCS telepitokonyvtara tartalmaz sok mintapeldat es kozte az Ex_sisr.c peldat. Soros vonal IT- bufferos kezeleset mutatja be. Ajanlatos vegignezni meg a "drivers" alkonyvtarat is mert sok HW eszkozhoz talalsz mintapeldat.
(#) kezdo001 válasza vilmosd hozzászólására (») Márc 21, 2012 /
 
Az Ex_sisr.c tényleg egész jó példa. Már csak át kell értelmezni az én programomba. Nagyon szépen köszönöm!
(#) pittosi hozzászólása Márc 21, 2012 /
 
Egy16f628 ról le akartam olvasi az adatokat . olvasáskor 0lák jelentek meg tisztán
EEPROM Data.
00 01 77 05 B7 04 5F 40 FF FF stb
Miez?
(#) vilmosd válasza pittosi hozzászólására (») Márc 21, 2012 /
 
A kodvedelem jotekony hatasa, hogy az olvasasnal csak 0 a kiolvasott ertek.
(#) pittosi válasza vilmosd hozzászólására (») Márc 21, 2012 /
 
gondoltam . azt kérdezém, azt nem lehet kivédei valahogy?
(#) icserny válasza pittosi hozzászólására (») Márc 21, 2012 /
 
Idézet:
„azt nem lehet kivédei valahogy?”

Semmi értelme nem volna, ha ki lehetne!
(#) vilmosd válasza pittosi hozzászólására (») Márc 21, 2012 /
 
Dehogynem, Nekiallsz es megirod a programot.
(#) sany hozzászólása Márc 21, 2012 /
 
Ez lehet, hogy egy kicsit furcsa kérdés lesz.De egy PIC -nél ki lehet kapcsolni egy adott lábat, úgy hogy sem alacsony jelszint sem pedig pozitív jelszint ne jelenjen meg rajta. Tehát lebegtetni , mint egy 3 állapotú kapu kimenetét?
A választ köszönöm.
(#) kissi válasza sany hozzászólására (») Márc 21, 2012 /
 
Persze...ilyenkor nevezzük bemenetnek !

Steve
(#) vilmosd válasza sany hozzászólására (») Márc 21, 2012 /
 
Bemenetnek konfiguralva kivulrol magas impedancianak latszik.
(#) vilmosd válasza kissi hozzászólására (») Márc 21, 2012 /
 
De egyszerre irtuk.
(#) silent15 hozzászólása Márc 21, 2012 /
 
Üdv!

Azt szeretném kérdezni, hogy a PIC-ek adatlapján hol találom , hogy a kvarcokhoz hány farádos kondit rakjak, + a táplábaknál lévő kondit? Melyik menüpont a Pdf fájloknál, pl.: a 18F4520 nál?
(#) potyo válasza silent15 hozzászólására (») Márc 21, 2012 /
 
Kvarchoz ennél a típusnál konkrétan a Table 2-1 és Table 2-2-ben találod.

Táplábakhoz 100nF kell típustól függetlenül.
(#) silent15 válasza potyo hozzászólására (») Márc 21, 2012 /
 
És ezek hány voltosak legyenek?
(#) lokátoros válasza silent15 hozzászólására (») Márc 21, 2012 /
 
Az oszcillátor tervezés gyakran elhanyagolt téma, még a "profiknál" is:
Ha esetleg mélyebben is érdekel:
Microchip AppNote 588
(#) potyo válasza silent15 hozzászólására (») Márc 21, 2012 /
 
A legkisebb, ami kapható, megfelel.
Következő: »»   225 / 1211
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