MatyC Postat Decembrie 12, 2011 Partajează Postat Decembrie 12, 2011 Nu recomand oscilatorul intern sub nici o forma. Eu am folosit varianta de pe coolcircuit cu doua PIC12F675 si am stat o noapte intreaga sa le fac sa comunice intre ele. O prima problema a fost ca am ignorat cerinta producatorului de alimenta receptorul la 3,3 V maxim si eu din graba foloseam 5V. Aveam un zgmot la receptie de nu credeam insa nu asta a fost problema principala.Ca sa inteleg unde e problema am folosit la receptie in diferite puncte ale programului aprinderea unui led daca receptiona corect. Am observat ca la "preamble" era ok, "header" totul ok. Insa la identificarea butonului apasat nu mergea. Concluzia mea a fost ca prin modul de a face receptia, prin citirea portului Rx la intervale clar definite, spre finalul transmisiei se desincroniza cu transmisia. Fiind la inceput de teste cu Hi-Tech nu am observat ca face optimizare pentru cod sau pentru viteza. Solutia mea a fost sa caut o librarie delay.h mai buna si mai precisa. Spre dimineata am gasit, am adaptat si m-am culcat fericit. A functionat ok chiar si la alimentare de 5V.Librariile sunt la liber din cate stiu asa ca le postez direct ca nu mai tin minte adresa de unde l-am luat. PIC_Hi-Tech_C_delay_and_timeout_routines_for_PIC16xxxx_v7-1.zip Link spre comentariu
78ATI Postat Decembrie 12, 2011 Autor Partajează Postat Decembrie 12, 2011 Salutare la toata lumeaAcuma ma bag si eu, ca deh, e pauza de masa.Ai incercat sa comunici prima oara cu un cablu intre ele?Din pacate nu!Ar trebuii sa incerc prin cablu cu codare manchester. Dupa cum spunema mai sus nici macar nu a continuat rutinele pana la capat. Se agata undeva in zona configurarii Manchester Link spre comentariu
78ATI Postat Decembrie 13, 2011 Autor Partajează Postat Decembrie 13, 2011 Buna!Am incercat aseara sa trimit date simple de pe 12F675 spre 16F628, folosind UART (software) lasand datele sa curga intr-un singur sens. Am conectat cele doua PIC-uri prin fire, transmisia a functionat.Am intrerupt firele si am pus modulele radio...Date se transmit, dar ceea ce apare pe display, nu imi pot imagina cum as putea sa "decodez".Ma puteti ajuta cu un exemplu de cod eventual RX TX, sa pot folosii ca baza iar apoi sa incerc sa dezvolt ideea?Se pare ca librariile de la MikroBasic, nu functioneaza (ma refer strict la partea Manchester encoding/decoding). Pur si simplu omoara ccontrolerul, nu se mai parcurge absolut nimic dupa ce se initializeaza Man_init().Astfel am decis sa incerc cu ajutorul dvs sa fac transmisia "manual". Link spre comentariu
costi002 Postat Decembrie 13, 2011 Partajează Postat Decembrie 13, 2011 Salutare, din nou ma bag si eu.Am intampinat si eu probleme cu comunicarea seriala intre pc si un pic, bidirectionala de altfel.Intrebarea mea este, cand ai mers pe fire, ceea ce ai vazut pe lcd era ok sau eronat? Link spre comentariu
78ATI Postat Decembrie 13, 2011 Autor Partajează Postat Decembrie 13, 2011 Salutare, din nou ma bag si eu.Am intampinat si eu probleme cu comunicarea seriala intre pc si un pic, bidirectionala de altfel.Intrebarea mea este, cand ai mers pe fire, ceea ce ai vazut pe lcd era ok sau eronat?Intrebarea este buna! Era tarziu can am facit experimentul, insa imi aparea pe LCD doar 0/255 - 0/255, nu am reusit sa trimit text, si am renuntat, deoarece ...dimineata nu m-as mai fi trezit.Ideea ca prin RF, apareau 5-6 valori printre care si 0/255. Voi repeta experimentul in speranta dezvoltarii unui cod, sau mod de transmitere intre cele doua Link spre comentariu
costi002 Postat Decembrie 13, 2011 Partajează Postat Decembrie 13, 2011 tre sa te gandesti foarte bine cum faci decodarea si codarea. am pierdut 2 zile sa imi dau seama ca trimiteam un numar in binar, dar am pierdut din vedere faptul ca pentru a fi afisat corect trebuia sa il adun cu 48 ca sa fie inteles de display, ca este numar ci nu un caracter.deci, mult sporLE: pic-urile folosite de tine nu au UART hard? ma gandesc ca ar fi mult mai usor de utilizat decat sa faci bit-banging Link spre comentariu
78ATI Postat Decembrie 13, 2011 Autor Partajează Postat Decembrie 13, 2011 tre sa te gandesti foarte bine cum faci decodarea si codarea. am pierdut 2 zile sa imi dau seama ca trimiteam un numar in binar, dar am pierdut din vedere faptul ca pentru a fi afisat corect trebuia sa il adun cu 48 ca sa fie inteles de display, ca este numar ci nu un caracter.deci, mult sporLE: pic-urile folosite de tine nu au UART hard? ma gandesc ca ar fi mult mai usor de utilizat decat sa faci bit-bangingDin pacate 12F675 nu are UART hardd, doar 16F628A.Ma puteti ajuta cu o sectiune de cod? Acum am refacut codul, am pus quart de 4Mhz am pus la fiecare rutina cate un verificator...simt ca nu merg nicaieri. Acum nu mai afiseaza nimic...e ca si cum nu se sincronizeaza de fel! Link spre comentariu
Ashky Postat Decembrie 13, 2011 Partajează Postat Decembrie 13, 2011 Eu am cumparat din targ un senzor de temperatura rf 433 Mhz de la o statie meteo si transmite de 4 ori urmatoarea secventa, dar doar atunci cand se modifica temperatura. Un puls de sincronizare de circa 8ms, o adresa (8biti), temperatura (8biti), fractia (8biti). Codarea mi se pare extrem de simpla, 0 este sinc/4 si 1 este sinc/2.Decodarea am facut-o in felul urmator, impart impulsul de sincronizare la 3 dupa care verific impulsul urmator, daca e mai scurt e 0, daca e mai lung e 1.Valorile primite le consider bune doar daca primesc de 3 ori consecutiv aceleasi valori (24 biti).Mai jos e ce trimite ptr 23,2C.E un exemplu bun (zic eu) ca sursa de inspiratie. imagine L.E. Singura chestie nasoala este ca sta picu ocupat asteptand pulsul ala de sincronizare.Nu am reusit sa-l conving sa si afiseze temperatura primita pe un display led. Link spre comentariu
costi002 Postat Decembrie 14, 2011 Partajează Postat Decembrie 14, 2011 din pacate eu sunt cu asembler-ul, nu stiu nimic de microC.ca idee, daca numai unul are uart, e mai bine sa faci tu din soft, le poti sincroniza mai bine dar trebuie sa pui receptorul pe o intrare cu intrerupere.in alta ordine de idei , niciodata nu mi-a placut sa folosesc rutine de-a gata, nu prea le inteleg, asa ca le fac pe ale mele pe intelesul meu. daca crezi ca te-ar putea ajuta, in asembler, as putea sa caut rutina cu bit-banging folosita de mine pentru un receptor cu IR de la telecomanda TV-ului meu. ma gandesc ca este similir cu ceea ce vrei tu Link spre comentariu
78ATI Postat Decembrie 16, 2011 Autor Partajează Postat Decembrie 16, 2011 Buna tuturor!Rugaminte:Aveti cuma un cod compilat HEX, cu o astfel de comunicare. Pot incerca testele pe 12F675 sau pe 16F628A. Este imposibil ceea ce mi se intampla. Am incercat ieri, am rescris totul. In manuale sunt exemple, in care "e atat de usor" sunt rutine simple gata implementate...dar nu imi merg.Ce setari folositi la controlere? Registrii, comparatoare etc...Multumesc! Link spre comentariu
Liviu M Postat Decembrie 16, 2011 Partajează Postat Decembrie 16, 2011 L.E. Singura chestie nasoala este ca sta picu ocupat asteptand pulsul ala de sincronizare.Ar trebui sa incerci sa folosesti intreruperile pentru detectia pulsului de sincronizare.Nu stiu exact ce pic folosesti (n-am citit tot topicul), da' picurile pe care le stiu genereaza intreruperi cand RBx isi schimba starea (sau rimesc un anumit front).Eu as face toata decodarea cu intreruperi de-astea de schimbare de stare si un timer care sa numere intre 2 intreruperi. In functie de cat e timerul cand vine o intrerupere decizi daca a fost 0 sau 1.Eu am o decodare de telcomanda in IR cu "algoritmul" asta. Daca nu uit, cand ajung acasa incerc sa postez codul (numai ca e un proiect mai mare si trebuie sa vad ce ar incurca la intelegerea ideii). Link spre comentariu
MatyC Postat Decembrie 16, 2011 Partajează Postat Decembrie 16, 2011 Uite ca tot zic sa ma apuc de proiectul asta si ma tot ocup de altele. Daca ai trasat cat de cat o schema pentru TX sa pornim de la un punct comun posteaza o poza. La receptie voi face ceva provizoriu cu un 16F628A cu transmisie prin serial. Proiectul care l-am facut anul trecut e cam varza asa ca nu sunt sigur pe hexuri. Link spre comentariu
78ATI Postat Decembrie 16, 2011 Autor Partajează Postat Decembrie 16, 2011 Uite ca tot zic sa ma apuc de proiectul asta si ma tot ocup de altele. Daca ai trasat cat de cat o schema pentru TX sa pornim de la un punct comun posteaza o poza. La receptie voi face ceva provizoriu cu un 16F628A cu transmisie prin serial. Proiectul care l-am facut anul trecut e cam varza asa ca nu sunt sigur pe hexuri.Se serial nu va functiona. 12F675 nu are UART hardware, 16F628A are. Am incercat sa transmit prin SOFT_UART, si am vazut niste "caractere"...Oricum imi vine s ama iau cu mainile de cap. Voi incerca maine eventual cu 2x16F628A Link spre comentariu
78ATI Postat Decembrie 19, 2011 Autor Partajează Postat Decembrie 19, 2011 Buna tuturor!Am o veste buna si una rea.Am reusit sa transmit ceva si sa receptionez cate ceva> Am schimbat controlerele -> ambele 16F628A, am pus quartz de 8MHz. Transmisia se face continuu de pe o placa de test iar receptia se afla pe o alta placa de test.Din pacate receptia este aleatoare: cand este ok...cand nu. Nu am reusit sa imi dau seama de ce sau momentan sunt inca in "cautari".Ma poate ajuta cineva cu o sectiune de cod de transmisie manuala (codata) Manchester in care sa pot regla bitrate-ul transmisiei?Serial trimis prin Radio nu a functionat de loc!:( Link spre comentariu
costi002 Postat Decembrie 19, 2011 Partajează Postat Decembrie 19, 2011 receptia nu este ok tot timpul pentru ca se desincronizeaza. incearca pauze mai mari intre transmisii si foloseste intreruperea de receptie. Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum