Sari la conținut
ELFORUM - Forumul electronistilor

Esec comanda PCM1795 de catre Arduino Nano


merck

Postări Recomandate

4 hours ago, nico_2010 said:

Verifica in ce masura MSEL este cu adevarat la GND si poate ar trebui sa implementezi software reset-ul circuitului integrat.

Pe buzer imi suna pinul 3 (MSL) inclusiv si daca pun pe mufa USB. Am pus pinul RST si pe un pin de la arduino si nici un rezultat. E clar ca este o problema hardware. 

 

P.S. Am mai pus toti pinii de pe partea digitala la masa (LRCK, DATA, BCK, SCL) si nici o schimbare. 

Editat de merck
Link spre comentariu
  • Răspunsuri 79
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

14 hours ago, informer said:

Astazi fiind data de 13 (inca) as vrea, cu scuzele de rigoare, sa insist pe pinul 13 - MDO (MISO... ala care se schimba cand puneti analizorul). :)
Citesc in datasheet ca:

"(2) Schmitt-trigger input and output. 5-V tolerant input. In I 2C mode, this pin becomes an open-drain 3-state output; otherwise, this pin is a CMOS output."

Dupa parerea mea daca o iesire CMOS isi schimba starea cand se conecteaza o intrare de analizor, ceva nu-i OK acolo. Ori nu-i in mod SPI  adica CMOS output, ori e o problema de conexiune/lipitura/contact... as verifica asata intai de toate.
Da` nah, poate maine... noapte buna!

 

De oftica am pus MSEL la +3,3V (ca si cum as selecta I2C) si desi tot nimic nu citesc, macar nu-mi mai afiseaza in serial monitor 11111111 la conectarea analizorului ci afiseaza 0 tot timpul.

 Deci MSEL se pare ca face ceva. 

Link spre comentariu
26 minutes ago, Liviu.Mihaiu said:

Mai verifica inca o data daca ai conectat corect SPI Out -> In si In->Out intre Arduino si DAC.
 

Pinul 11 (MOSI) de la Arduino "suna" cu pinul 11 (MDI) de la PCM1795

Pinul 12 (MISO) d ela Arduino "suna" cu pinul 13 (MDO) de la PCM1795

Montajul este facut pe breadbord cu fire de 10-15cm. Am mai sunat si alti pini si se pare ca fac contact. 

Link spre comentariu
27 minutes ago, Mircea said:

N-am citit totul, oricum nu intelegeam, dar frecventa de tact e cat vrea PCM-ul?

PCM1795 poate pana la 10MHz. Unii l-au comandat la 8,32MHz si a mers insa cu un STM32 nu cu Arduino. 

Eu am inceput de la 8MHz si am coborat pana la 125kHz si ... nimic. 

 

Link spre comentariu

Sunteti convins ca integratul asta permite comunicarea SPI/I2C in lipsa clock-ului de sistem SCK?

 

Ma pune pe ganduri treaba asta referitoare la reset:

The PCM1795 includes a power-on reset function, as shown in Figure 40. With VDD > 2 V, the power-on reset function is enabled. The initialization sequence requires 1024 system clocks from the time VDD > 2 V. After the initialization period, the PCM1795 is set to its default reset state, as described in Mode Control Registers.

Link spre comentariu
12 minutes ago, informer said:

Sunteti convins ca integratul asta permite comunicarea SPI/I2C in lipsa clock-ului de sistem SCK?

 

Ma pune pe ganduri treaba asta referitoare la reset:

The PCM1795 includes a power-on reset function, as shown in Figure 40. With VDD > 2 V, the power-on reset function is enabled. The initialization sequence requires 1024 system clocks from the time VDD > 2 V. After the initialization period, the PCM1795 is set to its default reset state, as described in Mode Control Registers.

Hm, asta este sigur buba :41

Tipul cre comanda un PCM avea placa complet facuta si conectata la computer deci avea SCK. 

 

P.S. Deja ma pregateam sa sar la comanda pe I2C insa ai aici este o buba ca I2C din arduino stie doar de adrese pe 7 biti. 

 

Editat de merck
Link spre comentariu
20 minutes ago, merck said:

Deja ma pregateam sa sar la comanda pe I2C insa ai aici este o buba ca I2C din arduino stie doar de adrese pe 7 biti. 

Bine ca nu te-ai apucat si de I2C :)
Are dreptate @informer, ciudatul asta de DAC (conform pdf) are nevoie de clock extern ca sa functioneze.


 

Link spre comentariu
Acum 22 minute, merck a spus:

P.S. Deja ma pregateam sa sar la comanda pe I2C insa ai aici este o buba ca I2C din arduino stie doar de adrese pe 7 biti. 

Asta nu este o problema... unii producatori dau adresa specifica read/write pe 8biti iar altii dau adresa de 7biti din care se construieste cea de 8 functie de tipul operatiei.
Mai pe scurt, nu-i nici o problema sa convertesti din una in alta.

Link spre comentariu
1 hour ago, informer said:

Sunteti convins ca integratul asta permite comunicarea SPI/I2C in lipsa clock-ului de sistem SCK?

 

Ma pune pe ganduri treaba asta referitoare la reset:

The PCM1795 includes a power-on reset function, as shown in Figure 40. With VDD > 2 V, the power-on reset function is enabled. The initialization sequence requires 1024 system clocks from the time VDD > 2 V. After the initialization period, the PCM1795 is set to its default reset state, as described in Mode Control Registers.

 

:dsaf 

:n1

m-ai scos din cacat! :rade:. Desi am vazut pe youtube ca tipul cu STM32 avea PCM-ul conectat la computer (deci avea clock-ul) continuam cu incapatanare (din cauza lenii!!!) sa caut o greseala  in loc sa citesc PDF-ul cap coada. 

Acum ce scriu, aia citesc! :ewryt45w

 

Screenshot-2022-02-14-at-16-47-37.png

 

Screenshot-2022-02-14-at-16-46-33.png

 

 

Editat de merck
Link spre comentariu
On 2/14/2022 at 3:52 PM, informer said:

Asta nu este o problema... unii producatori dau adresa specifica read/write pe 8biti iar altii dau adresa de 7biti din care se construieste cea de 8 functie de tipul operatiei.
Mai pe scurt, nu-i nici o problema sa convertesti din una in alta.

Am zis sa verific sa vad daca nu-i nici o problema si .... nu-mi merge :84

 

Screenshot-2022-02-15-at-17-08-28.png

 

codul folosit:

#include <Wire.h>

void setup() {
  Wire.begin();                
 }



void loop() {
  
  Wire.beginTransmission(0b01001100); // adresa PCM1795 pe 7 biti este 1001100 - am pus cei doi pini la masa
  Wire.write(byte(0x12));    //adresa registrului 18  
  Wire.write(byte(0x50));    //o valoare oarecare care vreau sa o inscriu  
  Wire.endTransmission();      // stop transmitting
  
  Wire.requestFrom(0b01001100, 1); //vreau sa testez citirea
  Wire.endTransmission();  
  }

 

Screenshot-2022-02-15-at-17-43-05.png

 

Din ce vad adresa de 7 biti este completata de functia de scriere cu 0 in coada si cu 1 pentru citire. Problema este ca PCM1975 nu raspunde (primesc NACK). 

Am pus MSEL la 3,3V, am conectat cele doua linii la +3,3V prin rezistori de 1,2Kohmi. 

Clock-ul este tot cel de la SPI (nu are 100kHz in cap ci vreo 97kHz, dar cu el asa merge SPI-ul). 

Iar imi scapa ceva insa ... nu vad ce :84.

Please help me!

Editat de merck
Link spre comentariu

Mai mai... da` berea ai pregatit-o? :rade:

Azi is cam prins cu probleme locale...

Prima intrebare-i unde ai legat pinii de selectie adresa (MS si MDI)? I-ai legat la masa sau nu, ca vad ca adresa ai pus-o cu 00 la sfarsit....
Pe de alta parte daca tot lucrezi cu Arduino implementeaza read-u` cu available() si ce-i acolo, vezi ca sunt exemple... nu-s convins ca asta-i neaparat o problema dar nu stiu libraria aia... nu prea-s io cu Arduino... :).

 

Editat de informer
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