I have just finished building the 9038 pro with the Mercury. It sounds a bit darker, but with a lot of details and a large sound stage.
However I am at a dead end to get i2c communication working. I am using a Buffalo III for 6 channels and the 9038 pro for two channels. An Arduino Uno is connected to the Buffalo III then i2c cables from the Buffalo III to the 9038. The 9038 is replacing a Buffalo II. For some reason I do not manage to get the i2c communication working for the 9038. I have removed the chip and connected the cables to the i2c header. The code has also been modified to work with the 9038. However no luck so far. I put the DAC in Reset mode and out of reset mode via software.
Any suggesion?
Do I have to short the ADC header?
I have tried to set the addr header on both boards. The Buffalo III works in both cases, but not the 9038
However I am at a dead end to get i2c communication working. I am using a Buffalo III for 6 channels and the 9038 pro for two channels. An Arduino Uno is connected to the Buffalo III then i2c cables from the Buffalo III to the 9038. The 9038 is replacing a Buffalo II. For some reason I do not manage to get the i2c communication working for the 9038. I have removed the chip and connected the cables to the i2c header. The code has also been modified to work with the 9038. However no luck so far. I put the DAC in Reset mode and out of reset mode via software.
Any suggesion?
Do I have to short the ADC header?
I have tried to set the addr header on both boards. The Buffalo III works in both cases, but not the 9038
Last edited:
I believe that you do.
Brian's controller does it through software control of the reset pin.
The proper thing to do appears to be to control the reset pin by the arduino, so as to properly reset the 9038 after power-on, but in all of my testing I've had no problems with the reset pin being always pulled down.
Brian's controller does it through software control of the reset pin.
The proper thing to do appears to be to control the reset pin by the arduino, so as to properly reset the 9038 after power-on, but in all of my testing I've had no problems with the reset pin being always pulled down.
Dimdim
Just so I understand you correctly. Pin 1 on the GPIO could be connected with a jumper to ground (kept low) all the time and then I can do the reset by i2c via software?
If I understand Brian's code correctly. The pin1 is kept low when the dac turns on and then after 1500ms pulled up.
Just for referrence of the reset pin: The reset pin should be kept low until all power supplies are up and running. Then the reset pin should be set high. To reset the dac after the power up sequence the reset pin needs to be pulled low then high. Is this correct understanding?
Just so I understand you correctly. Pin 1 on the GPIO could be connected with a jumper to ground (kept low) all the time and then I can do the reset by i2c via software?
If I understand Brian's code correctly. The pin1 is kept low when the dac turns on and then after 1500ms pulled up.
Just for referrence of the reset pin: The reset pin should be kept low until all power supplies are up and running. Then the reset pin should be set high. To reset the dac after the power up sequence the reset pin needs to be pulled low then high. Is this correct understanding?
Last edited:
Dimdim
Just so I understand you correctly. Pin 1 on the GPIO could be connected with a jumper to ground (kept low) all the time and then I can do the reset by i2c via software?
Pin 1 should be connected to gnd through a resistor (it probably already is..).
At power-on, after the supplies have stabilized, it should be pulled high by a digital line from the arduino, not through i2c.
If I understand Brian's code correctly. The pin1 is kept low when the dac turns on and then after 1500ms pulled up.
Just for referrence of the reset pin: The reset pin should be kept low until all power supplies are up and running. Then the reset pin should be set high. To reset the dac after the power up sequence the reset pin needs to be pulled low then high. Is this correct understanding?
Exactly.
In my previous post I meant that I have the reset line constantly pulled high, not low.
Dimdim
Thank you.
What would be the best/easiest way to pull up Pin 1. My arduino board is fully isolated from the DACs. An opto isolated relay?
Thank you.
What would be the best/easiest way to pull up Pin 1. My arduino board is fully isolated from the DACs. An opto isolated relay?
Sure, that would probably work and I say probably because I don't know the value of the pulldown resistor that is present on the reset pin.
Which IC are you using as an isolator? Is there a chance that it has a spare output?
Which IC are you using as an isolator? Is there a chance that it has a spare output?
I would refer you to the on-board firmware on github to see how to correctly control the DAC. If you want help with a specific project (especially since yours is very particular) lets please start a new thread.
GitHub - twistedpearaudio/Buffalo-III-SE-Pro-On-Board-Firmware
GitHub - twistedpearaudio/Buffalo-III-SE-Pro-On-Board-Firmware
BTW it is absolutely not a good idea to just hold reset high all the time - while the DAC will operate (usually) - it will not be properly initialized. This actually matters much more than you might think - as the initialization sets analog operating points.
I use an anolog devices ADuM1250 so no spare output. I go for a relay.
I measure 256 ohm between pin 8 on the dac and pin 1. I do not know if a resistor is needed. The traces are not visible on the board so it is difficult to know if a resistor is needed. I would beleive it is not needed since pin 2 is DVCC. It seems logical to be short pin1 to pin2 without a resistor. Same goes for pin 11 DAC_ADDR short to Pin 12 DVCC.
I measure 256 ohm between pin 8 on the dac and pin 1. I do not know if a resistor is needed. The traces are not visible on the board so it is difficult to know if a resistor is needed. I would beleive it is not needed since pin 2 is DVCC. It seems logical to be short pin1 to pin2 without a resistor. Same goes for pin 11 DAC_ADDR short to Pin 12 DVCC.
BTW it is absolutely not a good idea to just hold reset high all the time - while the DAC will operate (usually) - it will not be properly initialized. This actually matters much more than you might think - as the initialization sets analog operating points.
This is interesting. I thought that I had just got lucky with my power supplies power-up sequencing. I'll do a revision of my code supporting the proper dac reset procedure.
I guess this question fits in this thread.. 🙂 My first build is using an Arduino Due to switch the IO header pins and a MUX. The Arduino is powered from a separate transformer and regulator from all the TPA boards.
The configuration is:
Mercury fed from a TPA Placid BP HD (From transformer 1)
BIIISE fed from one channel of a LPDPS HO and Cronus / Hermes fed from the other. (from transformer 2)
MUX 4:1 fed from one output of a LPDPS at 5v and the other output feeds a Arduino Due. (from transformer 3)
My question is how to connect (on not connect) the grounds, or I guess whether the 0v lines should connect to a case/supply ground. Should the analog and digital ground connect at all?
I am a relative novice when it comes to interfacing analog and digital circuits and not a EE by training so please excuse the perhaps dumb questions!
The configuration is:
Mercury fed from a TPA Placid BP HD (From transformer 1)
BIIISE fed from one channel of a LPDPS HO and Cronus / Hermes fed from the other. (from transformer 2)
MUX 4:1 fed from one output of a LPDPS at 5v and the other output feeds a Arduino Due. (from transformer 3)
My question is how to connect (on not connect) the grounds, or I guess whether the 0v lines should connect to a case/supply ground. Should the analog and digital ground connect at all?
I am a relative novice when it comes to interfacing analog and digital circuits and not a EE by training so please excuse the perhaps dumb questions!
Using a relay to switch the reset pin high worked fine. I finished writing a new firmware for the DAC this weekend. The DAC with my custom firmware works fine. The Buffalo 38Pro is a big upgrade in SQ over the Buffalo II with IVY it is replacing. The sound is warmer with more details and bigger soundstage.
Last edited:
I guess this question fits in this thread.. 🙂 My first build is using an Arduino Due to switch the IO header pins and a MUX. The Arduino is powered from a separate transformer and regulator from all the TPA boards.
The configuration is:
Mercury fed from a TPA Placid BP HD (From transformer 1)
BIIISE fed from one channel of a LPDPS HO and Cronus / Hermes fed from the other. (from transformer 2)
MUX 4:1 fed from one output of a LPDPS at 5v and the other output feeds a Arduino Due. (from transformer 3)
My question is how to connect (on not connect) the grounds, or I guess whether the 0v lines should connect to a case/supply ground. Should the analog and digital ground connect at all?
I am a relative novice when it comes to interfacing analog and digital circuits and not a EE by training so please excuse the perhaps dumb questions!
You must have a common ground - I would simply connect it at the IO header.
Using a relay to switch the reset pin high worked fine. I finished writing a new firmware for the DAC this weekend. The DAC with my custom firmware works fine. The Buffalo 38Pro is a big upgrade in SQ over the Buffalo II with IVY it is replacing. The sound is warmer with more details and bigger soundstage.
Awesome! Glad it is working well for you! Enjoy the music.
All is working well now, thanks for the help. Russ, in a prior thread you mentioned the possibility of customizing the onboard firmware to give additional display outputs, is there anyway that one could get the onboard controller to capture the DAC sampling frequency so that could be read by an external device like an Arduino? - (I know you noted that the data could not read from I2S, there any other way a secondary device can be supplied data from the ATMEL?) My simplistic code now switches all the inbuilt switch functions and displays the settings but is lacking the ability to display the frequency, which would be a nice finishing touch.
Last edited:
This is interesting. I thought that I had just got lucky with my power supplies power-up sequencing. I'll do a revision of my code supporting the proper dac reset procedure.
Hi Dimdim,
did you already implement the improved reset procedure in you're code (1.0.9?)
BR
Branko
- Status
- Not open for further replies.
- Home
- More Vendors...
- Twisted Pear
- Custom firmware for B3/B3SEPro