digix Posted June 14, 2017 Share Posted June 14, 2017 Daca conectez IN+ la 3.3V si IN- la GND am in consola seriala valori intre 4092-4095. Am vrut ceva mai stabil si am folosit o referinta de 2.5V (MCP1525) citirea devine stabila dar este 4091 in loc de 4095 cand IN+ este conectat la Vref si IN- la GND. Din datasheet MCP3201 lucreaza la frecvente intre 0.8-1.6MHz in functie de tensiunea de alimentare (2.7-5V) Unde gresesc ? Codul utilizat: #include <SPI.h> const int chipSelectPinADC = 15; unsigned int result = 0; byte inByte = 0; void setup() { Serial.begin(9600); SPI.begin(); SPI.setBitOrder(MSBFIRST); //SPI.setClockDivider(SPI_CLOCK_DIV8); SPI.setFrequency(800000); pinMode(chipSelectPinADC, OUTPUT); digitalWrite(chipSelectPinADC, HIGH); } void loop() { digitalWrite(chipSelectPinADC, LOW); result = SPI.transfer(0x00); result = result << 8; inByte = SPI.transfer(0x00); result = result | inByte; digitalWrite(chipSelectPinADC, HIGH); result = result >> 1; result = result & 0b0000111111111111; Serial.println(result); delay(1000); } Link to comment
UDAR Posted June 14, 2017 Share Posted June 14, 2017 În DS scrie că Gain error poate ajunge până la 5LSB. Link to comment
digix Posted June 14, 2017 Author Share Posted June 14, 2017 Am mai multe ADC, o sa le incerc sa vedem daca asta este explicatia. Link to comment
red93 Posted June 14, 2017 Share Posted June 14, 2017 De câte ori am lucrat cu SPI-ul problemele au venit din setarea modului corect de funcționare. MCP-ul functionează în modul 0,0 și 1,1 (din datasheet). Modul se referă la polaritatea clock-ului si faza pe care se citesc datele. Vezi să nu fie de aici. O altă posibilitate este să nu ai SPI-ul configurat corect sau conectat corect. Link to comment
digix Posted June 15, 2017 Author Share Posted June 15, 2017 Am testat 4 bucati toate arata 4091. Link to comment
Liviu M Posted June 15, 2017 Share Posted June 15, 2017 Ai incercat si cu un clock mai lent, ca sa fii sigur ca nu e de acolo? Link to comment
nico_2010 Posted June 15, 2017 Share Posted June 15, 2017 Dar tensiunea de referinta ai masurat-o? Montajul este realizat pe breadboard? Link to comment
digix Posted June 15, 2017 Author Share Posted June 15, 2017 Am incercat cu clock intre 0.1-1.6MHz si rezutatul este acelasi. Am masurat referinta si este ok, da este pe breadboard si aici chiar am ceva suspiciuni desi este un Wish de caliate cred ca trebuie incercat si pe un cablaj. Link to comment
nico_2010 Posted June 15, 2017 Share Posted June 15, 2017 Lucrul pe breadboard poate induce ciudatenii: contacte imperfecte (rezistenta diferita de zero), ring, continuitate precara (sau chiar intreruperi) pe acelasi sir de pini (mai ales pe barele de alimentare) Link to comment
Liviu M Posted June 15, 2017 Share Posted June 15, 2017 Nodemcu asta e cu ESP8266? Wifi-ul e activat? LE Am citit codul, nu pare activat. Link to comment
digix Posted June 15, 2017 Author Share Posted June 15, 2017 Da este esp8266 dar nu vad ce legatura ar fi intre WiFi si ce citesc eu pe SPI. Folosesc nodemcu cand fac teste pentru ca are port usb,face autoreset dupa upload, mi-e mai comod dar in final softul ajunge pe un esp8266-07. Link to comment
Liviu M Posted June 15, 2017 Share Posted June 15, 2017 Wifi-ul consuma mult, ma gandeam la un eventual offset pe masa. Mi s-a intamplat sa vad diverse mase laund-o la plimbare din cauze de consum. LE Dar ai dreptate, sunt la capatul gresit al montajului. Nu folosesti ADC-ul din ESP. Link to comment
digix Posted June 15, 2017 Author Share Posted June 15, 2017 Am mutat partea de referinta 2.5V pe alta zona din breadboard si am un 4095 curat si constant. Concluzia este ca in cazul ADC-urilor testele trebuie facute pe cablaj lipit. Va multumesc pentru sfaturi ! Link to comment
digix Posted June 22, 2017 Author Share Posted June 22, 2017 Revin cu intrebari despre protectia intrarii la supratensiune. Am pe intrare un divizor de tensiune format din R1=30K 0.1% si R2=10K 0.1% asta imi permite o plaja de intrare 0-10V. Am pus un condensator 0.1uF pe intrarea ADC si am citiri fara flucuatii pentru o tensiune de intrare constanta. Din volt in volt am comparat rezutatele cu citirile de pe un voltmetru de caliatate si diferentele sunt minore, la a 3-a zecimala. Referinta mea este de 2.5V si ma gandesc sa pun un zener de 2.5V pe intrare. M-am documentat un pic si condensatorul trebuie sa fie cu pierderi cat mai mici. Ce tip de condensator ar fi cel mai potrivit ? Cat de mult influenteaza prezenta unui zener functionarea corecta a ADC ? Exista o alta metoda nu prea sofisticata de protectie ? Link to comment
nico_2010 Posted June 23, 2017 Share Posted June 23, 2017 Un condensator de tip "poliester metalizat" sau "multistrat" este foarte potrivit pentru aplicatia ta, cu conditia de a avea o tensiune de functionare mult mai mare decat tensiunea maxima prezenta la bornele sale. Povestea cu condensatorul cu pierderi cat mai mici se pune doar in cazul in care semnalul aplicat la intrare este semnal alternativ. Pentru a doua intrebare (si cred ca si pentru a treia): http://www.avrfreaks.net/forum/using-zener-diode-adc-input-protection Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now