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   195 / 1211
(#) Hp41C válasza kiskata hozzászólására (») Jan 10, 2012 /
 
Vagy próbáld meg ezt betölteni...

alap2mod.hex
    
(#) kiskata válasza Hp41C hozzászólására (») Jan 10, 2012 /
 
ugyanaz...
... Elég szomorú vagyok de nem adom fel.

proba.jpg
    
(#) kiskata válasza nedudgi hozzászólására (») Jan 10, 2012 /
 
Itt kellene beállítanom?

proba2.jpg
    
(#) nedudgi válasza kiskata hozzászólására (») Jan 10, 2012 /
 
Igen. Kicsit fapados megoldás, de működnie kell.
Természesen először a hex fájlt be kell tölteni, configbitek módosítása, égetés.
(#) kiskata válasza nedudgi hozzászólására (») Jan 10, 2012 /
 
Most már azt kellene csak megfejtenem hogy a Flowcode-ból kijövö adatokat...
0x300000,0x2e
0x300001,0x3
0x300002,0xc0
0x300003,0xf
0x300004,0x0
0x300005,0x3
0x300006,0x0
0x300007,0x0
hogyan pipálgatom ide be...
...vagy egyszerűbb átírni a címeket a fenti listában? és akkor oda teszi a config bitet?

biztos bugyuta kérdések
(#) nedudgi válasza kiskata hozzászólására (») Jan 10, 2012 / 1
 
A CONFIG1 a 3000 és 3001, stb. Szerintem, mert én meg nem próbáltam.
(#) Hp41C válasza kiskata hozzászólására (») Jan 10, 2012 / 1
 
Hát ehhez mit szól...

alap2mod2.hex
    
(#) kiskata válasza Hp41C hozzászólására (») Jan 10, 2012 /
 
Ez ok beimportálja...
Mit, hol, hogyan, miért, áááááááá....
(#) Hp41C válasza kiskata hozzászólására (») Jan 10, 2012 /
 
A kulcs a következő sor:
Idézet:
„:067FF8002E03C50F00037B”

Ez a sor a konfigurációs adatokat a 7FF8 címtől kezdve tölti be. Az eredeti alap2.hex utolsó előtti két sorát kell kitörölni és a helyére betenni az idézett sort. Azaz
  1. :020000040030CA
  2. :0E0000002E03C50F00030000FFFFFFFFFFFFF0
  3. :00000001FF

helyett
  1. :067FF8002E03C50F00037B
  2. :00000001FF
(#) Geldrin hozzászólása Jan 10, 2012 /
 
Üdv!
Írtam egy vezérlőprogramot assembly-ben PIC16F628A-ra. Egy unipoláris lépetőmotort szeretnék vezérelni vele az RB0-RB3 portokon, fél-léptetéses üzemmódban.
Tehát a kimenet valahogy így nézki:
  1. RB0 RB1 RB2 RB3
  2. 1   0   0   0
  3. 1   1   0   0
  4. 0   1   0   0
  5. 0   1   1   0
  6. 0   0   1   0
  7. 0   0   1   1
  8. 0   0   0   1
  9. 1   0   0   1

A program lényege, hogy a léptetéseket a Timer0 megszakításaival időzítem, amihez a uC belső oszcillátorát szeretném használni. A kód még kezdeti szakaszban van, de MPLAB-ban le tudtam tesztelni Logic Analyzerben, és ott jónak tűnnek a jelszintek (RB0_RB3.jpg).
Csatoltam az ASM fájlt is (stepper.asm)

Ezután fogtam magam és megépítettem prototípus panelre a dolgot, a B0-B3 pin-ekre ledeket tettem, hogy látható legyen az eredmény. (stepper-rel majd később szeretném kipróbálni)

A problémám az volna, hogy ha pickit2-vel felprogramozom a uP-t, akkor nem csinál semmit. (próbáltam szimplán 0xFF-et írni a PORTB-re az működött)
Mi lehet akkor a baj? Valamit elszúrtam a konfiggal?
(#) Hp41C válasza Geldrin hozzászólására (») Jan 10, 2012 /
 
Szia!

Elég hiányos a programod.... A megszakítási rutin elejéről hiányzik a regiszterek mentése, a végéről a visszaállítása. Szerencsédre a főprogram (még) nem érzékeny erre a hiányosságra. A megszakítási rutinnak (a visszaállítás miatt) csak egy kijárata (retfie) legyen.

A megszakítási rutin lefutásakor állítsd be (a mentés közben vagy a végén) a bankot, amit használni szeretnél. Most az első megszakításkérés kiszolgálásakor a fázis változót nem a jó bank -ból ellenőrzi.

Ötlet: Az irány változóban +1 a Forward, -1 a Backward -ot jelentse. Ekkor a 7 bit tesztelésével is lehet vizsgálni az irányt (1 lesz a Backward), és az irány változó egyszerűen hozzáadható a fázishoz. A fázisnál sem kell azt a sok feltételt kiértékelni, hanem az összeadás alsó 4 bitjét kell megtartani (andlw 0x0F).

Majdnem elfelejtettem: Az MpLab ablakában felül, középen a Debug feliratot állítsd Release -re.
(#) silent15 hozzászólása Jan 10, 2012 /
 
Valaki tudna segíteni ;
Ugye , még nemnagyon értek a PIC -ekhez
és van egy 18f4520 -as chipem Dip40-es tokozásban és néztem az adatlapját , de nem tiszta , most van benne 40Mhz kristály vagy anyival működhet , vagy nemértem. Ugye van a Flowcode , abban csináltam néhány programot a chipre amin a 6-7 -es lábat (A4-5) és ha most oda kéne kötnöm egy kristályt , akkor átkéne írnom a programot most valaki kérem magyarázza ezt el.

Köszönettel: Silent15
(#) janikukac hozzászólása Jan 10, 2012 /
 
Heló!

Nagy előrelátásban van a PIC programozásának megtanulása C nyelven. Ennek érdekében az 1. 2 legnagyobb lépést megtettem: Megszereztem Kónya-Kopják " PIC programozás C nyelven " c. könyvét, illetve már csak össze kellene forrasztanom a PIC fejlesztőmet. A könyvben már elolvastam 30 oldalt, de tele van ismeretlen dolgokkal, amire külön nem tér ki.
Pontosan mit ajánlanátok Ti, már profik, pontosan akkor hogyan is kezdjem???

Programozási ismereteim oda nyúlnak vissza, hogy BASIC-ben csináltam "digitront" ami össze tudott adni, meg kivonni, kb 3-4 éve. 5 éve tanulok informatikát. Írtam Vicsys leckéjei alapján egy saját programot C-ben, és ennyi...

Üdv!
(#) speedbump válasza silent15 hozzászólására (») Jan 10, 2012 /
 
Szia,

nincs benne 40MHz-es kristály, ahogy az adatlapját nézem a belső órajel max. 8MHz-es. Ha ennél nagyobb frekin szeretnéd üzemelteti, akkor külső oszcillátor kell. Ha azokat a lábakat már használod akkor kaka, valóban át kell írnod a programot.
(#) Hp41C válasza silent15 hozzászólására (») Jan 10, 2012 /
 
Nincs benne 40MHz quartz, nem is kell neki... Egy 10 MHz quartz kell a 13. és 14. lábakra (22pF kondenzátorokkal a földre) és HSPLL oszcillátor beállítás.
(#) speedbump válasza janikukac hozzászólására (») Jan 10, 2012 /
 
Szia,

ITT egy jó anyag a PIC-ekről. Én hitech c-ben programozom aminek a fordítója az MPLAB-ben alapból benne van. Eddig csak jót tudok mondani róla, bár az igaz, hogy az alapoknál járok (ADC, interrupt, digitális IO, TMR stb)

Ha kell akkor tudok küldeni példaprogramokat, amiket én írtam 16f887-re.
(#) janikukac válasza speedbump hozzászólására (») Jan 10, 2012 /
 
Köszönöm !

Nagyon tetszik, mert a másik demopanelomon is 16F887 van, tehát jó lenne, de : nem tudok angolul nagyon. Ez angolul nem menne. Azért van a könyvem magyarul, majd abból ...
(#) silent15 válasza speedbump hozzászólására (») Jan 10, 2012 /
 
Ok akkor majd szerintem használok vagy 10 vayg 20 Mhz -est és biztos újra kell írnom a programot , ugyanis A-C portig mindent használok De majd az egyiket párt átrakom a D portra.
Ha flowcode-ban beálítom a kristály-t , akkor elvileg átrakja ,magát a jó beálításra ugye?
(#) silent15 válasza silent15 hozzászólására (») Jan 10, 2012 /
 
Lenne mégegy kérdésem; A 100nf kerámia kondik hány voltosak legyenek?
(#) speedbump válasza silent15 hozzászólására (») Jan 10, 2012 /
 
Nem ismerem a flow code-ot. Hp41C kolléga kommentje alapján megnéztem az általad használt PIC adatlapját (csak belső oszcillátor részt olvastam el előtte). Nem a 6-7-es láb az oszcillátor bemenet hanem a 13-14 (RA7 és RA6). (Bár lehet, hogy te is erre akartál utalni.)
(#) nedudgi válasza silent15 hozzászólására (») Jan 11, 2012 /
 
16-20 voltot írnak az adatlapok.
(#) zsoltee0001 hozzászólása Jan 11, 2012 /
 
Sziasztok
16F628A-t akarok használni 3,3V-ról.
PK2-be "use lvp mode entry" bejelölve, PGM láb AUX-ra bekötve.
Olvassa is írja is, ok.
Csakhogy 4,1 V alatt nem fut, holott adatlapja szerint:
"Wide operating voltage range. (2.0 - 5.5V)"
Valami baja lehet?
Mondjuk az már feltűnt, hogy belső oszciról se megy, de ez a kisebbik gond.
Ötlete valakinek?

Üdv
(#) potyo válasza zsoltee0001 hozzászólására (») Jan 11, 2012 /
 
Adatlap 136-os oldalát nézd meg.
(#) zsoltee0001 válasza potyo hozzászólására (») Jan 11, 2012 /
 
De akkor ennek a kapcsolásnak a létjogosultságát nem értem :Bővebben: Link
(#) Hp41C válasza zsoltee0001 hozzászólására (») Jan 11, 2012 /
 
Az adatlap 135. oldala alapján kapcsold ki a BOR -t és 10MHz alatt használd...
(#) lokátoros válasza zsoltee0001 hozzászólására (») Jan 11, 2012 /
 
Ez is érdekes:

Adatlap Table 17-1:

Vdd for Read: Vmin - 5,5V
Vdd for Write: Vmin - 5,5V
Flash Block Erase: 4,5V - 5,5V

Vagyis lehet olvasni és írni 3,3V-on (egyszer), de törölni csak 5V-on. Vicces.
(#) Hp41C válasza lokátoros hozzászólására (») Jan 11, 2012 /
 
Sok JDM féle programozónak ezért van problémája az újraprogramozásával...
(#) icserny válasza zsoltee0001 hozzászólására (») Jan 11, 2012 /
 
10 MHz-ig 3.0 V-os feszültséggel is működnie kell. Ha nem fut a program, akkor az lehet a baj, hogy nincs letiltva az LVP, az RB4 lábat pedig lebegni hagyod, s véletlenszerűen programozási módba vált.

Ha úgyis PICKIT2 programozót használsz, akkor fölösleg a Low Voltage Programming.
(#) zsoltee0001 válasza Hp41C hozzászólására (») Jan 11, 2012 /
 
A BOD kikapcsolása eredményt hozott. Köszi
(#) zsoltee0001 válasza icserny hozzászólására (») Jan 11, 2012 /
 
Idézet:
„Ha nem fut a program, akkor az lehet a baj, hogy nincs letiltva az LVP”

Mármint, hogy engedélyezni kell
Következő: »»   195 / 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