Fórum témák

» Több friss téma
Fórum » PIC 16F877-ről 16F887-re való váltás
Lapozás: OK   1 / 2
(#) Pikkelel hozzászólása Nov 30, 2007 /
 
Sziasztok!

Amink van: MPLAB, Chipcad demó panel (LCD-s), ICD 2,
16F877-est adtak hozzá. Ezzel nagyon szépen tudtuk a hozzáadott LCD vezérlő demóprogramot futtatni. Ezt a programot szeretnénk a 887-esre átírni, mert ez egy újabb típus és jóval olcsóbb is. Az adatlapot böngészve azt már megtaláltuk, hogy a configja más formátumú, mint a 877-esé.
Eredeti:
list p=16F877
#include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC & _LVP_OFF

Átírva így néz ki:
list p=16F887
#include
__CONFIG _CONFIG1, _CP_ON & _WDT_OFF & _BOR_ON & _PWRTE_ON & _HS_OSC & _LVP_OFF

De úgy látszik ez még mindig kevés. A ledek működnek, de az LCD-n semmi nem látszik.
A lábkiosztása a 2 PIC-nek egyforma, azzal tehát nincs gond.
Van valakinek valami ötlete, hogy mit kell még átírni?

Lcd_877.asm
    
(#) jon@ válasza Pikkelel hozzászólására (») Nov 30, 2007 /
 
A 887-ben az ANSEL és ANSELH regisztereket is állítsd be mert ezen a kontrolleren több analóg bemenet van mint a 877-en.
(#) Sendi hozzászólása Nov 30, 2007 /
 
Helló Pikkelel.

Ha megvan a megoldás tedd már fel légyszives mert engem is érdekel. Bár nekem ez a program 877-n sem futott, bár én még nagyon kezdő vagyok, de a végén elindult.
(#) Pikkelel válasza jon@ hozzászólására (») Nov 30, 2007 /
 
köszi a gyors választ, ezt legelőbb hétfőn tudom kipróbálni/átnézni.

Amúgy elég gáz, hogy minden újabb pic-nél 2-300 oldalas adatlapot kell átnyálazni. De lehet, hogy én/mi vagyunk a lúzerek. Az biztos, hogy nincs túl sok tapasztalatunk és az angol "tudásunk" is kevés.
-------------------------
Ha meglesz a megoldás mindenképpen felteszem.
(#) potyo válasza Pikkelel hozzászólására (») Dec 2, 2007 / 4
 
Idézet:
„Amúgy elég gáz, hogy minden újabb pic-nél 2-300 oldalas adatlapot kell átnyálazni.”


Nem kell, erre vannak a Migration Documents-ek, amik tartalmazzák az eltérések listáját. Pl. konkrét esetben ez: http://ww1.microchip.com/downloads/en/DeviceDoc/41305A.pdf
(#) Pikkelel válasza potyo hozzászólására (») Dec 2, 2007 /
 
ezt is nagyon köszi. Látom, bátran lehet kérdezni, rengeteg dolgot lehet tanulni itt a fórumon. Már alig várom a hétfőt
(#) Pikkelel válasza jon@ hozzászólására (») Dec 4, 2007 /
 
"A 887-ben az ANSEL és ANSELH regisztereket is állítsd be mert ezen a kontrolleren több analóg bemenet van mint a 877-en."

Ha minden igaz a 877 és 887-en is az ANSEL regiszter ugyanaz. A plussz a 887-ben az ANSELH. 6 bitje van és ezek a PORTB-vel közösködnek. Azok viszont nincsenek használva ebben a programban. Amúgy megpróbáltuk nullázni. De nem működik.
Az adatlap szerint: The state of the ANSELH bits has no affect on digital output functions.
ugyanez van az ANSEL-re is. Ha jól értelmezzük, akkor ez azt jelenti, hogy ezek a bitek nincsenek hatással a digitális kimeneti funkcióra.
Légyszi okosítsatok!
(#) Pikkelel hozzászólása Dec 4, 2007 /
 
Megvan a megoldás! Leírom, hogy miket kellett módosítani:
Az ADCON0 és az ADCON1 regiszter is módosult a 887-ben. Míg a 877-ben az AN5,6,7-et az ADCON1 állítja (A/D), a 887-ben az ANSEL regiszter.

Két sort kitöröltünk:
movlw 14
movwf ADCON1 ; RA0 analóg bemenet !!!
Ez a bank 1 kiválasztás után van, a Start címkében van.

A módosítás,közvetlen a Start címke után:
bsf STATUS,RP1
bsf STATUS,RP0 ; ez a bank 3 kiválasztás
clrf ANSEL ; ANS0 - 7-ig Digitális beállítás

A 887-ben a bankválasztásnak van egy egyszerűbb módja is: BANKSEL ANSEL, az ANSEL helyére bármelyik regisztert beírhatjuk, automatikusan vált a hozzá tartozó bankra.
Itt már nem muszáj megnézni, hogy melyik regiszter melyik bankban foglal helyet. Bár hozzáteszem, nem árt utánanézni, mert ezzel elkerülhetőek a felesleges bankváltási utasítások, melyek a programunkat csak növelik.

Nem szabad elfelejteni, hogy a Project/Build Options-ban a Default Radix-ot Decimalra kell állítani. Ha nem ez a beállítás, a program nem fog működni.

A pontot legszívesebben megosztanám jon@ és potyo között. Potyo linkje rengetegett segített, a megoldás megtalálásában, így hát a pontot most neki adom.
Mégegyszer nagyon köszönjük a segítséget, rengeteget tanultunk.
(#) potyo válasza Pikkelel hozzászólására (») Dec 5, 2007 /
 
Idézet:
„A 887-ben a bankválasztásnak van egy egyszerűbb módja is: BANKSEL ANSEL, az ANSEL helyére bármelyik regisztert beírhatjuk, automatikusan vált a hozzá tartozó bankra.”


Ez nem a 887 miatt van, hanem ha az MPLAB-ban beírod, hogy pl. BANKSEL TRISB, akkor az tudja, hogy a TRISB az 1-es bankban van, és lecseréli az említett sort BSF STATUS, RP0 és BCF STATUS, RP1-re. Tehát ez bármelyik pic-nél használható, csak nem ad optimális kódot, mivel mindig állítja mindkét bitet, és legtöbbször elég lenne csak az egyiket állítani. Illetve ha több egymás után következő sor előtt is használod, akkor azt hiszem, mindenhová beszúrja, még ha egyáltalán nemis lenne rá szükség. Tehát csak óvatosan a használatával.
(#) Pikkelel válasza potyo hozzászólására (») Dec 13, 2007 /
 
köszi ezt a hozzászólást is....
(#) SzaboZE válasza Pikkelel hozzászólására (») Feb 23, 2008 /
 
Ne haragudj, de beszúrnád a konkrét file-ot? Nekem így sem megy.
(#) elektromosgyalogos hozzászólása Márc 30, 2008 /
 
Sziasztok!

Nincs valakinek olyan progija amelyik több analóg csatornát mér és a soros porton küldi azt el?Főképpen a soros adatok (több adat kezelése) küldésének megoldása érdekelne.
(#) elektromosgyalogos válasza elektromosgyalogos hozzászólására (») Ápr 2, 2008 /
 
Már megoldódott.....
(#) alex077 hozzászólása Júl 8, 2008 /
 
Ahoi!
Már jó ideje szenvedek egy problémával. Ti biztosan tudtok segíteni.
Van egy asm progim 877-re- nem én írtam- de most csak 887-es picem van és nem akarok venni másikat.
Mellékelek screenshotokat a problémáról, de ide is leírom:
átírtam a 877 progi configját 887-re (legalábbis remélem h jól) és az mplabot is átállítottam 887-re, viszont a fordító nem tudja lefordítani, mert olyan helyre akar írni ami érvénytelen, meg vmit problémázik a configgal is.
Vki segítsen, mert a google nem segített, sem más netes forrás (datasheettel sem mentem sokra)
Ja persze a a lényeg h 887-re akarom égetni a progit, de a legjobb lenne a pic16f84-re lehetne, de az talán még nehezebb lenne.
(#) MPi-c válasza alex077 hozzászólására (») Júl 8, 2008 /
 
Hát pedig az adatlap segített volna.
A konfig. szó a 887-ben 16 bites, így kellett volna megadni:
  1. __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF  & _CPD_OFF & _WDT_OFF  & _PWRTE_ON & _LVP_OFF & _XT_OSC


A kód végére meg kell egy "END"!
(#) alex077 válasza MPi-c hozzászólására (») Júl 9, 2008 /
 
Köszönöm a választ, megoldja a problémámat, de az adatlapban nem volt példa se semmi.
a progi hátralévő részét meg levágtam, azért nem volt a végén end.
(#) Sebi hozzászólása Aug 24, 2008 /
 
Van egy-két áramköröm, amiben 877-est használok. ChipCad-nél ajánlották a 887-est, olcsóbb, meg jobb is, gondoltam áttérek. Az MPlab 6xx(nem tudom pontosan, mert lecseréltem az újab 8.10-esre) az upgrade-olt PICstart+-al gond nélkül programozta a panelre ültetett SMD tokokat RB6,7,RST és táplábakon keresztül. (877,628, 628A,F84 - mind ment így).

Az új MPlabbal ez így már nem működik, valahogy szoftverből lőhették ki a dolgot, talán úgy hogy másik lábakat is megvizsgálnak. (merthogy a DIP-tokos a textoolba tolva kifogástalanul égethető)

ChipCad-nél azt monták: ennek nem is kell így működnie és vetettek velem PICkit2-őt akciósan 5-ezer valamennyiért (amit nem bánok,szépen dolgozik, gyorsabb is)

Pusztán az érdekelne, mi lehet a trükk, amivel megszüntették az 5 dróttal való égetés lehetőségét.
(#) kyrk válasza Sebi hozzászólására (») Aug 24, 2008 /
 
Hali!

Elso tippem az hogy nezz utana hatha irjnak valamit a PGM labrol. Lehet hogy foldre kell huzni. Googli elmond mindent. De ovatosan mert megoszlanak a velemenyek. Van aki szerint az LVP defaultbol engedelyezve van emiatt kell PGM-t GND-re. Van aki bugra gyanakszik.

Masodik tippem, hogy zajos a tap. 2 het leforgasa alatt 2X is beleutkoztem. ICD2-vel csinaltam, kulso tap. 16f88 egetese ment, de a 16f819-es egetese megbukott. 5-6 byte utan elrondotta es csupa hulyeseget irt bele. Ismerosom irni tudta de torolni nem. Megoldas vegul a tapcsere lett. Amivel nem ment az iras az a kis bovli konnektorba dughato tap. Egy LM317-el mar simant ment a dolog.

Leirhatnad a hibajelenseget. Konkretan hol akarsz meg az egetesnel? Felismeri a PIC-et egyatalan az egeto?
(#) potyo válasza kyrk hozzászólására (») Aug 24, 2008 /
 
Idézet:
„Amivel nem ment az iras az a kis bovli konnektorba dughato tap.”


Olyannal meg sem lenne szabad próbálni...
(#) kyrk válasza potyo hozzászólására (») Aug 24, 2008 /
 
A panelen volt 7805 es egy marek kondi (1uF,100nF,12pF). Remeltem, hogy eleg lesz de nem.
(#) Sebi válasza kyrk hozzászólására (») Aug 24, 2008 /
 
A PICstart-nál nincs olyan (nem láttam?) olyat, hogy "felismeri". Pl. mikor leszakadt az egyik vezetékem és kiválasztottam "erase flash device", utána "blank check all", arra mindig azt üzente: "device not blank". Ha így elindítottam a programozást az végig ment, de persze a verify csupa hibát hozott. Tehát kiküldi az üres foglalatra is az adatfolyamot, nem veszi észre ha nincs benne PIC.
Kiolvasni gond nélkül tud továbbra is az 5 vezetékkel.
(A PICkit2, az már az elején felismeri sőt tiltakozik, ha nem az van kiválasztva, mint amire rátoltam.
Tápom stabil, PICstart a régi MPlabbal tudja az 5lábon a dolgát továbbra is. Csakhát 887-miatt le kellett cserélni.
(#) kyrk válasza Sebi hozzászólására (») Aug 24, 2008 /
 
Eredeti PIC start? Sajat gyari tapjaval hasznalod?
(#) mgy válasza kyrk hozzászólására (») Márc 25, 2010 /
 
Én is próbálkoztam a 887-re váltással.
PICKIT2-őt használok és sajnos csak PBP 2.47 programmal írogatok.
Minden oké ( LCD kezelés , digitális IO-k kezelése ), de az analóg bemenetek beállítása nem megy.
A TRISA , ANSEL, ADCON0, ADCON1 beállításaival vannak problémáim.
Remélem valaki már megoldotta ezt a dolgot, vagy tud tanácsot adni.
Fatengelyes módszerekkel, csak PICBASIC-ben tudok gondolkozni.
Mellékelek egy alaplistát.

Segítségeteket előre is köszönöm.

PRÓBA.txt
    
(#) vilmosd válasza mgy hozzászólására (») Márc 25, 2010 /
 
Hali
Nem ismerem a PICBASIC-et nagyon, de benne van a forditoban ez a tipus?
Udv Vili
(#) mgy válasza vilmosd hozzászólására (») Márc 25, 2010 /
 
Benne van !
A programot le is fordítja. Az LCD-re kiírja a regiszterek tartalmát, ami 0 vagy 1023, közben az analóg bemenetekre hiába adom a különböző feszültségeket.
2 db MCP9700 adja a kb. 730mV-ot (kb 22 Cels.) , egy HIH 3610 pedig a páratartomnak megfelelő értéket.

Kösz a reagálásod.
(#) icserny válasza mgy hozzászólására (») Márc 25, 2010 /
 
El kellene felejteni az ADCIN beépített függvényt, mert nem tudni, hogy pontosan mit csinál! Az adatlap ajánlásai alapján, tisztán a regiszterek beállításával és olvasásával kellene megpróbálni lekezelni az ADC-t.
(#) mgy válasza icserny hozzászólására (») Márc 25, 2010 /
 
Biztosan igazad van, de az én tudásom ahhoz kevés.
Nekem jó volt az F877-nél és az F690-nél, hogy csak adcin-nel beolvastam a két bájtot.
Reméltem, hogy 887-nél is megtehető, mert én csak használni szeretném a PIC-ket és a PBP-t, a maga korlátaival.
A regiszter szintű 300 oldalas leírásokba, már nehezen merülnék bele.
(#) icserny válasza mgy hozzászólására (») Márc 25, 2010 /
 
A 300 oldalból 290 nem az ADC-ről szól, tehát most negligálható. Az adatlap assembly mintapéldájából meg annyit nyilván megértesz, hogy melyik regiszterbe mit írnak egy mérés lebonyolításához.

Az mindenesetre hasznos volna, ha a hardverről adnál némi információt (pl. milyen oszcillátor, milyen frekvencián...). Ennek ismeretében lehet eldönteni, hogy mit is kell írni az ADC konfigurációs regisztereibe.
(#) mgy válasza icserny hozzászólására (») Márc 27, 2010 /
 
Köszi a segítségedet !
Bocs, hogy később válaszolok, de most volt időm újra próbálkozni.
Nem az ANSEL,ADCON és TRISA beállításaimmal volt probléma (ezt elolvastam a tényleg 10 oldalban), hanem a PBP DEFINE funkcióknál az ADC órajel beállításával. Te adtad az ötleted, hogy a frekvenciák körül nézzek szét.
A közkincsé tett PIKKOLÓ munkádért minden elismerésem !!!.
Én sajnos (koromnál fogva) leragadtam a PBP-s módszereknél, de a mellékelt egyszerű program mutatja, hogy kevés tudással is lehet boldogulni.
(igaz vannak buktatók)
Ezért kerestem volna olyan PBP-s hívőt, aki ezen a szinten találkozott a problémákkal.
Mégegyszer KÖSZ !

887an.txt
    
(#) mgy válasza mgy hozzászólására (») Júl 30, 2010 /
 
Ismét megakadtam. A 877-nél az ADCON1 (3:0) bitjei meghatározzák, hogy a VREF értéke az AN3-mon olvasható legyen.
A 887-nél ez más regiszterekkel adható meg.
De, hogy ?
Nem találtam számomra egyértelmű leírást.
Be kellene állítanom a VREF+ értékét, de nekem mindig a VDD-t adta.
Próbálkoztam a VRCON variációival is, de nem jött össze.
Következő: »»   1 / 2
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