At my wits end here, spent the last few nights trying different things but I can’t get anywhere.
- Removed all 4051s but J5.A0, and grounded AIN:J5.A1-A3
- Reflowed all AIN joints.
- Been over the board with a magnifying glass, scraped/brushed between connections cleaned to make sure there were no rogue solder trails (it was light - didn’t damage traces)
- Removed breadboard from the equation.
Still getting a large, constant stream of jitter. I am also now getting an “Unrecognised USB device - device has malfunctioned” tooltip on windows XP which I wasn’t getting before, however if I use the J27 jumper and load the Bootloader, this notification does not occur.
Here is an extract of the jitter so you can get an idea of the volume (if that’s relevant):
[4598.587] APP_AIN_NotifyChange(6, 63)
[4598.588] APP_AIN_NotifyChange(0, 75)
[4598.588] APP_AIN_NotifyChange(2, 65)
[4598.588] APP_AIN_NotifyChange(4, 71)
[4598.588] APP_AIN_NotifyChange(6, 65)
[4598.589] APP_AIN_NotifyChange(0, 70)
[4598.589] APP_AIN_NotifyChange(2, 64)
[4598.589] APP_AIN_NotifyChange(4, 69)
[4598.589] APP_AIN_NotifyChange(6, 63)
[4598.590] APP_AIN_NotifyChange(0, 75)
[4598.590] APP_AIN_NotifyChange(2, 65)
[4598.590] APP_AIN_NotifyChange(4, 71)
[4598.590] APP_AIN_NotifyChange(6, 65)
[4598.591] APP_AIN_NotifyChange(0, 70)
[4598.591] APP_AIN_NotifyChange(2, 64)
[4598.591] APP_AIN_NotifyChange(4, 69)
[4598.592] APP_AIN_NotifyChange(0, 69)
[4598.592] APP_AIN_NotifyChange(6, 63)
[4598.593] APP_AIN_NotifyChange(0, 75)
[4598.593] APP_AIN_NotifyChange(2, 65)
[4598.593] APP_AIN_NotifyChange(4, 71)
[4598.593] APP_AIN_NotifyChange(6, 65)
[4598.594] APP_AIN_NotifyChange(0, 70)
[4598.594] APP_AIN_NotifyChange(4, 69)
[4598.595] APP_AIN_NotifyChange(0, 69)
[4598.595] APP_AIN_NotifyChange(2, 64)
[4598.595] APP_AIN_NotifyChange(6, 63)
[4598.596] APP_AIN_NotifyChange(0, 75)
[4598.596] APP_AIN_NotifyChange(2, 65)
[4598.596] APP_AIN_NotifyChange(4, 71)
[4598.596] APP_AIN_NotifyChange(6, 65)
[4598.597] APP_AIN_NotifyChange(0, 70)
[4598.597] APP_AIN_NotifyChange(2, 64)
[4598.597] APP_AIN_NotifyChange(4, 69)
[4598.597] APP_AIN_NotifyChange(6, 63)
[4598.598] APP_AIN_NotifyChange(0, 75)
[4598.598] APP_AIN_NotifyChange(2, 65)
[4598.598] APP_AIN_NotifyChange(4, 71)
[4598.598] APP_AIN_NotifyChange(6, 64)
[4598.599] APP_AIN_NotifyChange(0, 70)
[4598.599] APP_AIN_NotifyChange(2, 64)
[4598.599] APP_AIN_NotifyChange(4, 69)
[4598.599] APP_AIN_NotifyChange(6, 63)
[4598.600] APP_AIN_NotifyChange(0, 75)
[4598.600] APP_AIN_NotifyChange(2, 65)
[4598.600] APP_AIN_NotifyChange(4, 71)
[4598.600] APP_AIN_NotifyChange(6, 64)
[4598.601] APP_AIN_NotifyChange(0, 69)
[4598.601] APP_AIN_NotifyChange(2, 63)
[4598.601] APP_AIN_NotifyChange(4, 75)
[4598.602] APP_AIN_NotifyChange(0, 71)
[4598.602] APP_AIN_NotifyChange(4, 69)
[4598.603] APP_AIN_NotifyChange(0, 69)
[4598.603] APP_AIN_NotifyChange(4, 74)
[4598.604] APP_AIN_NotifyChange(0, 70)
[4598.604] APP_AIN_NotifyChange(4, 69)
[4598.605] APP_AIN_NotifyChange(0, 75)
[4598.605] APP_AIN_NotifyChange(2, 65)
[4598.605] APP_AIN_NotifyChange(4, 71)
[4598.606] APP_AIN_NotifyChange(0, 69)
[4598.606] APP_AIN_NotifyChange(2, 63)
[4598.606] APP_AIN_NotifyChange(4, 75)
[4598.607] APP_AIN_NotifyChange(0, 71)
[4598.607] APP_AIN_NotifyChange(4, 69)
[4598.608] APP_AIN_NotifyChange(0, 69)
[4598.608] APP_AIN_NotifyChange(4, 75)
[4598.609] APP_AIN_NotifyChange(0, 71)
[4598.609] APP_AIN_NotifyChange(4, 70)
[4598.610] APP_AIN_NotifyChange(0, 69)
[4598.610] APP_AIN_NotifyChange(4, 75)
[4598.611] APP_AIN_NotifyChange(0, 71)
[4598.611] APP_AIN_NotifyChange(2, 65)
[4598.611] APP_AIN_NotifyChange(4, 70)
[4598.612] APP_AIN_NotifyChange(0, 69)
[4598.612] APP_AIN_NotifyChange(6, 63)
[4598.613] APP_AIN_NotifyChange(0, 75)
[4598.613] APP_AIN_NotifyChange(4, 71)
[4598.613] APP_AIN_NotifyChange(6, 65)
[4598.614] APP_AIN_NotifyChange(0, 70)
[4598.614] APP_AIN_NotifyChange(4, 69)
[4598.615] APP_AIN_NotifyChange(0, 69)
[4598.615] APP_AIN_NotifyChange(2, 64)
[4598.615] APP_AIN_NotifyChange(6, 63)
[4598.616] APP_AIN_NotifyChange(0, 75)
[4598.616] APP_AIN_NotifyChange(2, 65)
[4598.616] APP_AIN_NotifyChange(4, 71)
[4598.616] APP_AIN_NotifyChange(6, 65)
[4598.617] APP_AIN_NotifyChange(0, 70)
[4598.617] APP_AIN_NotifyChange(2, 64)
[4598.617] APP_AIN_NotifyChange(4, 69)
[4598.617] APP_AIN_NotifyChange(6, 63)
[4598.618] APP_AIN_NotifyChange(0, 75)
[4598.618] APP_AIN_NotifyChange(2, 65)
[4598.618] APP_AIN_NotifyChange(4, 71)
[4598.618] APP_AIN_NotifyChange(6, 64)
[4598.619] APP_AIN_NotifyChange(0, 70)
[4598.619] APP_AIN_NotifyChange(2, 64)
[4598.619] APP_AIN_NotifyChange(4, 69)
[4598.619] APP_AIN_NotifyChange(6, 63)
[4598.620] APP_AIN_NotifyChange(0, 75)
[4598.620] APP_AIN_NotifyChange(2, 65)
[4598.620] APP_AIN_NotifyChange(4, 71)
[4598.620] APP_AIN_NotifyChange(6, 64)
[4598.621] APP_AIN_NotifyChange(0, 69)
[4598.621] APP_AIN_NotifyChange(2, 63)
[4598.621] APP_AIN_NotifyChange(4, 75)
[4598.622] APP_AIN_NotifyChange(0, 71)
Here’s the relevant code.
#ifndef _MIOS32_CONFIG_H
#define _MIOS32_CONFIG_H
#define MIOS32_AIN_CHANNEL_MASK 0x000f
#define MIOS32_AIN_OVERSAMPLING_RATE 1
#define MIOS32_AIN_DEADBAND 31
#define MIOS32_AIN_DEADBAND_IDLE 127
#define MIOS32_AIN_IDLE_CTR 3000
#define MIOS32_AIN_MUX_PINS 1
#define MIOS32_AIN_MUX0_PIN GPIO_Pin_4 // J5C.A8 - 4
#define MIOS32_AIN_MUX0_PORT GPIOC
#define MIOS32_AIN_MUX1_PIN GPIO_Pin_5 // J5C.A9 - 5
#define MIOS32_AIN_MUX1_PORT GPIOC
#define MIOS32_AIN_MUX2_PIN GPIO_Pin_0 // J5C.A10 - 0
#define MIOS32_AIN_MUX2_PORT GPIOB
#endif
extern "C" void APP_AIN_NotifyChange(u32 pin, u32 pin_value)
{
// toggle Status LED on each AIN value change
MIOS32_BOARD_LED_Set(1, ~MIOS32_BOARD_LED_Get());
// convert 12bit value to 7bit value
u8 value_7bit = pin_value >> 5;
// send MIDI event
//MIOS32_MIDI_SendCC(DEFAULT, Chn1, pin + 0x10, value_7bit);
//Send debug message
MIOS32_MIDI_SendDebugMessage("APP_AIN_NotifyChange(%u, %u)", pin, value_7bit);
}
Pictures:
http://dl.dropbox.com/u/1907812/Images/IMAG0302.jpg
http://dl.dropbox.com/u/1907812/Images/IMAG0301.jpg