Sari la conținut
ELFORUM - Forumul electronistilor

PIC 16f84 + DS1307 ?!?


Vizitator gobolino

Postări Recomandate

Vizitator gobolino

Salut,

 

pun o schema attach pe care am gasit-o cautand sa interfatez DS1307 cu PIC.

Nu pricep de ce pe pagina (in titlul schemei), si in programul care e scris in basic, se face referire la DS1307 pentru ca in schema lipseste.

 

Am facut schema si fara si cu DS. Fara.. exact ca pe pagina.. Pe urma am conectat si DS.ul SDA si SCL le-am pus pe pinii 2 si 3 ai 16f84-ului, pinii Vbat si GND (3,4) mai intai amandoi la masa, mai tarziu am lasat Vbat neconectat.

 

Bas-ul de pe pagina l-am compilat cu PRoton IDE si pentru 16f84, si pentru 16f84A, .. fara erori.

Am incercat cu ambele microcontrollere. Hexul l-am scris cu ICProg.

 

Nu inteleg de ce nu mere. Displayul afiseaza pe linia de sus 08:05:11, din cand in cand patrate,.. linia de jos e goala. Cand pun setup, sau up/down la masa, apar caractere garbage.. si cam atat.

Am sentimentul ca programul nu ruleaza, sau microcontrollerul e subclockat.

Am mai avut aceeasi problema la um ATMEGA8 pentru ca la programare nu setam fusebits si programul rula mult prea lent.

 

Daca stie cineva unde e problema poate ma lumineaza si pe mine.

 

Schema si linkul paginei:

http://users.picbasic.org/Howto/RTC/Set_RTC.htm

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

Top autori în acest subiect

  • BLK

    4

  • externvero

    3

  • sofian

    2

  • mdorian

    1

Top autori în acest subiect

Vizitator gobolino

Schema nu e desenata dar poti sa o iei dim manual: http://datasheets.maxim-ic.com/en/ds/DS1307.pdf , vezi ca e pe la sfirsit . Vad din cod ca pinii SCL si SDA sunt de la portul A pinii 3 si 4:sda_pin porta.4scl_pin porta.3Verifica rezistentele de pe SCL si SDASucces

asa am conectat si eu DS1307. PortA.3 si 4 sunt pinii 2, respectiv 3 la 16f84. Am folosit si rezistente de 4,7k si de 10k. Ce e nou e ca in schema din datasheetul pus de tine vad ca SQW/OUT e legat si el. Eu l-am lasat in aer. O sa incerc si asta, si postez rezultatul.Mai am o nelamurire. In schema postata de mine, microcontrollerul nu are pinul GND legat la masa. Pinul VDD la fel.. neconectat
Link spre comentariu

Mai am o nelamurire. In schema postata de mine, microcontrollerul nu are pinul GND legat la masa. Pinul VDD la fel.. neconectat

pai si cum functioneaza sarmanul pic daca nu e alimentat? in majoritatea schemelor, circuitele integrate nu au desenati pinii de alimentare pentru ca este cunoscut faptul ca intotdeauna legi GND la GND si VDD la V+ (sau V- in unele cazuri). ce rost ar avea sa mai complici schema cu inca 2 fire care mereu merg in acelasi loc.
Link spre comentariu
Vizitator gobolino

Am refacut completa schema. Acelasi rezultat.. la initializare apare pe display 05:08:11, si asta e tot. Cand apas tastele setup,hup,down.. caractere garbage, patrate, si in cele din urma apare din nou 05:08:11.Pinii de gnd si Vdd ai picului ii conectasem. Intrebarea era de ce nu sunt trecuti pe schema si mai ales .. de ce fara masa si alimentare, doar cu MCLR, montajul se comporta la fel. Acelasi 05:08:11 afisat pe display.Raman la parerea ca programul nu ruleaza in pic, sau e foarte lent. In ICProg pot seta tipul oscilatorului dar nu si frecventa. Am ales XT.Alte pareri ?

Link spre comentariu

