Sari la conținut
ELFORUM - Forumul electronistilor

Problema cu 18F2550


ovy_pas

Postări Recomandate

Se da: un 18F2550 ; un 16F870 ; Soft de programare Mikro C , Soft descarcare program Win Pic, Soft simulare Oshon .Fac programele pentru ambele PIC-uri in C cu Mikro C , le verific cu Simulatorul Oshon si la simulare merg ok.Descarc programele din Win Pic in PIC-uri cu succes, Inchid Win PIC si il redeschid, verific buferul cu programele descarcate pt fiecare in parte si e succes e ok, Acum pun PIC -urile la treaba intr-un montaj test trebuie sa aprinda si sa stinga un LED la unul din pini adica RB6...(Montajul este: pin1 rezistenta 5.6kohmi de la +5v, pin9,10 cuartz 8Mhz cu 2 condensatoare 27pF , 8,19 masa, 20 +5v, 27- RB6 rezistenta 1kohm LED la masa= iesire test)Ce se intampla?... 16F870 functioneaza ok ca si la simulare, iar 18F2550 nu face nimic desi in simulator functiona, desi Win Pic la verificare imi confirma ca e ok..Se cere care este cauza?1 Montajul nu poate fi fiindca 16F870 functioneaza din cate m-am documentat cele doua PIC-uri au pinii la fel.2 Sa fie ceva din programare, sa zicem dar nu inteleg de ce in simulare e ok dar real nimic nu face?Astept parerile voastre ca eu nu imi pot da seama e ciudat, ceva imi scapa.

Link spre comentariu
  • Răspunsuri 23
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • ovy_pas

    12

  • vlad_2770

    3

  • kit

    3

  • Elef

    2

Top autori în acest subiect

Ai folosit acelasi cod mikroC la amblele PIC'uri ?Incearca sa pui ceva soft de led blink la acel 18f2550 din exemplele de la mikroC (cele din foldere nu din help)Posibil sa nu fie setati bine config bitii , dale default la 18f2550 ....Winpic800 ar trebuii sa isi faca treaba cu programarea.

Link spre comentariu

void main() { TRISB=0; PORTB=0; while(1){ PORTB.F6=!PORTB.F6 ; Delay_ms(1000); }}Acesta este codul care l-am introdus in ambele pic'uri nu am lucrat cu PORTA tocmai pentru ca nu ma prea pricep sa configurez analogicele in digitale astfel sa elimin orice neclaritate;Exemplele LED Blinking de la mikroC din foldere sunt cu PIC18F87J60 si PIC18F8520 nu au cu PIC18F2550La descarcare WinPic folosesc nu WinPic800 nu sunt probleme imi zice ca programul in PIC18F2550 a fost cu succes, la verificare zice ca e ok

Link spre comentariu

trebuie obligatoriu sa faci porturile digitale ca sa mearga

la reset picul face porturile intrari analogice ptr a evita orice conflict de nivel logic

 

portul B la picul 2550 este si analogic, deci ca sa faci digital I/O trebuie

ptr asmmovlw 0x0Emovwf ADCON1ptr  CADCON1=0x0E;
Link spre comentariu

ai dreptate PORTB este si cu analogice.Daca tot am ajuns la subiectul asta te rog sa imi raspunzi la urmatoarele cazuri1.Ce trebuie sa scriu in cod sa fac PORTA cu digitale?2 Ce trebuie sa scriu ca sa fac PORTA si PORTB digitale?3 Ce trebuie sa scriu sa fac PORTA de exemplu RA0, RA1 analogic restul digital?in C nu in asm.

Link spre comentariu

