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   391 / 1210
(#) Hp41C válasza cross51 hozzászólására (») Márc 29, 2013 /
 
Szia!
Valóban nem ott van a hiba. Állítsd be az MpLab szimulátorát nyomkövetőnek, tegyél töréspontot az IDO rutinra. Nézd meg hogyan számol a DECFSZ 1, 1 utasítás.
A beállított bank a bank2, az 0x01 cím az INDF1 címe. Ez a regiszter az indirekt címzéshez való...

Tilos az ilyen forma használata: DECFSZ 1, 1

A következő programrésztettel foglalj egy változót az IDO rutinhoz:
  1. cblock 0x20
  2. Temp
  3. endc

Az ido rutint írt át:
  1. IDO:
  2.         banksel Temp
  3.         MOVLW   D'255'
  4. IDOHurok
  5.         MOVWF   Temp
  6.         DECFSZ  Temp, f
  7.         GOTO    IDOhurok
  8.         RETURN
(#) Sasmadár válasza Hp41C hozzászólására (») Márc 29, 2013 /
 
Szia!
IDOHurok nem végtelen ciklus így?
(#) cross51 válasza Hp41C hozzászólására (») Márc 29, 2013 /
 
Nem tudom Hp41C így se úgyse működik lehet hogy ebből marad az eletrótanár
(#) Hp41C válasza Sasmadár hozzászólására (») Márc 29, 2013 /
 
Sajnos az IDOHurok - a nagy sietségben - egy utasítással feljebb került, mint szerettem volna:
  1. IDO:
  2.             banksel Temp
  3.             MOVLW   D'255'
  4.             MOVWF   Temp
  5.     IDOHurok
  6.             DECFSZ  Temp, f
  7.             GOTO    IDOhurok
  8.             RETURN
(#) Hp41C válasza cross51 hozzászólására (») Márc 29, 2013 /
 
Szia!
Beállítottad, amit írtam??? Nálam már vezérli a PORTB bitjeit...
A hozzászólás módosítva: Márc 29, 2013

a.asm
    
(#) cross51 válasza Hp41C hozzászólására (») Márc 29, 2013 /
 
Villogni nem villog de kisebb feszt mérek rajta ugy hogy az villogásnak tekintem én be írtam de nem volt jó de így már működik köszi.
(#) Sasmadár válasza cross51 hozzászólására (») Márc 29, 2013 /
 
Szia!
Villog, csak túl gyorsan. Ha jól számoltam körülbelül 15Hz-el. Ha lassabb villogást szeretnél
még egy változóval megnövelheted az IDO: szubrutinbam töltött időt.
(#) cross51 válasza Sasmadár hozzászólására (») Márc 29, 2013 /
 
A sebbeség mindegy van hozzá számoló progim de átirtam úgy hogy villogjon csak a kezdő löket nem volt meg.
(#) anemo hozzászólása Márc 29, 2013 /
 
Sziasztok!

Elkészítettem eléggé nagy vonalakban a napokban tárgyalt shift regiszteres kapcsolás rajzát. Ha jól értelmeztem a leírásaitokat, akkor valami hasonlónak kell lennie a ténylegesnek is: az izzók TPIC-jeit az adatvonalon sorosan kötöttem, a többi vezérlő a buszra csatlakozik. Az N-ik TPIC SER-OUT kimenetét visszavezetem a PIC-be, hogy ellenőrizhessem a bitsorozatot. Ha rendben, akkor az RCK-t engedélyezem. Ugye ezzel a megoldással ha egy izzót is változtatni akarok, az összes vezérlőbitjét kiküldöm.

A nyomógombokhoz külön buszvezetéket és órát használok. Itt az óra folyamatosan fut. Ha lenyomok egy gombot, akkor azt a PIC-be érkező bitsorozatban látni fogom. A pergésmentesítést a PIC-ben intézném.

Meghagytam PIC-ben a 4550-est, mert a későbbiekben még a zavaráramkörök zümmerjeit és egyéb egységeket közvetlenül a PIC-ből vezérelnék, ezért nem árt a több láb. A PIC kapcsolása még nem végleges persze, mert bootloader-ben szeretném használni majd.

(A rajzban az izzók helyett led-ek vannak, de ugye a valóságban 24V-os izzók lesznek)
A hozzászólás módosítva: Márc 29, 2013

isispic.jpg
    
(#) Hp41C válasza anemo hozzászólására (») Márc 29, 2013 /
 
Szia!
Idézet:
„Az N-ik TPIC SER-OUT kimenetét visszavezetem a PIC-be, hogy ellenőrizhessem a bitsorozatot.”

Ha az aktuálisat kilépteted, az előző adatot lépteti be a kontrollerbe...
A gombokhoz felhúzó ellenállást kell tenni esetleg ellenálláslétrát lehet felhasználni.
Tegyél minden IC -hez 100nF tápszűrő kerámia kondenzátort, a pichez mindkét oldalra.
(#) anemo válasza Hp41C hozzászólására (») Márc 29, 2013 /
 
Idézet:
„Ha az aktuálisat kilépteted, az előző adatot lépteti be a kontrollerbe...”


Igazad van. Akkor hogy tudnám ezt leellenőrizni? vagy egyáltalán van értelme visszavezetnem?

A nyomógombokat akkor rárakom egy 10k-s ellenálláshálóra.
(#) dannu hozzászólása Márc 29, 2013 /
 
Hali valaki tudna ehhez egy kapcsolási rajzot adni a kijelző része érdekelne találtam itthon egy ilyen picket és érdekelne elég csak kapcsolási rajz nyákot meg csinálom én
Bővebben: Link
(#) BarnaPili válasza dannu hozzászólására (») Márc 29, 2013 /
 
A PIC-be égetendő szoftver is rendelkezésre áll?
(#) Beles hozzászólása Márc 29, 2013 /
 
Hali!
Valaki tud valami jó leírást, vagy el tudja mondani mi is pontosan a c18 fordítónál az LKR file?
USB bootloadert használok, és szeretnék megszakítást használni, nemtudom, hogy kell-e a linkerscriptben módosítani valamit. Meg jó lenne amúgy is, ha pontosan tudnám mire jó az.
(#) icserny válasza anemo hozzászólására (») Márc 29, 2013 /
 
Idézet:
„Akkor hogy tudnám ezt leellenőrizni?”
Kétszer kergeted körbe az adatokat...
(#) icserny válasza Beles hozzászólására (») Márc 29, 2013 /
 
Idézet:
„mi is pontosan a c18 fordítónál az LKR file?”
Elmondja a linkernek, hogy milyen .lib óllományokban keresse a hivatkozott könyvtári függvényeket. Elmondja azt is, hogy hol és milyen memória szegmensek állnak rendelkezésre. USB bootloaderhez (pl. HID bootloader) a gyári mintapéldákban található linker állományt kell használni. Ezen kívül a Reset és interrupt vektorokat is át kell helyezni a gyári mintaalkalmazásokban látható módon.

A gyári mintapéldák a microchip.com/MAL címről letölthető Microchip Applications Library csomagban találhatók.
(#) bbalazs_ válasza anemo hozzászólására (») Márc 29, 2013 /
 
Ha jol lattam, azert valasztottad a 4550-est, mert a kommunikacio USB-s lesz.
Akkor viszont ne hasznald el ezeket a portokat! (D-/D+)
(#) Beles válasza icserny hozzászólására (») Márc 30, 2013 /
 
Köszi, megnézem!
(#) Beles válasza Beles hozzászólására (») Márc 30, 2013 /
 
Nos a bootloaderben van egy ilyen rész:
  1. /** V E C T O R  R E M A P P I N G *******************************************/
  2. #pragma code high_vector=0x08
  3. void interrupt_at_high_vector(void)
  4. {
  5.     _asm goto 0x1008 _endasm
  6. }
  7. #pragma code low_vector=0x18
  8. void interrupt_at_low_vector(void)
  9. {
  10.     _asm goto 0x1018 _endasm
  11. }
  12. #pragma code


Akkor a saját programomba ezt kell beletegyem? ( Csak High interruptom van)
  1. void InterruptHandlerHigh (void);
  2.  
  3. #pragma code InterruptVectorHigh = 0x1008
  4. void InterruptVectorHigh (void)
  5. {
  6.   _asm
  7.     goto InterruptHandlerHigh
  8.   _endasm
  9. }
  10. #pragma code
  11.  
  12.  
  13. #pragma interrupt InterruptHandlerHigh         
  14. void InterruptHandlerHigh ()
  15. {
  16.       //Ide az interrupt lekezelő részt
  17. }
(#) icserny válasza Beles hozzászólására (») Márc 30, 2013 /
 
A saját programodban a 0x1000 címre el kell helyezni egy RESET vektort is, különben nem tud elindulni a programod!

  1. #pragma code REMAPPED_RESET_VECTOR = 0x1000
  2.         void _reset (void)
  3.         {
  4.             _asm goto _startup _endasm
  5.         }
A hozzászólás módosítva: Márc 30, 2013
(#) Beles válasza icserny hozzászólására (») Márc 30, 2013 /
 
Ez benne van, csak a megszakítás nem megy. A microchip CDC firmware-t próbálom átírni! De akkor elvileg jó, amit írtam?
(#) pjg hozzászólása Márc 30, 2013 /
 
Pic programozó 1993-ból. A kezelő szoftvert még keresem hozzá.
A hozzászólás módosítva: Márc 30, 2013

Parallax.jpg
    
(#) icserny válasza Beles hozzászólására (») Márc 30, 2013 /
 
Idézet:
„A microchip CDC firmware-t próbálom átírni!”
Indulj ki a gyári demóból, és egy lépésben csak keveset változtass rajta!
(#) Beles válasza icserny hozzászólására (») Márc 30, 2013 /
 
Működik a CDC, AD értékét beolvasom, ledet kapcsolgatok, PWM-et szabályozok stb. Csak I2C-vel szeretnék kiolvasni egy DS1627-es hőmérőt, és a mért értéket PC-re továbbítani. Mivel a CDC nem megszakítással van írva, ezért az I2C-t arra írtam, hogy ne haljon le az USB, ha gáz van az I2C-vel. Az I2C egyébként működik bootloader nélkül, meg CDC nélkül, csak a 3-at együtt nem sikerül összehozni!
(#) icserny válasza Beles hozzászólására (») Márc 30, 2013 /
 
Idézet:
„Mivel a CDC nem megszakítással van írva”
Miből jutottál erre a helytelen következtetésre? A Microchip demóinál már elég régóta alapértelmezett a megszakítás.
(#define USB_INTERRUPT definíció az usb_config.h)
(#) Beles válasza icserny hozzászólására (») Márc 30, 2013 /
 
Mi az az elég rég? Nincs is usb_config.h-m, hanem usbcfg.h van. Abban viszont nincs ilyen sor. Egyébként onnan, hogy mikor nem megszakítással írtam bele I2C-t, akkor mikor végtelen ciklusba került a program, megszakadt az USB kapcsolat. Egyébként a cikkek között található PIC USB CDC firmware-t használom.
A hozzászólás módosítva: Márc 30, 2013
(#) anemo hozzászólása Márc 30, 2013 /
 
Sziasztok!

Köszönöm a javításokat, azok alapján módosítottam a rajzot, remélhetőleg így már jó lesz. A PIC-hez már a bootloader kapcsolást csináltam. Az IC-k és az USB is csillagföldelésen van. Egyelőre a TPIC-eket külön csillagoztam, mert lehet külön-külön lesz táp az 5 és 24V-ra, még nem tudom. Az egyéb földeléseket meg a szokásos módon kötném.
Beraktam a tápszűrőket (PIC-nél akk mindkét oldalon lesz) és a nyomógombok felhúzó ellenállásait.

isispic.jpg
    
(#) Hp41C válasza anemo hozzászólására (») Márc 30, 2013 /
 
Szia!

Így a szerencsétlen USB kapcsolat is ellátja árammal az egész áramkört. Jobb lenne az USB +5V -ját csak a kapcsolat detektálására használni. Az USB +5V és a föld közé 2k7, az USB +5V -ot egy PIC bemenetre kötni 100k ellenállással.
(#) icserny válasza Beles hozzászólására (») Márc 30, 2013 /
 
Idézet:
„Mi az az elég rég?”
Kb. 4 éve.
Idézet:
„a cikkek között található PIC USB CDC firmware-t használom.”
Én a Microchip honlapjáról letölthető mintapéldákat ajánlom. Például az USB Device - CDC Basic Demo Firmware mappájában találhatót.

Én is ebből a mintapéldából indultam ki (igaz, a kb. 3 évvel ezelőtti kiadásából), s ezt használom a PICCOLO projekt című PIC18F14K50 és PIC18F4550 tananyagomban. Az I2C fejezetben találsz olyan mintapéldát, amelyikben az I2C, az USB és a HID bootloader egyaránt használatban van.
A hozzászólás módosítva: Márc 30, 2013
(#) Beles válasza icserny hozzászólására (») Márc 30, 2013 /
 
Nézegettem már az oldalad! Fogom is még!
Viszont megtaláltam a hibát! Nem másoltam át rendesen az interrupt inicializáló részt basszus a működő projektemből a CDC projektben, a PIE regiszter beállítás kimaradt, nem tudom hogy hagytam ki De mostmár működik! Nem jól kerestem a hibát, de hála a debugernek rájöttem
Majd szeretnék egy saját HID eszközt is, ha egyszer eljutok olyan tudásig. Lasershow-hoz szeretnék egy saját DAC-ot építeni, USB-set, nem lesz egyszerű asszem, biztos kell majd segítséget kérnem!
Kösszi a segítséget!
Következő: »»   391 / 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