Hi! This is my first post. I can usually solve stuff from internet searches, but not today.
When I send and values above 2047, the resulting output from the MCP4725 is always 5v. Sending values below 2047 results in voltages ‘around’ the desired value. For instance, sending 1024 should result in a voltage of 2.5v, I get 2.63. I get this could be from the supply voltage which is 5.22.
Here is my setup:
Raspberry pi 4 b running raspian
SCL,SDA,+5,GRD pins directly wired from rPi to MCP connector cable (the OUTPI2 Rev C caused rPi hard crash when connected MCP4725)
Voltage is supplied from the GPIO pins on the rPi
Output is measured with multimeter
Writing to MCP4725 using SMBUS2 with Python 3
Is there something causing the limited output? Do I need to do something configure the MCP4725 to output from 5-10v?
Any help that can be provided would be greatly appreciated. I have spent a lot of time trying to figure this out.
<<<<<<<<<<<<<<< START >>>>>>>>>>>>>>
to_bytes: b'\r\xac'
OUT
[0] 11011010 | [1] 11000000
3500
------------------------
READ BACK
RAW [0] 11000000 | [1] 11011010 | [2] 11000000
[0] 11000000 | [1] 11011010 | [2] 1100
3500
------------------------
ADC Raw ADC Output: 218
ADC Voltage Output: 0.07 V
I thought I might be sending the bytes to the wrong registers, but from the output, it looks ok. I can’t think of another reason the MC4725 would not be outputting the desired voltage.
This is my first experience with NCD products. Both the OUTPI2 and the MCP4725 did not work. I put in a bunch of time trying to figure it out. Since I am located in canada and fees to get this stuff across the boarder are more than the products are worth, I won’t be getting it repaired. I also won’t be getting any other NCD products, which is too bad because we are prototyping a control system that would be duplicated many, many times.
I sincerely thank you for your help! This is an issue with the product, not with the folks trying to provide support.
Hi Jeff,
Apologies for the trouble.
Just looked at the picture you shared. measure the voltage on right side caps ( attaching the picture). It should be around 11V12V. If its 11V- 12V than i beleive the board is producing full power.
I measured across the components you showed. I get 5.05v on both after sending 3500 to the MCP4725.
I powered down the rPi and disconnected the MCP4725. I booted the rPi and waited for it to come up. I reconnected the MCP4725. The voltage between VOUT and GND was 5.04v.
I received the new MCP4725 module today. I ran your test program and everything checks out. Thank you so much for the customer focused response!!
I have a question about how you knew what value to use for the DAC channel (0x41). I don’t see this in any of the literature. Can you please explain this number so I know what it means?
Related to that, I want to use the “read_i2c_block_data” function with this module. The parameters are read_i2c_block_data(i2c_addr,register,length). This has been working for me as follows: bus.read_i2c_block_data(0x60, 0, 3). Can you shed some light on why 0 works in the read and 0x41 works in the write? I have not tried it because I thought I read somewhere that reading actually writes something the the eprom depending on the address. So, I would like to know what’s the best reading register to use so I don’t possibly cause another issue.
Again, I really appreciate you sending me a good module. I can hook this up to a control valve next week and start proving the process.
The value can be found in MCP4725 datasheet. I havent looked into datasheet since i write that test script.
I will recommend staying away from the EEPROM write during initial testing.