void main() { TRISC=0; PORTC=0; while(1){ PORTC.F2=!PORTC.F2 ; Delay_ms(1000); }Am introdus acest cod sa nu am treaba cu configuratea intrarilor analogice de la PORTA si PORTB si am lucrat pe PORTC si nimic la pinul RC2 desi program are in el si HEX'ul la simulare imi merge ok.Sa fie de vina cuartz'ul care e de 8MHz, repet cu PIC 18F870 merge fara probleme.Ce sa aiba oare?

Link spre comentariu

PORTC.F2=!PORTC.F2 ;

Esti sigur ca ai initializat picurile bine? N-am facut inca nimic cu picuri 18f, da' din ce m-am uitat pe ceva documentatii, se initializeaza putin altfel.De exemplu, la 16f87x ai un singur registru cu bitii de configurare, la 18F... sunt ceva mai multi.
Link spre comentariu

la proiectul meu cu 18f2550 folosesc platforma C18, iar treaba sta un pic mai complicat, folosind si portul USB. In principiu insa, initializarea 2550 sta cam asa:

TRISB=0;TRISC=0;ADCON1 |= 0x0F;                 // Default all pins to digitalCMCON=0x07;
mai sunt chestii de initializare a portului USB, dar e o intreaga biblioteca de functii, asa ca nu o postez.

intrebai care-i setarea pentru AN0, AN1 analogice si restul digitale. pai:

ADCON1 |= 0x0D;                 // AN0,AN1 analogic, restul digital
(v. manual, cap. 21, registrul 21-2).

despre initializarea 2550:

#pragma config WDT=OFF#pragma config PBADEN=OFF#pragma config PWRT = OFF #pragma config PLLDIV = 5		//20MHz#pragma config FOSC = HSPLL_HS   //astea trei linii imi duc frecventa interna la 48MHz#pragma config CPUDIV = OSC1_PLL2  //v. manual, cap. 2, tabelul 2-3#pragma config MCLRE = ON#pragma config LVP = OFF#pragma config USBDIV = 2 //clockul USB vine de la clockul intern de 96 MHz si se imparte la 2#pragma config VREGEN = ON#define USE_USB_BUS_SENSE_IO //setare USB
(ATENTIE! am folosit un cristal de 20MHz).

pe PORTC, taman la RC2 ai comparatorul, iar

CMCON=0x07;
il dezactiveaza (v. manual, cap. 22, Register 22-1 si figura 22-1).

toata vorbaria mea se aplica pe platforma C18. trebuie adaptata pe microC, despre care nu am habar.

bafta!

Link spre comentariu

void main() { ADCON1 |= 0x0D; // Configurare I/O digital CMCON=0x07; //Dezactivare comparator TRISC=0; //Configurare PORTC ca iesiri PORTC=0; //Initializare PORTC while(1){ PORTC.F2=!PORTC.F2 ; Delay_ms(1000); }}Am introdus acest cod dar tot nu merge. Mai trebuie si alte initializari?Posibil sa fie pic'ul defect? Are cineva un HEX pentru 18f2550 cu led blink care l-a testat pls...?

Link spre comentariu

ok, ai pus initializarea din cadrul programului, dar bitii de configurare unde i-ai setat? i-ai setat? am vazut modificarile din main(), nu insa si toate directivele #pragma...

poate te descurca de pe site-ul microelectronica chestiile astea:

http://www.mikroe.com/forum/viewtopic.p ... ht=18f2550

http://www.mikroe.com/forum/viewtopic.p ... ht=18f2550

daca nu, atunci nu ezita sa-i intrebi cum se face, ei stiu cel mai bine mikroC

totusi, verifica si partea de hard...

bafta!

Link spre comentariu

La partea de hard sa fie din cauza condensatorului de la pinul 14 - Vusb ? Nu am condensator intre pin 14 si masa. In rest montajul e testat cu pic 16f870 si merge... deci nu sunt probleme de gresela la cablare, daca erau asemenea probleme nu mi mergea nici cu 870. Am atasat bitii de configurare in mikroC...

Link spre comentariu

Da, la cond-ul ala ma refeream... poate ar trebui, in aplicatiile USB sigur trebuie. (parca 220nF, unii recomanda 470nF).Lasa Power UP Timer enabled.Apoi, 2550 este facut sa mearga pe USB. Poate ar trebui sa incluzi initializarea si tratarea USB in program? Bafta!

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări