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   365 / 1210
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 6, 2013 /
 
A hiányolt részeket is tartalmazó assembly megoldás. Minden, az uart -on, 9600 Baud -dal érkező karaktert visszaküld, de a kisbetűket nagybetűvé konvertálja. Hogy nehezebb legyen a feladat a feldolgozás 2ms késleltetést is tartalmaz (2 karaktert is vehet ez alatt az idő alatt az uart). Ennek ellenére működik, nem "ragad be" ... Még hibásan vett karakter esetén sem... A csomag tartalmaz egy az RCREG -re vonatkozó register injection típusú stimulust is... Töltsd be a projectet, fordítsd le, válaszd ki az Uart1 fület, indítds el a szimulátort...
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 6, 2013 /
 
Megnézem. Asm-ben nekem is működik. Befagyással már nincs is gond az a txif miatt volt.
(#) llaczo válasza Kovabe hozzászólására (») Feb 6, 2013 /
 
Szia. A PIC lábán is mérni lehet az 5 voltot. Potival próbálgatom. A poti és a bemenet közé 300 ohm-ot tettem. Ha jól értelmeztem az adatlapot akkor 10K ig lehet berakni.
(#) llaczo válasza icserny hozzászólására (») Feb 6, 2013 /
 
Szia. Bizony két nap próbálgatás után már olyat is teszek amit nem szabad. ( főleg ha ott van mellette a tartalék PIC . ) A kapcsolás csak egy poti a két végén 0 és 5 volt. Utána még egy 330 Ohm-os ellenállás. A program elég hosszú ezért csak az ide vonatkozó részt rakom ki.
Köszi a segítséget.

  1. list    P=PIC12F675
  2.                 include  "P12F675.INC"
  3.  
  4.         __CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
  5.  
  6.  
  7.     BCF   STATUS,RP0     ;Bank 0
  8.     CLRF   GPIO                  ;Init GPIO
  9.     MOVLW   b'00000111'  ;Set GP<2:0> to
  10.     MOVWF   CMCON                ;digital IO - Komparátor kikapcsolása
  11.     BSF   STATUS,RP0     ;Bank 1
  12.     CLRF   ANSEL                 ;Digital I/O - Összes láb dihitális módra állítása
  13.     banksel    TRISIO
  14.     MOVLW   b'00000001'  ;
  15.     MOVWF   TRISIO               ;AN0 bemenet
  16.     BCF   STATUS,RP0     ;Bank 0
  17.  
  18. ;------------------------------------
  19.  
  20. ;program
  21.  
  22.  
  23. ;------- ANALOG RÉSZ ----------
  24.  
  25.  
  26. ANALOG  movlw     b'10001'           ;AN0 as analog input,conversion clock Fosc/8
  27.         movwf     ANSEL
  28.         movlw    b'00000001'        ;ADC on, right justified
  29.          movwf     ADCON0
  30.  
  31. ; read_ADC:
  32.         banksel ADCON0
  33.         bsf     ADCON0,1    ;start conversion
  34.  WaitADC:
  35.         btfss     PIR1,ADIF
  36.         goto     WaitADC        ;wait for ADC to finish
  37.  GetADC1:
  38.         movf     ADRESH, W    ;get high byte 2 BIT
  39.         movwf     ADC_value_hi
  40.         banksel    ADRESL
  41.         movf     ADRESL, W    ;get low byte 8 BIT
  42.         movwf     ADC_value_lo
  43.  
  44.         banksel    PIR1
  45.         bcf      PIR1,ADIF    ;clear conversion flag
  46.                 CLRF     ANSEL           ;Digital I/O - Összes láb dihitális módra állítása
  47.         CLRF     ADCON0
  48.  
  49. ;---- változókba  beírás ------------
  50.  
  51.             MOVF    ADC_value_hi,W
  52.         MOVWF    ES2B
  53.  
  54.             MOVF    ADC_value_lo,W
  55.         MOVWF    ES3B
  56.  
  57.         return
(#) n_yálastrubadúr válasza llaczo hozzászólására (») Feb 6, 2013 /
 
Szerintem az Anselt azt nézd meg. Nem a/d-t akrasz mérni? digital i/o-n van oda is írtad.
szerk: bocs nem láttam lentebb.
A hozzászólás módosítva: Feb 6, 2013
(#) n_yálastrubadúr válasza n_yálastrubadúr hozzászólására (») Feb 6, 2013 /
 
  1. movlw   b'00000001'     ;miután beállítod a csatornát
  2.         movwf   ADCON0
  3.         call    sample.time     ;ki kell várnod a beállási időt
  4.         bsf             ADCON0,GO       ;aztán indíthatod a konverziót
  5.  
  6.         btfsc   ADCON0,GO       ; és inkább nézd ezt ezt törölnöd sem kell
  7.         goto    $-1
  8.  
  9.         movfw   ADRESH
  10.         movwf   ad.regh
(#) llaczo válasza n_yálastrubadúr hozzászólására (») Feb 6, 2013 /
 
Köszi. Ki fogom próbálni estére. Most melózni kell menni
Üdv.
(#) n_yálastrubadúr válasza n_yálastrubadúr hozzászólására (») Feb 6, 2013 /
 
Jó estét!
Tanulmányozom a programod. Köszönöm. Elég komplex, kicsit nehezen olvasom mások logikáját, de gondolom ez nem egyedi. Most a c nyelv érdekel, azt tanulgatom. Ez a probléma, az usart jó példa arra, hogy nehéz kombinálni, ha nem nagyon van mivel. Pontosan olyan érzésem van mint az asm-ben. Emlékszem eleinte olyan váltózót hívtam a call utasítással amit valahol egy decfsz írt le. 100 szó is egy , nem nagy a nyelvi lefedettségem. Néztem neten magyar hi-tech.c leírást, de nem találtam. Sajnos angolul ez így több mint merész feldolgozni, az én angol tudásommal. Nagyon sokat segítene ha valaki megosztaná, hogy hol lelhető fel.
(#) Hp41C válasza Hp41C hozzászólására (») Feb 6, 2013 /
 
.... Teszteltem a legutolsó verziódat a szimulátorral: Nincs annak baja. A szimulátor egyból kiszólt, mi maradt ki. Kapcsold ki a Watchdog reset -et... Megéri használni (3).
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 6, 2013 /
 
Igen működik csak valami nemjó. de nagyon nemértem miért. A WDT ki volt kapcsolva.
A hozzászólás módosítva: Feb 6, 2013

887usart.c
    
(#) R4v3n hozzászólása Feb 7, 2013 /
 
Üdv Mindenkinek!
Itt, az oldalon található digitális órát készülök felprogramozni az IC-Prog nevű program segítségével.

A cikk
A kapcsolási rajz

A Pic külső kvarcot használ ugyebár. A kérdésem az, hogy az oszcillátor alatt mit kéne beállítanom? Csatoltam egy képet, az egyértelműség kedvéért. Előre is köszönöm a Segítséget!

icprog.JPG
    
(#) R4v3n válasza R4v3n hozzászólására (») Feb 7, 2013 /
 
ÁÁÁ most látom hogy 4MHz-ig XT-t kell!!!! Elnézést!!! -.-
(#) R4v3n válasza R4v3n hozzászólására (») Feb 7, 2013 /
 
Akkor csak azt szeretném kérdezni hogy a Fuses alattiak jól vannak beállítva? Melyik mire való? Tudom a JDM-et kerülni kell, de Pickit2-vel nem lehet 16F628-t programozni Továbbá már volt vele egy sikeres programozásom
(#) nagzso válasza R4v3n hozzászólására (») Feb 7, 2013 / 1
 
Nem tudom, hogy 16F628-at lehet-e PICkit2-vel programozni, de nekem sikerült a 16F627-et. Ahogy néztem nem sokban térnek el egymástól, emellett még a "datasheet"-nek is 16F62X a neve. Ezekből kiindulva, szerintem simán vinnie kéne. Útközbe megtaláltam ezt: Bővebben: Link
A hozzászólás módosítva: Feb 7, 2013
(#) Hp41C válasza nagzso hozzászólására (») Feb 7, 2013 /
 
Ne az MpLab alól próbáld programozni a 16F627 / 628 -at, hanem a PICKit2V2 programmal.
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 7, 2013 /
 
Mplab alól is lehet programozni és a Pk2 szoftver is jó a 628A-ra.
(#) hepi02 válasza R4v3n hozzászólására (») Feb 7, 2013 / 1
 
Pickit2 viszi a 16f628-t. Elég sokat égettem már.
(#) n_yálastrubadúr hozzászólása Feb 7, 2013 /
 
Jó reggelt!
Az usartról kérdezném, hogy: az tulajdonképpen semmilyen szinten nem zavar be a pic-nek miközben megy? Ha vételkor mondjuk megtelik az RCREG akkor bebillenti a flag-et és ennyi? Mert az egész rendszerem erre a tézisre építettem eddig. El szeretném az kezdeni egymásra épített egységek univerzális kódjának kidolgozását. Amiben mindig lenne egy központ elem és az tudna kommunikálni az alegységekkel. Ekkor nagyon jól jönne ha a soros kommunikációnak a hatása semennyire sem zavarná meg a pic-et, persze a 8-9 bitenkénti mentéstől eltekintve. Egy szervókkal mozgó robot altestén gondolkodom, aminek a szervó vezérlő pic része 10 szervóval küzdene meg és kapná az infót az agy pic-től. Egyszerűen gondolkodva, a szervó vezérlő maximuma a 10 szervó, mert 2msec-el és a 20ms-es ismétléssel pont ennyi fér bele kényelmesen ha eltolom a vezérlést. Biztosan jóval több is kijöhetne, de ezzel az egyszerű és biztonságos megoldással megelégszem. Persze ha az usart mindenkori feldolgozása belezavar, akkor mégkevesebb.
(#) n_yálastrubadúr hozzászólása Feb 7, 2013 /
 
Már kínomban az RCSTA-t írom ki a kijelzőre és úgy küldök. És az folyamatosan látatja a FERR és OERR biteket, annak nem kéne törlődnie, ha tiltom engedélyezem a CREN-t?
szerk: Nem volt bekapcsolva a megszakítás, pedig már örültem, hogy van valami értelmes hibája.
A hozzászólás módosítva: Feb 7, 2013
(#) kokesz185743 hozzászólása Feb 7, 2013 /
 
A múltkor voltam a chipcad-nél egy PIC miatt, nem volt raktáron az a típus, amit kinéztem de aztán azt mondták, hogy minimum csak kettőt lehet rendelni, nekem ez egy kicsit gyanús a dolog, ráadásul nem a legolcsót processzort akartam megvenni. Másnak mi a tapasztalata ebben?
(#) nagzso válasza n_yálastrubadúr hozzászólására (») Feb 7, 2013 /
 
Mplab-ból (x-es verzió) egyszer próbáltam meg pic-ket programozni... El is szált az USB csatlakozóm a noti-ba. Azóta inkább a "PICkit 2 v2.61" használom.
(#) norbigal hozzászólása Feb 7, 2013 /
 
Elkészítettem egy pIC24HJ128GP504-es alappanelt. Minden be van forrasztva, debug lábak a megfelelő helyre kivezetve, táp-föld bekötve, szűrkondenzátorok rácsatlakoztatva. PICKit2 programozóval próbálok rácsatlakozni.
Az alkatrészek beültetése során módosítást kellett végeznem ami eltért az adatlapban leírtaktól:
- az AVDD és VDD között nincs 10 Ohm-os ellenállás, csak egy 0 Ohm-os. (a javasolt 10 lett volna)
- a MCLR lábnál a sorba kötött ellenállásom 180 Ohm-os, a felhúzó ellenállás pedig 4,7K Ohm-os (a javasolt <= 10K Ohm és <= 470 Ohm lett volna)
- A debug lábakkal sorba nincsenek bekötve ellenállások (a javsolt <100 Ohm-os lett volna)

A problémám: MPLABX-ben induláskor villog a Target és Busy LED is, majd abbamarad és az az alábbi üzenetet kapom:
Idézet:
„Could not connect to tool hardware: PICkit2PlatformTool, com.microchip.mplab.mdbcore.pickit2.PICkit2DbgToolManager
The debugger could not be started. Terminating debug session.”
Majd ezt követően nem is észleli a PicKit2-t amíg ki nem húzom és dugom vissza a csatlakozóját.
Viszont ebből sajnos semmit nem tudok meg, hogy mi a hiba. Esetleg tudna valaki segíteni, hogy miként induljak el a hibakeresésben?!?! :|
(#) kissi válasza nagzso hozzászólására (») Feb 7, 2013 /
 
Én mindig azt használom ( mármint MPLAB alól !), soha semmi bajom nincs vele!
Steve
A hozzászólás módosítva: Feb 7, 2013
(#) Hp41C válasza kissi hozzászólására (») Feb 7, 2013 /
 
... Az MpLab alatt a 16F627 és 16F628 nem "supportált", csak a 16F627A, 16F628A ... A PICKit2 tudja mindet programozni.
(#) icserny válasza norbigal hozzászólására (») Feb 7, 2013 /
 
A PICkit2 saját programjával próbáld felismertetni:
1. Először a PICkit2 "üresen" csatlakozzon a PC-hez, amikor elindítod a PICkit2 kezelőprogramját!
2. Utána csatlakoztasd az áramkört, majd a Device Family menüben válaszd ki a PIC24-es családot! Ha nem ismeri fel a mikrovezérlőt, akkor baj van.
Idézet:
„- a MCLR lábnál a sorba kötött ellenállásom 180 Ω-os, a felhúzó ellenállás pedig 4,7K Ω-os (a javasolt <= 10K Ω és <= 470 Ω lett volna)”
A felhúzónál köss sorba két 4,7 kohmosat (remélem, hogy nem 4,7 Ohmosat kaptál helyette mint én egy rendelésnél).
A 180 Ohm helyett pedig inkább egy 1 kohmosat tegyél be (különösen, ha a másik végén ott csücsül egy 100 nF-os kondenzátor is)!
(#) n_yálastrubadúr hozzászólása Feb 7, 2013 /
 
Összeszámolva 3 nap egyfolytában, ami persze nem volt hiába, mert más dolgokra is megoldást találtam. De a problémám megoldása: az oszcillátort kínomban XT-ről HS-re állítottam és jó lett.
Tudom hogy a konfigot állítom, de pontosan hogy értsem , mit csinál ez a különbség?
A hozzászólás módosítva: Feb 7, 2013
(#) kissi válasza Hp41C hozzászólására (») Feb 7, 2013 /
 
Idézet:
„Mplab-ból (x-es verzió) egyszer próbáltam meg pic-ket programozni... El is szált az USB csatlakozóm a noti-ba. Azóta inkább a "PICkit 2 v2.61" használom.”
Én erre a nagzso kolléga által írt általános szövegre írtam, a sima 628-at tudom, hogy nem lehet programozni ( jelzi a piros "LED"-el ) !
Steve
(#) kissi válasza n_yálastrubadúr hozzászólására (») Feb 7, 2013 /
 
Igaziból a kvarc frekvenciájához konfigurálja az oszcillátort, azaz ha nem a megfelelőt állítod be, akkor leszakadhat a rezgés vagy be sem indul !
Lehet, hogy írtad már, de milyen kvarcot használtál ?!
Steve
(#) n_yálastrubadúr válasza kissi hozzászólására (») Feb 7, 2013 /
 
Ez esetben akkor leszakadhatott.. Mert binárisan jó volt, decimálisan nem. Elég egy szemét hiba.
(#) norbigal válasza icserny hozzászólására (») Feb 7, 2013 /
 
Houston baj van!
Egy banális hibát követtem el beforrasztás alatt. A kontroller debug lábainál az adat és órajel lábakat rövidre zártam, mivel a két 0 Ohm-os ellenállást a képen látható helyen a jelenlegire merőlegesen forrasztottam be. Váááááááááá, most nem tudom teljesen megöltem-e vagy ha esetleg másik data és clk lábakkal próbálkozom, akkor működni fog-e a dolog...
A helyrerakott ellenállások mellett a 4,7KOhm-osat ki tudtam cserélni 10 KOhm-osra, de sajna 1Kohm-osom nincs. Betettem helyette 4,7KOhm-osat de ilyen és 180 Ohm-os esetben is az alábbi üzenetet kaptam:
Idézet:
„No device detected. Ensure proper capacitance on VDDCORE/VCAP pin.”

Majd ezt követően ledob a PICKit2-ről is addig amíg ki nem húzom és vissza nem rakom...

Viszont rákötöttem egy 3,3V-os fesz stabilizátort (1117), amin keresztül kapja (ha kapná) most a kontroller a tápot. Viszont az alatt a pár másodperc alatt amíg próbál kommunikálni, a beiktatott IC miniatűr hőerőművé válik, ami ugye csak rövidzárra utalhat az áramkörben. Ez viszont még zavarbaejtőbb, mert ha a kontrolleren keresztül történt a rövidzár akkor annak már annyi, ha viszont azon kívül, akkor meg leszedegethetek minden SMD alkatrészt, hogy lássam hol történhetett valami, főleg a tantal kondenzátorokat, amiket még átmelegíteni sem lehet rendesen, mert a többihez képest jóval nagyobbak.... Viszont sanszos, hogy azon kívül van rövidzár, mert a kontroller ez idő alatt soha nem melegszik - se akkor ha be van kötve a fesz. stabilizátor, se akkor ha nem.
Következő: »»   365 / 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