Este imposibil ca programul sa ruleze lent, daca ai pus cristalul de 4MHz, ce ai dori sa reglezi din icprog? Eu cred ca te-ai aventurat prea adanc in padure fara busola. Incearca sa intelegi ce ar trebui sa faca fiecare componenta, apoi intelege rolul ei in schema (de ce in schema asta nu e conectat nu stiu ce pin). Eventual incearca sa citesti programul din PIC, eu am incercat dar e in Basic si nu cunosc.Imi pare ca nu ai cunostinte de baza despre pic-uri, de vreme ce ai ramas surprins ca nu poti seta frecventa din icprog sa faci programul sa ruleze mai repede.Avand in vedere ca pe pagina nu exista un hex, cu ce ai compilat programul? Ce pic folosesti? Ce programator? Ai mai folosit inainte programatorul? Poate e defect.Da mai multe detalii daca vrei sa primesti raspunsuri detaliate.Oricum, parerea mea e ca mai bine iei de la 0 programul si il faci tu, asa ce castigi daca scrii in pic un program gata facut?EDIT: Acum am vazut datasheetul, SQW/OUT e inutil in aplicatia ta, te las pe tine sa descoperi de ce.Cum ai conectat DS1307? Pinul 6 la PORTA3 si pinul 5 la PORTA4? Pe pinii 1 si 2 ai DS1307 ai conectat ceva?

Link spre comentariu
Vizitator gobolino

@BLK

 

Este imposibil ca programul sa ruleze lent, daca ai pus cristalul de 4MHz, ce ai dori sa reglezi din icprog?

Cum scriam in primul post (4xPgUP), eventual fusebits similari atmelului. La programarea unui Atmega8 am avut o problema similara. Solutia a fost un fuse calculator cu care in loc de 1MHz frecventa de lucru implicita la programare (!chiar daca pe placa era un Xtal si puteam sa setez External OSC), am setat 4MHz si s-a facut lumina.

 

 

 

Incearca sa intelegi ce ar trebui sa faca fiecare componenta, apoi intelege rolul ei in schema (de ce in schema asta nu e conectat nu stiu ce pin).

 

care componenta ? Tu ai vazut schema ? E un uC, quartz pentru tact, trei contacte si rezistente de pullup, un display. Ulterior am atasat modulul DS1307 conform datasheetului, si am pus un regulator 7805 + condensatori pentru 5V.

 

Eventual incearca sa citesti programul din PIC, eu am incercat dar e in Basic si nu cunosc.

Done that ! inainte de a intreba ceva pe forumul asta. Nu sant din clasa "asteptam mura-n gura", si urasc pe cei care fara a se pricepe prea bine la ceva, aduna posturi criticand pe unii.. ca de ce nu pun mana sa invete.

E in basic si nu cunosti.. pai tu la ce te pricepi ? Diferentele intre mikropascal, c, sau basic pentru pic nu sant extraordinare. In plus.. programul cred ca l-ar intelege oricine l.ar citi si s-ar pricepe la macar un limbaj de programare. Daca la a intelege te referi.

Eu rugasem ca cineva cu experienta (rutina), sa se uite peste proiect si evtl, sa puna niste semne de exclamare in locurile unde ar putea exista probleme.

 

Avand in vedere ca pe pagina nu exista un hex, cu ce ai compilat programul? Ce pic folosesti? Ce programator? Ai mai folosit inainte programatorul? Poate e defect.

 

In acelasi "primul post" --

1. Proton

2. 16f84

3. Un programator facut cu care am programat 16f84, 16f628, 16f876 & 16f877, compatibil cu TAIT Serial din ICProg. Si nu.. nu e defect.

 

 

Cum ai conectat DS1307? Pinul 6 la PORTA3 si pinul 5 la PORTA4? Pe pinii 1 si 2 ai DS1307 ai conectat ceva?

 

Citeste posturile anterioare. Intrebi o chestie pe care eu o afirmasem deja. pe pinii 1 si 2 e un quartz 32.768 KHz

 

Da mai multe detalii daca vrei sa primesti raspunsuri detaliate.Eu cred ca te-ai aventurat prea adanc in padure fara busola. Imi pare ca nu ai cunostinte de baza despre pic-uri, de vreme ce ai ramas surprins ca nu poti seta frecventa din icprog sa faci programul sa ruleze mai repede.
Mda..

 

Unii se pricep si nu au timp sau pur si simplu nu vor sa ajute. Gasesc ca e ok, cata vreme se abtin la a intoxica sau jigni.

