I2C DAC <-> Arduino Alleen na reset van het DAC.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Voyager2
  • Registratie: Maart 2011
  • Laatst online: 11-07-2018
Het is een beetje uit de richting van wat hier normaal voorbij komt maar oke.

Ik heb een DAC gebouwt met een boardje van DIYINHK, Het is een ES9018 DAC.
Deze is bestuurbaar via I2C, en iemand heeft daar software voor geschreven.

http://hifiduino.wordpres...n-and-guide-to-hifiduino/

Je kan daarmee via een Arduino dan volume, input, setting etc regelen.
Nu heb ik mijn DAC af en het klinkt prima alleen ik krijg dit deel niet 100%

Na het inschakelen mute de controller het DAC omdat je dan zo van die inschakel plop af bent.
Daarna gebeurd er helemaal niets meer. Het DAC heeft een reset jumper als ik die gebruik is alles perfect. Ik kan de sample rate uitlezen, met de apple remote volume bedienen etc.

Maar dus alleen NA een reset van het DAC IC zelf.

Ik heb een andere arduino geprobeerd, met en zonder level converter (het is onduidelijk of het IC 5v tollerant is, sommige mensen gebruiken het wel andere niet)

En ik begin door me opties heen te raken, waarom babbeld het DAC alleen na een reset. Het resetten van de controller heeft verder geen zin het moet aan de kant van het DAC zelf zijn.

Iemand enig idee?

http://i.imgur.com/iMVANbG.jpg

Dit is de hele setup..

Acties:
  • 0 Henk 'm!

  • Cassettebandje
  • Registratie: Juli 2002
  • Laatst online: 08-10 11:40

Cassettebandje

SA-C90 TDK

Het kan zijn dat de dac's I2C bus out of sync is. Als hij een paar spikes of pulsen heeft gekregen op SCL dan wacht hij tot de byte af is en gaat dan pas weer normaal doen. Je kunt dat herkennen doordat SDA laag wordt gehouden door de DAC en de arduino daardoor geen start condition kan sturen. Meet even met de multimeter wat er gebeurt op zo'n moment.

Een oplossing is door ook een I/O pin aan de reset van de dac vast te maken, zodat je hem handmatig kunt resetten. Een andere oplossing is om in zo'n geval de I2C peripheral uit te schakelen, SDA los te laten (input) en handmatig een stel klokpulsen over de SCL line te bitbangen (let op, open collector, dus niet hard hoog sturen, alleen input-laag-input-laag, enz.). Het aantal pulsen maakt uit: genoeg om het langste bericht kwijt te zijn, een honderdtal zou genoeg moeten zijn.

Je zult een timeout moeten voorzien om te detecteren of de dac is vastgelopen.

Acties:
  • 0 Henk 'm!

  • Voyager2
  • Registratie: Maart 2011
  • Laatst online: 11-07-2018
Ik had dit probleem ook op het eevblog forum gezet en die kwam met de zelfde oplossing qua reset.
2 problemen daarmee, 1 volgens mij is er geen I/O over meer, 2 ik zou niet weten hoe ik dat moet programeren.

het voltage op beide lijnen is en blijft 3,84v

Ik kwam er wel achter dat als ik na power up, de I2C line verbind het ook prima gaat. zolang het bij power up maar niet verbonden is.

Ik zit zelf steeds te denken dat er ergens een ground loop zit die ik niet door heb omdat ik 2 transformers gebruik...Deze setup werkt prima bij een aantal mensen, enige verschil zal zijn dat ik Digital VCC op een 2e transformer heb zitten samen met de controller.

Ik ga een bus pirate bestellen, dan kan ik tenminsten zien WAT er gebeurd.

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 20:52

Damic

Tijd voor Jasmijn thee

RC keten en een tor, zolang de c niet is opgeladen reset blijven hoog houden :)

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • Voyager2
  • Registratie: Maart 2011
  • Laatst online: 11-07-2018
Kan maar volgens mij worden bij het starten van de arduino de settings in het register geschreven van het DAC als ik hem later connect via I2C krijg ik volgens mij die settings niet mee.