Other Parts Discussed in Thread: AM625, TXB0104
Tool/software:
Hi ,
I am using this DAC board DAC124S085EVM Evaluation board | TI.com and linux drivers from kernel.org/doc/Documentation/devicetree/bindings/iio/dac/ti%2Cdac082s085.yaml driver and below is my node ,
&main_spi0 {
ti,spi-num-cs = <2>;
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <23000000>;
};
dac@1 {
compatible = "ti,dac124s085";
reg = <1>;
spi-max-frequency = <30000000>;
spi-cpha;
vref-supply = <&vref_4v095_reg>;
};
};
I have two slaves on my board and only DAC is connected. I am using AM625 SOM and I can see SPI transections as below over SPI lines using logic anaylser
for 100 counts it sends below on each channel
Channel VOA when I write 100 using
echo 100 > /sys/bus/spi/devices/spi0.1/leds/dac124s085-0/brightness
On SPI lines I see signals = 0x64 0x10 = 01100100 00010000
echo 100 > /sys/bus/spi/devices/spi0.1/leds/dac124s085-1/brightness
On SPI lines I see signals = 0x64 0x50 = 01100100 01010000
echo 100 > /sys/bus/spi/devices/spi0.1/leds/dac124s085-2/brightness
On SPI lines I see signals = 0x64 0x90 = 01100100 10010000
echo 100 > /sys/bus/spi/devices/spi0.1/leds/dac124s085-0/brightness
On SPI lines I see signals = 0x64 0xD0 = 01100100 11010000
above signals are as expected.
but on HW this is the behaviour , I dont see any correct relation between my setting and Pin state. Other channels are affected too even when I am not sending command to update all and values are incorrect see below table , I tested one channel at a time and noted the behaviour on other channels.
Channel under test | Calculated Values using formula from datahseet | Actual Values on IC using multimeter | Other Channel voltage when I make a count change on channel under test | Comments | ||||
Channel A | Expected Count | Expected Voltage | Actual Voltage on pin | Actual Count Caculated using formula | B | C | D | |
A | 0 | 0 | 0.0283 | 28.3 | ||||
A | 100 | 0.1 | 1.0403 | 1040.3 | 1.0403 | 1.0403 | 1.04 | |
A | 500 | 0.5 | 0.2768 | 276.8 | 0.292 | 0.279 | 0.41 | keep changing |
A | 1000 | 1 | 2.069 | 2069 | 2.069 | 2.065 | 2.065 | |
A | 1500 | 1.5 | 2.2598 | 2259.8 | 2.2618 | 2.2577 | 3.092 | |
A | 2000 | 2 | 2.2598 | 2259.8 | 2.2618 | 2.2577 | 0.024 | |
A | 3000 | 3 | -0.063 | -63 | -0.065 | -0.068 | -0.071 | changing gowing more low and again stable |
A | 4095 | 4.095 | 0.5 | 500 | 0.498 | 0.514 | 0.498 | Keep on increaing slowly |
Channel B | Expected Count | Expected Voltage | Actual Voltage | Actual Count | A | C | D | |
B | 0 | 0 | 0.0493 | 49.3 | ||||
B | 100 | 0.1 | 1.1076 | 1107.6 | 1.1051 | 1.1035 | 1.104 | |
B | 500 | 0.5 | 0.334 | 334 | 0.289 | 0.394 | 0.45 | keep changing |
B | 1000 | 1 | 2.1333 | 2133.3 | 2.1318 | 2.1295 | 2.128 | |
B | 1500 | 1.5 | 2.2618 | 2261.8 | 2.2599 | 2.2577 | 3.155 | |
B | 2000 | 2 | 2.2618 | 2261.8 | 2.2599 | 2.2577 | 0.088 | |
B | 3000 | 3 | -0.063 | -63 | -0.065 | -0.068 | -0.071 | changing gowing more low and again stable |
B | 4095 | 4.095 | 0.499 | 499 | 0.488 | 0.512 | 0.498 | Keep on increaing slowly |
Channel C | Expected Count | Expected Voltage | Actual Voltage | Actual Count | A | B | D | |
C | 0 | 0 | 0.00363 | 3.63 | ||||
C | 100 | 0.1 | 1.1678 | 1167.8 | 1.1694 | 1.1719 | 1.168 | |
C | 500 | 0.5 | 0.44 | 440 | 0.372 | 0.412 | 0.477 | |
C | 1000 | 1 | 2.1939 | 2193.9 | 2.1962 | 2.1977 | 2.193 | |
C | 1500 | 1.5 | 2.2577 | 2257.7 | 2.2599 | 2.2618 | 3.21 | |
C | 2000 | 2 | 2.2577 | 2257.7 | 2.2599 | 2.2618 | 0.152 | |
C | 3000 | 3 | -0.073 | -73 | -0.075 | -0.073 | -0.075 | changing gowing more low and again stable |
C | 4095 | 4.095 | 0.513 | 513 | 0.49 | 0.54 | 0.498 | Keep on increaing slowly |
Channel D | Expected Count | Expected Voltage | Actual Voltage | Actual Count | A | B | C | |
D | 0 | 0 | 0.002 | 2 | ||||
D | 100 | 0.1 | 1.2311 | 1231.1 | 1.2333 | 1.2356 | 1.231 | |
D | 500 | 0.5 | 0.322 | 322 | 0.336 | 0.42 | 0.32 | |
D | 1000 | 1 | 2.2569 | 2256.9 | 2.2598 | 2.2618 | 2.258 | |
D | 1500 | 1.5 | 3.2825 | 3282.5 | 2.2599 | 2.2618 | 2.258 | |
D | 2000 | 2 | 0.215 | 215 | 2.2599 | 2.2618 | 2.258 | |
D | 3000 | 3 | -0.073 | -73 | -0.075 | -0.073 | -0.075 | |
D | 4095 | 4.095 | 0.513 | 513 | 0.49 | 0.54 | 0.498 | Keep on increaing slowly |
I am not sure why other channels are affected and why voltage on pins are not in map with the counts I write?
when the other channels are affected if I read the value as
cat sys/bus/spi/devices/spi0.1/leds/dac124s085-1/brightness
it doesnt change but the output changes when I change channel count.
I VA =5V and ref voltage is 4.095 as.
I connect pins of DAC EVM as below
5V = 5V external power supply with 1A current limit
GND= Common ground
SYNC = CS
CLOCK = CLOCK
DIN = MOSI
Please help as I do need stable output and single channel control. This is an urgent request please look into this matter.
Regards,
Varsha