Analog inputs

From BitWizard WIKI
Revision as of 11:04, 25 December 2012 by Rew (talk | contribs) (Differential measurements)

Jump to: navigation, search

analog inputs

Several boards can be configured to use analog inputs. The registers 0x70-0x78 specify the value for the multiplexer register in the ADC module of the used chip. The value is not santiy checked. Any value you specify will be used. It is not expected that things will break if you send a value that is not documented here, but why risk it?


The top two bits specify the reference. Possible values are:

0x80: internal 1.1V 0x00: 5V (or 3.3V) powersupply line.

Other values are not applicable (0x40 = use aref pin, which is connected elsewhere on the bitwizard boards, 0xc0 is "reserved").

normal measurements

Normal measurements would return a value of 0 for 0V up to 1023 for the reference value.

value dio pin temp thermo
0x00 6 - -
0x01 4 - -
0x02 3 - -
0x03 1 - -
0x07 0 - -

The values 4, 5 and 6 would measure analog values on the pins required for I2C or SPI communication. Interesting to do once, but not particularly useful. These values are added to the "reference selection" value in the previous section.

Differential measurements

Differential measurements use one pin as the positive input and another as the negative. In the bitwizard boards only "single sided" measurements are supported. This means that if your signal can go both ways, you have to switch to the other polarity once your measured value is below a certain value. Note that you cannot count on the value becoming zero if the polarity reverses. There will always be a little bit of noise resulting in non-zero ADC conversions even if the input polarity is reversed. You could also request both conversion values, and decide what to do with them in your software. The hardware does not support all combinations. So it might be possible that sometimes you cannot measure a polarity. Casual inspection shows that this does not happen in the subset of inputs available on the bitwizard boards.

In the table below you'll see for instance 6-4 in the dio column, this means that the ADC value represents the voltage of dio pin 6 minus dio pin 4.

This table was difficult to figure out.... It may still contain errors. Please report them if you see one.

value dio pins temp thermo
0x08 6 - 4 - -
0x0a 6 - 1 - -
0x28 4 - 6 - -
0x0c 4 - 3 - -
0x0e 4 - 1 - -
0x2c 3 - 4 - -
0x10 3 - 1 - -
0x2a 1 - 6 - -
0x2e 1 - 4 - -
0x30 1 - 3 - -
0x24 1 - 1 - -
0x18 1 - 0 - -
0x38 0 - 1 - -
0x26 0 - 0 - -