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   533 / 1210
(#) Buvarruha válasza brenato hozzászólására (») Jún 4, 2014 /
 
Fogj egy kábelt és tekerj rá néhány menetet, nem olyan bonyolult az.
(#) brenato hozzászólása Jún 4, 2014 /
 
Üdv!

Nem tudja valaki hogy az LM2917N frekvencia - feszültség átalakító szükséges alkatrészeit miként lehetne kiszámitani? Arra lenne szükségem, hogy az 200HZ legyen 5 Volt.
Köszi!
A hozzászólás módosítva: Jún 4, 2014
(#) don_peter hozzászólása Jún 5, 2014 /
 
Srácok, 16F684-nél szeretném bemenetként használni a 13-12-es lábakat. (A0, A1)
A többi I/O lábakon nincs gondom de ez a két láb valamiért nem reagál.
Gombot szeretnék olvasni rajta, PORT regiszterrel hogy történt e lenyomás.
5v-ot engedek a lábra és egy 4.7K-os ellenállással földre húzom a bemenetet, hogy ne lebegjen.

A lábakat digitálisra állítottam, ki, bemenetek beállítva ahogy kell.
Van ennél a chipnél esetleg valami speciális beállítás amely tiltja azt a két lábat?
Előre is köszi a segítséget..
(#) Pali79 válasza don_peter hozzászólására (») Jún 5, 2014 /
 
A kódnak legalább azt a részét tedd fel ahol az I/O-kat beállítod, mert így csak sötétbe tapogatózik az ember.
(#) don_peter válasza Pali79 hozzászólására (») Jún 5, 2014 /
 
Annyit még, hogy szimulátorba megy, de élesben nem.
2 chip-el is kipróbáltam hátha elszált az a 2 láb, de ugyan az a helyzet.

Behívott állományok
  1. #include <htc.h>                        // 10,12,16-os PIC definiviók
  2. #include <pic16f684.h>          // Mikrokontroller kiválasztása
  3. #include <stdio.h>                      // Alap függvények
  4. #include <stdlib.h>                     // Alap függvények


Main:
  1. ANSEL = 0;                              // Minden láb digitális
  2. TRISA = 0b00000011;             // A PORT 0-1-es lába bemenet többi kimenet
  3. TRISC = 0b00110000;             // C PORT 0:3 lába kimenet 4-5lába bemenet


Ennyi van beállítva.
(#) nedudgi válasza don_peter hozzászólására (») Jún 5, 2014 /
 
Ilyenkor érdemes megnézni az adatlapot. Az IO portok leírásánál szerepel, hogy milyen regiszterek befolyásolják a működést. Általában van példaprogram is, ahol az inicializálás módszere látható. Jelen esetben a CMCON0 maradt ki...
A hozzászólás módosítva: Jún 5, 2014
(#) don_peter válasza nedudgi hozzászólására (») Jún 5, 2014 /
 
Igen végig olvastam 5ször az adatlapot és természetesen azt is próbáltam így:

  1. CMCON0 = 0;

De átolvasom még egyszer és kipróbálom így is:
  1. CMCON0  = b00000111

Ezzel kikapcsolom az analóg comparatorokat.
A hozzászólás módosítva: Jún 5, 2014
(#) icserny válasza don_peter hozzászólására (») Jún 5, 2014 /
 
Idézet:
„Annyit még, hogy szimulátorba megy, de élesben nem.”
Hibásan van megírva a szimulátor!

Javaslatok (kezdőknek szóló topik lévén talán nem bántó):
-----------------
1. Új mikrovezérlő típusra áttérve gondosan tanulmányozzuk át az adatlapot!
2. A portok (és egyéb perifériák) leírása végén összefoglalásképp fel vannak sorolva azok a regiszterek, amelyek az adott periféria működésével kapcsolatosak. (pl. itt a PORTA esetén Table 4-1 szerint: ANSEL, CMCON0, PCON, INTCON, IOCA, OPTION_REG, PORTA, TRISA, WPUA). Ezekre nem árt odafigyelni, hülönösen ha a Power on Resetnél beálló kezdőértékek nem felelnek meg az általunk kívánt működéshez.
3. Az I/O portoknál mindig található egy kis mintapélda a port inicialzálásához. Jelen esetben az Example 4-1 programrészlet:
  1. BCF STATUS,RP0 ;Bank 0
  2. CLRF PORTA ;Init PORTA
  3. MOVLW 07h ;Set RA<2:0> to
  4. MOVWF CMCON0 ;digital I/O
  5. BSF STATUS,RP0 ;Bank 1
  6. CLRF ANSEL ;digital I/O
  7. MOVLW 0Ch ;Set RA<3:2> as inputs
  8. MOVWF TRISA ;and set RA<5:4,1:0>
  9. ;as outputs
  10. BCF STATUS,RP0 ;Bank 0


Fentiekből úgy tűnik, hogy a CMCON0 regiszter beállításáról feledkeztél meg, amibe 7-et kellene írni (lásd az adatalap Figure 8-5 ábráját!).

Magyarázat: CMCON0 alapértelmezett beállítása (POR után) = 0, ami a komparátor bemeneteket (RA0, RA1, RC0, RC1) analóg módba állítja.
(#) don_peter válasza icserny hozzászólására (») Jún 5, 2014 /
 
Köszönöm az összefoglalót, de félre értés ne essen, végig olvastam már korábban is és beállítottam a CMCON0 regisztert is természetesen, de mivel nem hozott eredményt kivettem.

Most próbálgatva a beállításokat az A0 láb jó lett, de az A1-es lábat továbbra sem tudom inputnak használni.
A CMCON0 = 7; tegnap és most sem hozott kellő eredményt.
A0 és A1-es lábakat egyszerre szeretném bemenetnek használni.
Milyen beállítást ajánlotok?
A hozzászólás módosítva: Jún 5, 2014
(#) don_peter válasza don_peter hozzászólására (») Jún 5, 2014 /
 
Köszi srácok...
Megoldódott a hiba..
Egy rohadt kis hajszálnál is vékonyabb zárlat okozta a hibát.
Fene egye meg

Köszi az instrukciókat azok is sokat segítettek.
(#) usane válasza don_peter hozzászólására (») Jún 5, 2014 /
 
Pedig már hányszor el lett mondva, hogy a szoftver előtt a herdvert kell alaposan leellenőrizni.
Hajszálnál véknyabb? Sodrott vezeték egy szála?
(#) don_peter válasza usane hozzászólására (») Jún 5, 2014 /
 
Inkább egy forraszt szilánk.
Vagy 20szor átnéztem a panelt de nem találtam meg a hibát.
Utolsó esélyként elkezdtem újra egyesével kimérni a chip lábait majd azokat egymáshoz és így kijött a gond... Tegnap hajnal egyig nézegettem
(#) or70eg hozzászólása Jún 5, 2014 /
 
Üdv. Mindenkinek!
Kaptam egy 16F628A-s és egy 16F84A-s PIC et, hogy újak, üresek.
Valóban nem volt benne sem HEX, sem 3FFF, hanem tele van minden bitje 0-val!!! (Tényleg "üres").
Próbáltam törölni, majd progit tölteni bele, de egyik sem sikerült!
Tegyem a kukába? Hálásan köszönök minden eligazítást!
(#) Pali79 válasza or70eg hozzászólására (») Jún 5, 2014 /
 
Szia! Szerintem nem rossz csak a kódvédelem be van kapcsolva, ha jól sejtem ki lehet valahogy törölni, csak most nem ugrik be, hogy hol olvastam.
(#) bbalazs_ válasza or70eg hozzászólására (») Jún 5, 2014 /
 
Eloszor probald azonositani, aztan a config biteket beolvasni. Ha Chip Erase utan sem irhato, akkor vagy az irod nem jo vagy a chip hibas, kidobhato.
Igy en a helyedben megprobalnam egy masik iroban is. eloszor.
(#) usane hozzászólása Jún 5, 2014 /
 
Hello!

Pic16F1938 Vcap lába. Kérdés, mit veszítek, ha nem teszek rá kondit, vagy mit nyerek, ha teszek rá. Adatlap szerint LDO-hoz kell, de ha jó a tápom nem sokat nyerek vele, de vesztek egy lábat.
üdv.
A hozzászólás módosítva: Jún 5, 2014
(#) or70eg hozzászólása Jún 5, 2014 /
 
Az programozó készülékem jó, mert sajnos progit. írni ugyan nem tudok, de törölni és beégetni rutin szerűen ugyan ezzel a készülékkel igen!
Segítség számomra az lenne, ha leírná valaki azt a rutint amelyikkel fel lehetne oldani a kódvédelmet-ha ugyan az a hiba és nem az, hogy rossz az IC!?
(#) nedudgi válasza or70eg hozzászólására (») Jún 5, 2014 /
 
Milyen programozó készülék?
(#) or70eg hozzászólása Jún 5, 2014 /
 
Vörös Tamás könyvében található a kapcsolási rajza és programja.
(#) Pali79 hozzászólása Jún 5, 2014 /
 
Ebben a hozzászólásban van egy program. Olyan gondom van vele, hogy az AN0 és AN1 csatornákat különböző A/D célra használnám fel, de mindkettő valamiért nem független egymástól. Ugyanúgy az akku kijelzést befolyásolja mindkettő, a PWM meg nem is igazán működik. Valaki tudna segíteni, hogy hol lehet a hiba?
(#) nedudgi válasza or70eg hozzászólására (») Jún 6, 2014 /
 
Nem volt szerencsém az említett könyvet olvasni.
(#) Pali79 válasza nedudgi hozzászólására (») Jún 6, 2014 /
 
Soros JDM programozó van benne.
(#) Hp41C válasza or70eg hozzászólására (») Jún 6, 2014 /
 
Ha JDM van benne, keress egy jó öreg PC -t, amiben még ISA multi-io kártya van MC1488 és MC1489 meghajtókkal felépített soros vonallal. Ez a programozó erre a konfigurációra volt kitalálva. MAX232 és hasonló töltéspumpás megholdásokkal nem működik. A másik megoldás a programozó átalakítás saját tápegységesre. Nézz körül Watt honlapján.
(#) SzervízMacska válasza Pali79 hozzászólására (») Jún 6, 2014 /
 
Emlékeim szerint egy soros letöltő panelocska volt benne, ami a hozzá tartozó bootloaderrel együtt életképes - már ha egy könyvről beszélünk...
(#) Pali79 válasza SzervízMacska hozzászólására (») Jún 6, 2014 /
 
Itt a kapcsolási rajza...
A hozzászólás módosítva: Jún 6, 2014

PicProg.jpg
    
(#) Pali79 válasza Pali79 hozzászólására (») Jún 6, 2014 /
 
Kicsit továbbléptem, a gondot az okozza, hogy minden ADC ugyanabba a regiszterbe teszi a végeredményt. Tehát a konverzió működik minden beállított csatornán csak mivel egy a végeredmény és minden további lépésnél ugyan az az érték van felhasználva összekeverednek a dolgok. Tehát valamit biztosan nem jól csinálok. Arra gondoltam, hogy valami apróság kimarad vagy a sorrend nem stimmel. Elméletileg ez az általam kitalált sorrend:
1. bekapcsoláskor ADCON1 beállítás, 3db A port, többi D, Vref+=Vdd, Vref-=Vss, Fosc/64 osztás
2. ADCON0 5:3 bitjével kiválasztom az AN0 csatornát
3. ADCON0 GO-val indítom a konverziót és figyelem, hogy véget ért-e
4. ADRESH-ből az eredményt kitöltési tényezőbe teszem, PWM vezérlés
5. ADCON0 5:3 bitjével kiválasztom az AN1 csatornát
6. ADCON0 GO-val indítom a konverziót és figyelem, hogy véget ért-e
7. ADRESH-ből az eredményt LCD-re írom
8. kezdem 2.-től

Tehát a jelenség az, hogy hiába az AN1 csatornán mért értéket kéne csak kiírni a kijelzőre, az AN0 csatornán mért érték ugyanúgy megjelenik a kijelzőn.

Valakinek van valami ötlete, hogy hol lehet a hiba?
(#) or70eg hozzászólása Jún 6, 2014 /
 
Üdv. Mindenkinek!
Köszönöm Pali79 kódvédelem ötletét, mert véleménye alapján beírtam a 16F84A PIC be a 3FF0 config szót ami feloldotta a kódvédelmet, töröltem és beletöltöttem egy progit. Működik!
Ez megoldódott, de a 628A PIC nél sajnos nem jött be, bár milyen config szót akarok beírni, mind „invalid”. Az égető valóban a közölt rajz szerinti. Itt a fotó.
http://kepfeltoltes.hu/view/140606/PICT0003_www.kepfeltoltes.hu_.jpgBővebben: Linkhttp://kepfeltoltes.hu/view/140606/PICT0003_www.kepfe...u_.jpg
(#) Hp41C válasza or70eg hozzászólására (») Jún 6, 2014 /
 
A kulcs a törlés (Bulk erase memory), de a 16F628(A) -nak a végrehajtásáhon minimum 4.7V tápfeszültség kell.
(#) kistee válasza Pali79 hozzászólására (») Jún 6, 2014 /
 
Szia,

Nekem is volt ilyen gondom, valahol a neten találtam meg a megoldást. Én CCS-C-ben írtam, de az elv talán érthető: késleltetés kell az egyes csatornák kiolvasása után.

  1. while(1)
  2.    
  3.    {
  4.    
  5.    setup_adc(ADC_CLOCK_INTERNAL);
  6.    set_adc_channel(0);
  7.    delay_ms(2);
  8.    val1 = read_adc();
  9.    delay_cycles(20);
  10.    sp=val1;
  11.  
  12.        
  13.    setup_adc(ADC_CLOCK_INTERNAL);
  14.    set_adc_channel(1);
  15.     delay_ms(2);
  16.    val2 = read_adc();
  17.    delay_cycles(20);
  18.    pv=val2;


Ha ez nem hozna megoldást, van még egy lehetőség. Ha a bemeneten potik vannak, akkor a csúszka és a test közé tett (esetleges) kondik is okozhatják. Bár nem tudom, hogyan, de kiszedve az "szűrő" elkókat megjavult a dolog.

Csak egy tipp volt, hátha bejön...

Üdv,
(#) Pali79 válasza kistee hozzászólására (») Jún 6, 2014 /
 
Köszönöm! Este megpróbálom!
Következő: »»   533 / 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