iss wrote: ↑Thu Jul 21, 2016 9:11 am
- Channel A = max 0.917V
- Channel A+B = max 1.30V
- Channel A+B+C = max 1.58V
Values are produced using this Basic code:
Code: Select all
10 MUSIC 1,3,6,15
20 MUSIC 2,3,6,15 <- comment to disable chan.B
30 MUSIC 3,3,6,15 <- comment to disable chan.C
40 PLAY 7,0,15,0
I think I know why you measure
1.58V but I'm not sure so .. if someone can check .. it would be cool.
I started by calculating the impedance formed by R2, R3 and R4 resistor network.
I found that it is equivalent to a
838 Ohms resistor.
Then, since I = U / R , I deduced that the current running through this impedance was:
And it turns out that this value (2mA = 2000µA) corresponds to the one that is specified in the AY-3-891x datasheet at the Analogs Channel Outputs section here below (as the maximum output current):
Nothing is said in the datasheet about how channels level contribute to the total output current. So I find it is difficult to figure out how the signal is going to be depending on values set in R10, R11 and R12 (amp control) registers.
For example, I still don't know where the 0.917 V and 1.30 V measured voltage come from. I only have assumptions about it.
If anyone have a clue .. I would love to know it.
I want to identify the function F that gives the current running through the impedance made by resistors R2, R3 and R4 depending on values set in amplitude control registers R10, R11 and R12.
If anyone has an idea, I'm highly interested.
From various source code I read about playing samples, I find that most people consider that:
Code: Select all
I = f(unlog(R10) + unlog(R11) + unlog(R12))
with:
- f(x) being of the shape ax + b
- unlog(x) being the inverse log (something like
)
But measurements shown by iss tends to show that f(x) is not linear
Because in the code that was ran for the measurement:
Code: Select all
10 MUSIC 1,3,6,15
20 MUSIC 2,3,6,15 <- comment to disable chan.B
30 MUSIC 3,3,6,15 <- comment to disable chan.C
All three channels are at level 15 (maximum level)
When all three are simultaneously at top level, the output voltage reach 1.58 V
If the f(x) was linear:
- we would have 2/3 of 1.58 V when only 2 channels are active
- we would have 1/3 of 1.58 V when only 1 channel is active
But it's not the case.
So, from my point of view, all tables currently used to play samples on more than one channel are inaccurate because they do not integrate the non linearity of the channel mixing function.