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   211 / 1211
(#) kissi válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
A file menüben próbáld meg exportálni (úgy hozzáteszi a config beállításokat is )!

Steve
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
Szia!

Project / Build options / Project menüben az MPASM Assembler fülön az Output beállítások között INHX32 -t kell kiválasztani.

INHX32.JPG
    
(#) n_yálastrubadúr válasza kissi hozzászólására (») Feb 17, 2012 /
 
Ezt így szoktam.
Nemtudom mit lehet variálni, de a 8.56-os mplabon nemvolt ilyen anno. Most a 8.83-as van. Hol lehet még hiba. Mert amit HP küldött az nem írja a pickit2 a sárga lapot.
(#) El_Pinyo válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
Az MPLAB Configure/Configuration Bits menüpontban be van pipálva a check box, hogy Configuration set in code?
Lásd melléklet.
(#) n_yálastrubadúr hozzászólása Feb 17, 2012 /
 
Igen. Tudom paréjság de valaki egy portb villogtató asm-et írna? Nagyon megköszönném.

4.JPG
    
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
Erre gondoltál?
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 17, 2012 /
 
Tapasztalatok: Amit írtál, az semmit sem csinál, de lehet mert az én programom és szr alapból DE a lefordított hex fájl NEM írja ki a warning agyszaggató marhaságot. Tehát az Mplab a ludas!!!! Most micsináljak??
(#) n_yálastrubadúr válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
oké üssetek! újraindítottam a gépet és lám megy..
(#) n_yálastrubadúr hozzászólása Feb 17, 2012 /
 
Már jó lett a pickit. De ezzel a piccel anno is bajom volt. Csak egy sima portok bekapcsolása lenne a cél. De nem megy Megnéznétek mi a baj?

servo.asm
    
(#) n_yálastrubadúr válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
Meglett. És ha az általános regiszterimhez szólok akkor is kell hogy BANKSEL XY?
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 17, 2012 /
 
Szia!

Állítsd be az MpLab SIM -et debuggernek, fordítsd újra, nyisd meg a Watch ablakot, vedd fel a PORTA és PORTB regisztereket. Ha lépésenként hajtod végre a programot, láthatod miként változnak...
(#) szdani hozzászólása Feb 18, 2012 /
 
Sziasztok!
tudom hogy ki van írva hogy kerülendő a soros portos programozás, de nekem nem kéne hosszú távra komolyabb programozó egy PIC16F874-041P-t szeretnék felprogramozni, nekem egy olcsó programozó kéne, ha a JDM-et összekötöm egy FT232RL-el akkor az úgy működhet?, vagy van egy LPT portos programozóm is annak kell 12V is. Ezen az oldalon található LPT-portos égetőt építettem meg. Valaki tudna segíteni hogy melyik lenne jobb?
(#) pajti2 hozzászólása Feb 18, 2012 /
 
Olyan projectről hallott már valaki, hogy pc 1.44 floppy vezérlőt (82077aa vagy kompatibilis esetleg emulált) kötni pic-hez? Floppy szimulátort már találtam, de én floppy controllert keresek.
(#) Hp41C válasza pajti2 hozzászólására (») Feb 18, 2012 /
 
Szia!

A kötött időzítés (1MByte/s) miatt a kezelésüket DMA vezérlővel velő együttműködésre tervezték. Végül is egy Sinclair Spectrummal (3.5 MHz Z80A) meg lehetett oldani a WD1793 kezelését programozottan, de nagyon kellett számítani az utasítások idejét. A Z80 -on volt OUTI, INI, ami a memória címet is mozgatta, és legrövidebb feltételes utasítást kellett használni (ret z), ha a feltétel összejött, az idő már nem volt kritikus.
Egy 40MHz 18F kontrollerrel meg lehet próbálni...
(#) pajti2 válasza Hp41C hozzászólására (») Feb 18, 2012 /
 

Igazából az jutott eszembe, hogy ha van egy project valahol műhelyben, talán berendelhetően elkészítve is prototípus darabok formájában, azt szívesebben vásárolnám meg, mint fejleszteném ki / gyártanám le saját magam.

Azon is filoztam, hogy egy régi 486-os gépet egészben valami programmal távvezérelni (pld a két irányú printer porton keresztül), és azzal kezelni a floppyt, de akkor a távvezérlő programot is külön meg kell írni a PC-re is, és a helyet is foglalja a gépház. Vagy még plussz helyet adok egy monitor + billentyűzetnek is, ami egyben meg már sok. Mármint helyfoglalási szempontból.

Eszembe jutottak az embedded pc-k is, de azokon meg nincs floppy 34 pin csatlakozó.

Szóval gondban vagyok mindenhogyan. Ha más nincs, marad a valahonnan bugázott ősrégi 486-os gép, de jobban örülnék valami handybb megoldásnak. Ezért filoztam el rajta, hátha valaki kötött már hozzá 82077AA-t pic-hez.

Egyébként az a sebesség floppy oldalon csak 1Mbit/s (nem byte), és ez is csak a 2.88-as floppynál, mert 1.44-nél csak a fele (2 uSec / 1 bit sebesség). Szerintem egy 40MHz-es pic-el ezt akár programozott módban is meg lehetne valósítani - ha lenne róla normális dokumentáció, mint ahogy olyat sem találtam. Van a 82077AA, és definíció szerint használja azt mindenki, a többit pedig felejtse el. Ennyit találtam összesen.
(#) Hp41C válasza pajti2 hozzászólására (») Feb 18, 2012 /
 
Szia!

Nem temetném a többieket. A L@mex -nél a WD1793 10.5 Ft + Áfa és dip40 tokban van, amit könnyebb beforrasztani, huzalozni. Ezenkívül könnyebb a státuszát kiolvasni... Anno 2000 Ft -ot fizettem érte, azaz 74 kg cukor árát.

Vannak USB -s floppy egységek is.
(#) c27 hozzászólása Feb 18, 2012 /
 
Sziasztok.
Lenne egy kérdésem nem nagyon vagyok még benne ebbe a pic programozásba, főleg még az általam használt pic felépítését nem értem 100%-ig, de talán a kérdésemben meglesz a hiányzó rész.
Szóval egy 16f876-os picen kéne 2db táblázatot kezelni az egyik 200 elemű (elképzelhető, hogy fel lesz bővítve 250-re) illetve egy 100 eleműt kell letárolni. Van 2db sorszám hol az egyik táblázatnak kell az adatait beolvasni hol a másiknak a w-be betöltöm a táblázat megfelelő elemszámát meghívom a táblázatot és a ADDWF PCL,F utasítással az adott helyre ugrik és betölti a w-be az értéket. Na a gondom az, hogy két független táblázat van és össze-vissza kell hivogatni őket és valamiért néha összeakadnak. Jobban mondva hiába hívom meg az egyiket átugrik a másikhoz. További kérdés, hogy milyen címtől tároljam ezeket az adatokat, hogy ne kelljen ugrálni vagy ha kell, hogy tudom megadni, hogy melyik táblázat hol van?
(#) Hp41C válasza c27 hozzászólására (») Feb 18, 2012 /
 
Szia!

A cikk végét olvasd el. Bárhogyan elhelyezkedhet a táblázat, ha egy két többlet utasítással felkészíted a programot nagyobb táblázat kezelésere. Elég egy addwf PCL,f utasítás az egész programba. Mielőtt rá adnád a vezérlést a PCLATH regisztert kell jól feltölteni... Állítsd be az MpLab SIM -et debuggernek és szimuláld le az ugrásokat.
(#) pajti2 válasza Hp41C hozzászólására (») Feb 18, 2012 /
 
Köszönöm a tippet, természetesen megnéztem a WD chipet, de PC floppy-t kell kezelni, és ahhoz ez nem jó.



Más.

Nem mintha ez itt a reklám helye lenne, de véletlen beleütköztem egy ilyenbe:

nvSRAM

Először azt hittem, hogy ez valami kondenzátorból kiképezett akkumulátorra rábiggyesztett SRAM, aminek a tartalma addig tart, amíg a kondenzátorban a töltés, de az adatlapja szerint nincs ilyen bibi. Azt írják, hogy SRAM-ként használhatom (azzal a sebességgel írható / olvasható végtelen sokszor), és amikor megy elfele a tápfesz, akkor egy kicsike külső kondenzátor (adatlap szerint tipikusan 150 uF) energiája elegendő hozzá, hogy átírja az adatokat nem felejtő tárolóba. Ami ahhoz képest furcsa, hogy pld a flash tárolók irgalmatlan löket áramot szoktak kajálni, és nem is két pillanatig tart az átírás.

Van ebben valami huncutság? Vagy tényleg van olyan jó, mint amilyennek írják? Valaki esetleg mérkőzött már vele testközelből?
(#) c27 válasza Hp41C hozzászólására (») Feb 18, 2012 /
 
Amíg egy tábla volt megoldható volt az egész:
ORG0X0700
TABLA
BSFPCLATH,0
BSFPCLATH,1
BSFPCLATH,2
ADDWFPCL,F
(adatok.............)
Bár most már kezdem kapizsgálni a dolgot, hogy elolvastam a cikket, de ha mondjuk az egyik táblát meghagyom így a másikat meg átteszem 0x0800-ra akkor a mire kell állítani a pclath-et? Illetve hogy fog visszaállni az előző állapotra? Ezek még nem világosak egészen.
(#) Hp41C válasza c27 hozzászólására (») Feb 18, 2012 /
 
Szia!

Ha 0x0700 -on kezdődő táblánál 0x07 -re kellett állítani, akkor 0x0800 -on kezdődőnél 0x08 -ra. Vigyázz, az már másik Page, a visszatérés után közvetlenül a PCLATH -t a hivó lapjára kell állítani. Ha egyszerűbbet szeretnél, akkor tedd a második táblázatot 0x0600 -ra.
(#) trudnai válasza c27 hozzászólására (») Feb 19, 2012 /
 
Szia,

PCLATH-t BSF/BCF -el ne manipulald, az ugy csak ganyolas. Ha jol megnezed Hp41C cikket (amit be is linkelt neked), akkor ott a 4. oldal aljan van egy pelda Azt kell kovetned, ill ha csak 8 bites az indexed akkor a legelso utasitas (movf index_h,w) nem kell oda es a masodik utasitasnak az addlw helyett movlw kell legyen ertelem szeruen...
(#) Black King hozzászólása Feb 19, 2012 /
 
Sziasztok!

meg építettem egy nagyon egyszerű égető áramkört(LPT-s Vpp-s(HVP) programozó), úgy néz ki sikerült is majdnem mindent megcsinálni. De amikor leellenőriztem azt írta a konfigurációs szó a PICben nem azonos a beégetendővel, ez mit jelent ettől még fog működni? (a többi mind sikerült EEPROM, flash, ID loc egyezik és a pic egy 12f629es)

ez az égető:Bővebben: Link

előre is köszönöm a segítségeteket
(#) Hp41C válasza Black King hozzászólására (») Feb 19, 2012 /
 
Szia!

Mégis miben tér el? Lehet, hogy csak a meg nem valósított biteken olvastál ki mást, mint amit beprogramoztál...
(#) c27 válasza trudnai hozzászólására (») Feb 19, 2012 /
 
Helló.
Tehát magyarul közvetlenül adjam meg a pclath címét?
Pl. 0x0600 esetén
movlw d'6'
movwf pclath
elvileg a bsf-el is jó nem?
bsf pclath,1
bsf pclath,2 maximum elegánsabb valószínűleg erre céloztál ugye?

Viszont van még egy gondom kellene egy 16 bites számot egy 8 bitessel összeszorozni a 16 bites az egy konstans érték lenne a 8 bites mindig változik.
Eddig jutottam, de nem egészen jó van amikor jó érték jön ki van amikor nem. Csatolom.
(#) Hp41C válasza c27 hozzászólására (») Feb 19, 2012 /
 
Szia!

Az első kérdésre:
- Nem jó ha Te számolsz a fordító helyett, mert a módosítások során az érték megváltozik, de a bcf, bsf utasításokat pedig változatlanul hagyod... Alapelv, hogy minél kevesebbszer állítunk elő egy számot, annál kevesebb hibánk lesz.
  1. movlw high(cimke)
  2. movwf PCLATH

a jó megoldás, a fordító gondját viseli a betöltendő értéknek...
(#) Hp41C válasza c27 hozzászólására (») Feb 19, 2012 /
 
A másodikra:
Az
  1. RLFXXL,F
  2. RLFXXH,F

a jó sorrend.
(#) c27 válasza Hp41C hozzászólására (») Feb 19, 2012 /
 
Helló.
Beírtam:
TABLA1
MOVLWhigh(0x0700)
MOVWFPCLATH
ADDWFPCL,F
(adatok....)
ugyan így a másiknál is ott 0x0600-as-ra, de össze vissza ugrál pl ha a tábla sorszáma 0 akkor is kb. a 7-re ugrik illetve a másik tábláról meg átugrik a 0x0700-as címűre. Vagy ezt a call tabla1 elé kellett volna írni?
(#) Pepebá válasza icserny hozzászólására (») Feb 19, 2012 /
 
Hali!
Bocsi, de ez a válasz ill. kérdés valahogy elkerült engem, a délelőtti válaszom meg nem tudom hova tünt.
Azt hiszem a kiírásokba fullad bele a progi, nem csak az USB kapcsolat megszakadásakor, hanem tartós működés esetén rendszertelenűl, eltérő időszakonként leáll.
Amit eddig ki tudtam deríteni hogy hardveresen űgy tűnik nincs gond, mert a I2C mérési adatok feldolgozása 4 szenzorral (erre gyanakodtam) működik már több mint 1 napja USB HID kommunikációval.
Gyanítom a USB CDC kapcsolat körül lehet valami gond, de nem tudom az okát.
Az USBDeviceTasks() hívása megszakításban történik, a
ProcessIO(); pedig a főprogamban illetve a Delay_MS-ben.
Szóval nem tudom hogy időnként mi okozhatja a leállást.
A processIO függvényben az USB státusz vizsgálatánál a return elé betettem az m_LED2 bekapcsolását, ami ilyenkor meg is történik.
Továbbiakban egyenlőre tanácstalan vagyok, van esetleg valami javaslatod?
Üdv.
(#) c27 válasza Hp41C hozzászólására (») Feb 19, 2012 /
 
A szorzás már majdnem jó így, de az EL még néha nem jót ír ki. Esetleg ezt még megnéznéd nekem? Pl:xxL=255 és a W=255 xxH=0 ennél például FE40-et ad FE01 helyett.
Következő: »»   211 / 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