informer Postat Aprilie 18, 2020 Partajează Postat Aprilie 18, 2020 (editat) Continui aici discutia inceputa in topicul "MikroE Necto IDE" referitoare la utilizarea bus-ului I2C folosind "driver-ul" generat de utilitarul MCC. Cred ca acest driver este suficient de greu de inteles ca sa merite un topic al lui... Exista multe discutii pe forumuri referitoare la acest cod generat, in general nu "magulitoare" la adresa Microchip, insa personal n-am gasit o explicatie satisfacatoare a functionarii lui. Cum am zis si dincolo, userul Mysil are pe forumul Microchip niste postari referitoare la subiect care merita toata atentia dar nu trateaza subiectul in detaliu. Personal am portat pana acum 3 librarii (personale) scrise in MikroC pe XC8 folosind acest driver + API-ul generat ca exemplu pt. utilizarea lui. Functioneaza(!) dar asta nu ajunge... pt. mine e important sa inteleg cum functioneaza, nu doar sa mearga si gata... Pentru inceput as vrea sa intreb colegii daca a folosit cineva acest driver?!? Prin "folosit" nu ma refer la a copia un eventual cod din github sau de altundeva de pe net si a-l incarca in uC ci daca cineva a studiat si inteles ce-i cu callback-urile alea, de ce se afirma ca acest driver ar merge SI fara activarea intreruperilor cand mie strict acelasi cod nu-mi merge cu GIE=0 s.a.m.d. Pentru puritani mentionez de la inceput ca inca mai sunt in stare sa scriu un cod pornind de la datasheet insa nu vreau sa fac asta pt. toate procesoarele pe care le-am folosit sau o sa le folosesc... Deci, daca cineva este doritor de discutii sau sa facem "schimb de experienta" pe tema asta... poftiti va rog... L.E. Atasez codul generat de MCC pt. I2C ca sa fie mai usor pt. cine vrea sa arunce o privire. i2c1_master.h i2c1_master.c i2c1_master_example.c i2c1_master_example.h Editat Aprilie 18, 2020 de informer Link spre comentariu
Liviu M Postat Aprilie 18, 2020 Partajează Postat Aprilie 18, 2020 Daca gasesc vreun circuit cu i2c (aveam niste eeproame pe undeva) si ma invrednicesc sa instalez niste vesiuni mai noi de soft, ma bag eu, da' nu stiu cand apuc. Link spre comentariu
informer Postat Aprilie 18, 2020 Autor Partajează Postat Aprilie 18, 2020 (editat) Daca tot ce-ti lipseste este device-ul I2C si-n rest esti tanar si nelinistit sa te ocupi de elucidarea misterelor io am "jde"... iti trimit dupa preferinte, memorie, IC senzor, ce vrea "muschiu` tau" . Intre timp am constatat ca driver-ul asta intr-adevar nu se blocheaza pt. o adresa gresita de slave cu conditia sa existe totusi un slave... da` daca de ex. intrerup una dintre liniile bus-ului dupa ce-a comunicat o vreme cu succes... "adio si la gara". Asa ca nu-i neaparat complexitatea raspunsu` la toate intrebarile... sau poate exista un callback pt. "instante superioare" care nu-i bagat in seama... mai vedem, munca-i in progres. Paste Fericit! Editat Aprilie 18, 2020 de informer Link spre comentariu
Liviu M Postat Aprilie 19, 2020 Partajează Postat Aprilie 19, 2020 Multumesc de oferta da' nu-i nevoie. "Virgine" am sigur, da's SO8 si n-am cum sa le conectez. Intre timp le-am descoperit pe cele "adaptate" la DIL8, asa ca asta s-a rezolvat. Ramane restul. Paste Fericit! Link spre comentariu
informer Postat Mai 11, 2020 Autor Partajează Postat Mai 11, 2020 Inteleg ca n-a prea lucrat nimeni cu driver-ul I2C generat de MCC... Un modul MSSP poate fi convins sa lucreze si fara intreruperi dar acu` am dat peste alta tampenie... imediat ce activez al 2-lea modul nu mai functioneaza nici primul. Gasesc implementarea dezamagitoare, de acord cu nenumarati altii de pe net... si rusinoasa, as spune. Driver-ul celor de la Mikroe o fi mai simplist si fara atatea protectii (unele doar cu numele...) dar macar nu genereaza atatea probleme. Link spre comentariu
Liviu M Postat Mai 11, 2020 Partajează Postat Mai 11, 2020 Sorry, m-am laudat degeaba, n-am reusit sa fac nimic. Link spre comentariu
informer Postat Mai 12, 2020 Autor Partajează Postat Mai 12, 2020 Mie toata treaba mi se pare excesiv de complicata, mai ales pt. nevoile mele. N-am avut NICIODATA nevoie de comunicatii I2C multi-master si nici macar de implementarea vreunui slave I2C... si dupa umila mea parere in situatia asta sunt mare parte dintre utilizatori. Tot ce vroiam era o implementare "rock solid" pt. un single master I2C care sa nu fie blocanta in nici unul dintre cazurile de manifestare aberanta a vreunui periferic (intrerupere comunicatie, "monopolizare" bus etc.). In loc de asta avem aici o implementare partiala de nava spatiala a carei functionare este neclara, neterminata si relativ imprevizibila. Pana la urma am sa renunt in masura posibilului la I2C in favoarea SPI iar cand chiar n-am incotro o sa scriu o librarie SW pt. master, minimala si neblocanta... ca oricum viteze supersonice nu prea se practica pe I2C... Link spre comentariu
djvas Postat Mai 12, 2020 Partajează Postat Mai 12, 2020 Stiu ca la MikroE de la versiunea 7.ceva libraria I2C nu mai este blocanta. Din pacate eu sunt blocat la versiunea 6 din diverse motive ... financiare :) asha ca nu am avut posibilitatea sa o testez. Dar sunt convins ca tu ai testat-o . Cum se manifesta ? Link spre comentariu
informer Postat Mai 12, 2020 Autor Partajează Postat Mai 12, 2020 1 oră în urmă, djvas a spus: Stiu ca la MikroE de la versiunea 7.ceva libraria I2C nu mai este blocanta. Din pacate eu sunt blocat la versiunea 6 din diverse motive ... financiare asha ca nu am avut posibilitatea sa o testez. Dar sunt convins ca tu ai testat-o . Cum se manifesta ? Eu rulez MikroC in VM cu XP si ultima versiune care merge in XP este 7.1... iar la asta daca-i dai o adresa gresita a unui slave, adio si la gara. Am si o VM cu Win7 si cu 7.2 sau .3 parca dar se misca destul de incet si n-am folosit. OS-ul este dealtfel motivul pt. care am vrut Necto si am ajuns pana la urma la MPLAB si XC8. Dar revenind la I2C, daca elimini toate brizbriz-urile legate de coliziuni / multi-master, ultra fast mode, 10bits address etc., ce ramane pt. comunicatia cu un banal senzor, LCD sau EEPROM, neblocant, se poate implementa ca librarie SW in 3 - 4 ore de lucru cu tot cu teste... ceea ce am de gand sa fac... 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