Mai exista cei care nu sant doctori in domeniu, dar impartasesc din experienta lor din pura credinta ca e super sa ajuti cand o poti face. A da un sfat sau un ajutor, fara a trimite prin balarii, cand esti singur in necunostinta de cauza mi se pare o chestie minunata. Poate.. principalul motiv pentru care exista forumuri pe internet.

 

Exista o anumita clasa .. nu numai pe forumul asta. Ii gasesti peste tot. Cunostinte indoielnice, dar "cu sfaturi de viata". :rade: Pui o intrebare, te trimit sa faci programul singur"poate asa inveti ceva". Ai o problema, incep sa arunce cu noroi .. :bataie "n.ai cunostinte de baza, etc".

 

Am postat la capitolul PIC pe un forum de electronica care se vrea a fi un ajutor si nu "cercul carcotasilor". Pana si pagina de pe care am luat schema are in titlu "How To..", deci nu.. nu sant expert in domeniu. Nu sant nici primul nici ultimul care primesc raspunsuri d.astea si .. trist iti mai scrie si FORUM staff pe frunte. Care-o fi criteriul ? (intrebare retorica)

 

Daca nu te pricepi, lasa-ne.

Daca poti sa ajuti fa-o intr-un mod constructiv.

 

Scuze daca am fost offtopic

Link spre comentariu

in primul rind nu stiu deloc basicProblema este de la lcd ptr ca nu este initializat corectnu stiu ce face basicu asta ca nu am vazut unde defineste el pini ptr lcd de dateo cauza ca nu se initializeaza corect este ca PIC-ul nu merge la 4Mhz care cred ca este definit in program aici "xtal 4"acum daca compilezi programu ptr PIC16F84 obligatoriu trebuie sa setezi icprog tot PIC16F84PIC16F84A este diferit la programare fata de PIC16F84 si este posibil sa se programeze auireadeci atentie si la fusebit in icprog sa fie setat oscilatorul pe xtal

Link spre comentariu

Dragu mosului, calmeaza-te ca faci hernie! Eu chiar incercam sa te ajut, dar nu vad cum vrei sa functioneze cand tu pui intrebari de genul "sa alimentez picul? ca in schema nu sunt pusi pinii de alimentare".Ti-am spus de asemenea ca habar nu ai arhitectura unui pic si pui intrebari la care vrei sa-ti raspunda altcineva cand ai putea sa cauti raspuns singur in datasheetul picului.Exact la componentele alea ma refeream, vii si intrebi de ce lipseste DS din schema... Acum zici ca te-ai uitat in .bas, ai vazut ca acolo sunt configurati pinii f84 cu care se face legatura la DS?Ma pricep la mult mai multe lucruri decat ti-ai putea imagina, simplul fapt ca nu sunt familiar cu sintxa basic nu inseamna ca nu stiu nimic. Te-ai gandit ca poate nu am chef sa descifrez un program care pe mine nu ma ajuta cu nimic? Asta ar trebui sa fie treaba ta!

asa am conectat si eu DS1307. PortA.3 si 4 sunt pinii 2, respectiv 3 la 16f84

Nu ai spus nimic de conexiunea la DS, ce pini ai conectat unde, pentru ca se intampla sa te uiti la capsula invers, sau sa gresesti numerotarea pinilor. Am intrebat tot din cauza ca pari debusolat total.Te ataci degeaba chiar am vrut sa te ajut, chiar daca am fost mai acid, asa sunt eu, dar nu cu rautate. Insa despre tine mi-am facut o parere proasta, din cauza intrebarilor puerile la care gaseai raspuns chiar sub nasul tau, si din cauza faptului ca ai simtit nevoia sa iti descarci frustrarile asupra mea.Nu am cautat sa te jignesc asa ca te las in pace. Spor la treaba.
Link spre comentariu

