Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
Guest alpopa

AT89S52 - probleme la test

Recommended Posts

Guest alpopa

Salut, am un AT89S52 pe care am "reushit" sa-l programez (cu schema shi programul lui nenea Asim Khan, sau cam asha ceva). De ce zic ca am "reushit" ?! Pentru ca scriu hex-ul, iar apoi, dupa ce shterg bufferul, citesc de pe controler. Hex-ul meu cu cel citit sunt identice. De aici am dedus ca microcontrolerul a fost programat.Problema e ca atunci cand il pun pe o placutza de test, foarte simpla (cu 2 leduri legate la 2 ieshiri), NU IMI FACE NIMIC. Nu intzeleg ce poate fi. Ma gandesc pe de o parte ca probabil hex-ul nu e bun (deshi am incercat programare in Batronix shi in Keil), iar pe de alta parte ca e ceva cu quartz-ul. Intrebarea mea este : DACA AM PROGRAMAT CU UN QUARTZ DE 4 Mhz ARE CEVA DACA PE SCHEMA DE TEST FOLOSESC ALT QUARTZ (unul de 3,57) ?Ce parere avetzi ?!PS: daca avetzi alte compilatoare trimitetzi-mi shi mie un hex ptr AT89S52 care sa faca o chestie simpla (gen sa puna 1 pe o ieshire shi 0 pe celelalte), sa pot verifica daca hex-urile mele sunt dubioase...

Share this post


Link to post
Share on other sites

Salutare.Exact aceasi lucru mi s-a intamplat mie acum. Eu cred ca softu' nu programeaza bine.Bafta!

Share this post


Link to post
Share on other sites

Cred ca merge si cu cuart de 3.57.

Share this post


Link to post
Share on other sites

Am un AT89S52 care efectiv nu vrea sa porneasca sub nici o forma..Am scris tot felul de programele care sa clipeasca led-uri dar nimic..absolut nimic. Am conectat la uC alimentarea(5V), masa, cristalul si am legat EA/VPP-ul la 5V. Am scris programul(oricare dintre ele), am deconectat uC de la alimentare, am scos mufa ISP si l-am reconectat. Toate aceste operatii le-am facut cu toate programele downloadate sau facute de mine.Unul dintre ele este urmatorul:

jmp begindelay: mov b, #200 strt: mov a,#200 st_del: dec a jnz st_del dec b mov a, b jnz strt jz exit exit:ret begin: clr a clr p1.0 clr p1.1 mov p1,#1 call delay call delay mov p1,#2 call delay jmp begin end

Va rog sa ma ajutati ca am ajuns sa-mi creasca peri albi.Multumesc!

Share this post


Link to post
Share on other sites

Din pacate nu sunt familiarizat cu AT89S52, am citit din PDF-ul de la Atmel, dar nu scrie multe...Poate iti spun ceva ce stii deja, dar here it goes:) : Ai initializat stack pointerul la sfarsitul de ram?Eu am ceva experienta cu AVR Risc-uri, si este o eroare tipica sa uti sa initializezi stack-ul si controlerul se reseteaza incontinuu.

Share this post


Link to post
Share on other sites

Iti dai seama ca experienta mea e aproape nula cu ATMEL si nu am idee cum si de ce se initializeaza stiva. Poti sa-mi dai un exemplu?Eu am citit cateva exemple(pe care le-am si scris in uC) si tot nimic.Multumesc.

Share this post


Link to post
Share on other sites

Eu am facut asa pt. atmel.include "m8def.inc".....DEF temp =r17 ;General use temporary register.....CSEG.ORG 0 rjmp RESET ; Reset rjmp START ; External Interrupt 0 rjmp SYNC ; External Interrupt 1 reti ; Timer2Comp reti ; Timer2Ovf reti ; Timer1Capt reti ; Timer1CompA reti ; Timer1CompB reti ; Timer1Ovf rjmp PWM_UPDATE ; Timer0Ovf reti ; SpiStc reti ; UsartRxc reti ; UsartUdre reti ; UsartTxc reti ; Adc reti ; Ee_Rdy reti ; Ana_Comp reti ; Twi reti ; Spm_RdyRESET: cli ; Disable all Interrupts ;-------Stack Init----->; Stack Pointer Initialization ldi temp,high(RAMEND) out SPH,temp ldi temp,low(RAMEND) out SPL,temp ; Stack setup(End of RAM);-------Stack Init-----<....seiRAMEND este definit in m8def.incce si vezi inainte de RESET: este interrupt vector-ulprobabil ca instructiunile nu sunt compatibile...Deocamdata versiune de AVRStudio pe care il am nu stie pe:AT89S52 :)daca resusec sa fac rost de o veriune mai noua ,incerc si eu o seqventa de cod...

Share this post


Link to post
Share on other sites

A..adica org 0x00..Am scris si instructiunea asta dar in exemplu pe care l-am dat, am scos-o de teama ca sa nu fie tocmai ea problema.. :rolleyes:

Share this post


Link to post
Share on other sites

.ORG nu este instructiunecu ala specifici de unde incepe programul tau din Flash, poate din default se incarca de la 0x00, nu stiu sigur

Share this post


Link to post
Share on other sites

Vedeti ca faceti o confuzie, AT89S52 NU este AVR. El are configuratia MCS51, unde stiva este initializata de sistem (nu trebuie sa te ocupi de ea) la adrressa 7. Ea (stiva ) se incrementeaza , spre deosebire de AVR-uri. Pornind de la aceasta confuzie , s-ar putea ca "defectul" sa fie de la reset, care este invers decat la avr. rezistenta la masa si C-ul la VCC. Configuratia MCS51 nu are resetul negat cum il au la AVR.Daca in urma programarii , verificarea este OK, asta (reset) ar fi o explicatie.

Share this post


Link to post
Share on other sites

Am si zis ca poate este diferit...N-am stiut ca la MCS51 nu trebuie initializat stiva, acum stiu:)

Share this post


Link to post
Share on other sites

N-am stiut ca la MCS51 nu trebuie initializat stiva, acum stiu:)

Nu e obligatoriu sa o initializezi, dar daca vrei ca prima adresa sa fie alta, o poti modifica. Important este sa ai grija sa lasi un numar suficient de mare de octeti la dispozitie, pentru stiva.

Share this post


Link to post
Share on other sites

Nu e obligatoriu sa o initializezi, dar daca vrei ca prima adresa sa fie alta, o poti modifica. Important este sa ai grija sa lasi un numar suficient de mare de octeti la dispozitie, pentru stiva.

Pana la detaliile "amanuntite" cu stiva, problema este ca nu pot nici macar sa aprind un LED pe oricare port ar fi..La PIC am scris programul si a mers din prima..aici sunt in ceata pentru ca nu ma plang ca nu merge un program cu n functii ci nu merge nici macar 2-3 instructiuni. Microprocesorul e bun ca l-am testat punand EA/VPP-ul la masa si a intrat in starea de citire din memoria externa de pe porturile 0 si 2. Acolo am pus in loc de memorie, un led si se aprinde intermitent si haotic.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.