www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

PIC 16F747 I/O težava
Pojdi na stran 1, 2, 3, 4  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Sre Sep 14, 2011 7:08 am    Naslov sporočila:  PIC 16F747 I/O težava Odgovori s citatom

Pozdravljeni,

Za eno aplikacijo uporabljam pic 16F747. Uporabljene imam skoraj vse pine na čipu, tako, da nisem mogel kaj dosti eksperimentirati z menjavanjem izhodov. Je pa problem v tem, da mi izhodi RB4, RB3 in RB2 delujejo nepravilno. Ko bi moralo biti stanje high je na izhodu le 0,15V napetosti ali pa še to ne. Ko je stanje low so OK, 0,00V. Vsi drugi izhodi in vhodi so OK - vsi digitalni.

Za programiranje uporabljam PIC C CCS program. Zanimivo je tudi to, da sem pri eni drugi aplikaciji uporabil isti čip z isto začetno kodo (include, fuses ....) in je delal ok tudi na omenjenih izhodih.

hmm, upam da mi lahko kako pomagate, saj imam tiskanino 200x150mm že narejeno in je vse ostalo OK, tako da je nebi rad popravljal po nepotrebnem že zaradi precej materialnih stroškov.

lp, Taubek
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Peter123
Član
Član



Pridružen-a: Tor 13 Jan 2009 15:34
Prispevkov: 1441
Aktiv.: 7.21
Kraj: Lj.

PrispevekObjavljeno: Sre Sep 14, 2011 7:14 am    Naslov sporočila:   Odgovori s citatom

Si preveril vpise v Tris registre?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Sre Sep 14, 2011 8:54 am    Naslov sporočila:   Odgovori s citatom

kako lahko to preverim?

imam na začetku programa napisane ukaze set_tris_b(0b00000000).

naprej v programu pa delam z output_high in output_low ukazoma. Pri vseh ostalih izhodih je ok, samo pri teh treh je vrednost ko dam na high zelo nizka, se pa premakne iz 0, 00 na 0,07 ali na 0,15, višje pa ne. Pri ostalihizhodih pride ven 5V, kot je normalno.

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
PZUFIC
Vseved



Pridružen-a: Sob 17 Nov 2007 19:06
Prispevkov: 6987
Aktiv.: 32.65
Kraj: Rakek

PrispevekObjavljeno: Sre Sep 14, 2011 9:09 am    Naslov sporočila:   Odgovori s citatom

Poskusi z drugim čipom, če ga imaš. Ali pa spiši program samo z TRIS..., in določi, da ti cel port postavi na ena in potem pomeri kaj se dogaja. Tako boš lahko prepričan, da je čip ok.
_________________
Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Sre Sep 14, 2011 9:14 am    Naslov sporočila:   Odgovori s citatom

Si poskusil zamenjati uC?
Če ti je na prejšnjem projektu z enakim uC vse delalo ok, pa naredi kopijo tistega projekta in pobriši vse razen inicializacije teh pinov in poglej, če se ti na tej isti plošči outputi postavijo na 5V.
Drugače pa tudi preveri kako imaš konfigurirane ADje in CCP modul. RB2-4 si delijo funkcionalnost s to periferijo.

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Sre Sep 14, 2011 9:17 am    Naslov sporočila:   Odgovori s citatom

PZUFIC je napisal/a:
Poskusi z drugim čipom, če ga imaš. Ali pa spiši program samo z TRIS..., in določi, da ti cel port postavi na ena in potem pomeri kaj se dogaja. Tako boš lahko prepričan, da je čip ok.


Sem poizkusil tudi z čipom 16F777, ki je po digitalnih I/O enak 16F747 samo da ima več spomina in dodatne funkcije...

bi poiskusil tudi z varianto kode output_b(0b00011101) pa je problem to, da ni cel byte namenjen eni funkciji in bi se vrednost nekaterih drugih bitov morala spreminjati ne glede na ostale vrednosti. Ali obstaja kak znak, ki ne spremeni obstoječe vrednosti bita v bytu?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.42

PrispevekObjavljeno: Sre Sep 14, 2011 9:19 am    Naslov sporočila:   Odgovori s citatom

CCS ima direktive #use fixed_io(port) in #use standard_io(port). Pri prvem rabiš sam definirat tris registre, pri drugem prevajalnik sam nastavi tris registre pri vsakem input() in output_xxx(). Poglej navodila za CCS, vse lepo piše.
Preveri tudi, če nimaš vklopljeno kako periferijo, ki te pine potrebuje zase in s tem ne upošteva tris registra (AD pretvornik?)...
Sicer pa stvar priključi na debuger in poglej, kaj se dogaja (ali pa vsaj v simulatorju preveri).

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Sre Sep 14, 2011 10:44 am    Naslov sporočila:   Odgovori s citatom

bom probal ko pridem domov iz sihta. AD pretvornikov pa nimam vključenih, razen če so po defaultu vklopljeni. Bom dodal na začetku še setup_adc_ports(no_analog) oziroma all digital, morem pogledat kera verzija je prav.

lp.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Peter123
Član
Član



Pridružen-a: Tor 13 Jan 2009 15:34
Prispevkov: 1441
Aktiv.: 7.21
Kraj: Lj.

PrispevekObjavljeno: Sre Sep 14, 2011 10:52 am    Naslov sporočila:   Odgovori s citatom

Sam klub temu da sem sprogramiral marsikatero malenkost vedno začnem z LED on/off vsak projekt.

Če imaš osciloskop lahko napišeš zanko samo out 1 in out 0. Pa pogledaš signal na pinu. S tem preveriš vse TRIS ukaze ter tudi s katero frekvenco teče MCU.

Ko imam "stestiran" HW začnem z dejanskim programskim delom.

Z leti si zapomneš predvsem slabe izkušnje ter napake.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
xfce
Član
Član



Pridružen-a: Čet 28 Jul 2011 8:06
Prispevkov: 521
Aktiv.: 3.08

PrispevekObjavljeno: Sre Sep 14, 2011 11:16 am    Naslov sporočila:   Odgovori s citatom

Tukaj je skoraj 100% težava v tem, ker so pomojem po defaultu vklopjeni analogni vhodi in komparator. Poglej v dokumentacijo, kako se jih izklopi.

To se pravi nujno izklopi analogne vhode in izklopi komparatorje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
AlesK
Član
Član



Pridružen-a: Sob 24 Jan 2009 15:59
Prispevkov: 17
Aktiv.: 0.09
Kraj: Kobarid

PrispevekObjavljeno: Sre Sep 14, 2011 11:34 am    Naslov sporočila:   Odgovori s citatom

Preveri: RA4 je tipa Open Drain. Rabi pull up upor na napajanje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Sre Sep 14, 2011 12:16 pm    Naslov sporočila:   Odgovori s citatom

mučijo me RB2, RB3 in RB4. Port A je OK.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Sre Sep 14, 2011 9:35 pm    Naslov sporočila:   Odgovori s citatom

Tako na pamet:
CMCON = 0x07;
ADCON1 = 0x0F;
Drži?
Preveri v simulatorju.

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Sep 15, 2011 1:03 pm    Naslov sporočila:   Odgovori s citatom

Pripenjam txt file programa, kot sem ga imel napisanega pred popravki.
Bi vas prosil za vnos popravkov, da bom naslednjic lahko sam pogruntal, oziroma spisal bolj kvaliteten program.

Zdaj sem za silo spremenil ene pine tako da mi aplikacija deluje, sem pa moral za to zrtvovati par vhodov.

lp in hvala za nasvete.



16F747.txt
 Opis:

Download
 Ime datoteke:  16F747.txt
 Velikost datoteke:  7.7 KB
 Downloadano:  13 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Čet Sep 15, 2011 6:09 pm    Naslov sporočila:   Odgovori s citatom

Če ne bi imel tako razmetanih pinov, bi bil program čisto enostaven ...
Tako pa je potrebna pretvorba iz BCD na tvoje pine
Koda:

if (a.0==1)
      output_high(RD6);
else
      output_low(RD6);
endif

if (a.1==1)
      output_high(RC7);
else
      output_low(RC7);
endif

if (a.2==1)
      output_high(RD4);
else
      output_low(RD4);
endif

if (a.3==1)
      output_high(RD5);
else
      output_low(RD5);
endif
...
Enako ponoviš še za b.0 , b.1 , b.2 , b.3 , pa za vse štiri c._ in d._ .
Gotovo pa obstaja kak operand za priredbo, da kar brez "if" stavkov prirediš bite spremenljivke na bite porta
RD6 = a.0
RC7 = a.1
RD4 = a.2
RD5 = a.3

RD3 = b.0
RC6 = b.1
RC5 = b.2
RD2 = b.3
...
Lahko pa vstaviš kar kos kode v zbirniku
Koda:

  btfsc a,0
  bsf PORTD,6
  btfss a,0
  bcf PORTD,6

  btfsc a,1
  bsf PORTC,7
  btfss a,1
  bcf PORTC,7
...

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3, 4  Naslednja
Stran 1 od 4

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group