Coane gobolino,Trebuie sa intelegi, fara suparare ca, problemele de tipul "iote o schema si/sau un soft de pe net, le-am facut si nu merrg, de ce oare?" sunt putin cam fara sens. Inteleg ca ai speranta sa cineva, dintr-o intamplare intemplatoare s-a ciocnit fix de schema ta si atunci ai noroc. Dar, din perspectiva unuia care ar vrea sa te sfatuiasca puri si simplu, e foarte greu, pentru ca tu nu faci decat sa transformi intreg proiectul intr-o problema la care n-ai raspuns si, altcineva va trebui sa il analizeze.Informatiile pe care le furnizezi par "complete", dar sunt in realitate insuficiente. De exemplu, daca tot te-ai ciocnit de problema cu "fuse bits", nu ne spui si noua cum ai setat "config bits" in ICProg? Ce sa deduc eu din faptul ca te-ai "jucat" cu bitii la un Atmel si eventual ai "nimerit"... combinatia castigatoare?Revenind la depanare:- daca HW si SW de pe net sunt corecte, atunci ai gresit la realizare- daca aceleasi HW si/sau SW au "probleme", atunci poate cineva le va descoperiSucces!

Link spre comentariu
Vizitator gobolino

@Sofianpicul nu merge la 4Mhz.. Asa banuiesc si eu. Programul l-am compilat pentru 16f84 cu proton, iar la scriere am setat oscilator de tip XT, si tipul microcontrollerului 16f84. Microcontrollerul folosit este tot 16f84 (initial incercasem si cu 16f84A).La programarea unui atmel am folosit alt programator si ca soft AVRDude. Fuse calculatorul l-am folosit pentru a seta doar frecventa quartzului extern si am importat rezultatul in avrdude.Am intrebat pentru ca in ICProg si Ponyprog nu stiu cum pot seta (daca se poate asa ceva) frecventa de lucru.Tu cu ce programezi picuri ?

Link spre comentariu

Incearca sa stergi linia:

Config xt_osc,pwrte_off,wdt_off

compileaza si rescrie HEX-ul . Eventual poti sa te joci cu setarile din ICprog. Mai depinde si ce varianta de Proton folosesti...

 

'****************************************************************

'* Name : DS1307 RTC.BAS *

'* Author :

'* Notice : Copyright © 2005 *

'* : All Rights Reserved *

'* Date : 11/08/2005 *

'* Version : 1.0 *

'* Notes : *

'* : *

'****************************************************************

Device 16F84A

XTAL 4

Config xt_osc,pwrte_off,wdt_off

'-----------------------------------------

Symbol rst PORTA.2

Symbol dta PORTA.0

Symbol clk PORTA.1

Link spre comentariu
Vizitator gobolino

Proton + Basic 3.1Linia aia de cod nu exista in bas.ul meu. Softul l-am tot recompilat, si la un moment dat am pus si linia aia care era in postul tau. Watchdog timer si Code protect le pot seta din IC Prog sa fie active sau nu. Cred ca o sa iau o pauza cu ceasul asta. Am o gramada de alte chestii de facut si dintr.un proiect care se vroia o joaca am ajuns sa pierd o gramada de vreme. Chiar ironic.Probabil ca nu se poate seta frecventa de lucru pentru un pic, la fel ca la Atmel (AvrDude), si cum spunea Sofian, e o chestie declarata in cod. Si totusi in codul pe care il am eu este deja declarata. Sau o fi insemnand "XTAL 4", frecventa de 4Hz sau 4Khz

Link spre comentariu

Iar ma bag, acum fara acid. XT inseamna external, adica folosesti cuartul de 4MHz extern, altceva nu prea poti seta referitor la frecventa de lucru, cel putin nu la pic-urile cele pe 8 biti (cu altele nu am lucrat). Nu ar fi mai placut daca ai sapa si tu un pic inainte sa intrebi? Ca poate gasesti raspunsurile referitol la CONFIG intr-o pagina de catalog. Pagina 38 aici: http://www.datasheetcatalog.org/datashe ... 381_DS.pdf

 

Eventual cauta despre sintaxa basic si vezi cum se declara fuse-urile acolo, sau scoate tot ce tine de fuse din .bas si seteaza direct din icprog la programare.

 

Nu ai la indemana un osciloscop sa vezi ce frecventa da cristalul, poate nu porneste cum trebuie, eventual mai tatoneaza un pic condensatorii de langa el? Sau faci un program simplu de flicker cu delay si vezi daca e bun delayul calculat cu ala practic, nu ai nevoie decat de un led si un pic de rabdare.

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