Vilnius General A/D Module

Back to VSCP Modules

Current Harware Version: 0.0.2
Current Firmware version:  

Download

Got to http://www.grodansparadis.com for up to date info :!:

Firmware

No firmware release yet.

Schematics

About

Vilnius is a general 10-bit A/D module with four buffered channels that can scale the input with voltage divider if needed. The module can be bought in a variant for 0-3V (B33, 0-5V(B50), 0-10V(B10=, 1-12V(B12), 0-28V(B28) versions

The Firmware is written to handle eight channels.

Registers

Configuration
Register 0(0x00) - Zone. Read/write.
Register 1(0x01) - Subzone 0. Read/write.
Register 2(0x02) - Subzone 1. Read/write.
Register 3(0x03) - Subzone 2. Read/write.
Register 4(0x04) - Subzone 3. Read/write.
Register 5(0x05) - Subzone 4. Read/write.
Register 6(0x06) - Subzone 5. Read/write.
Register 7(0x07) - Subzone 6. Read/write.
Register 8(0x08) - Subzone 7. Read/write.

The firmware can handle up to eight channels. Each channel can have its own subzone.

Channel A/D value
Register 9(0x09) - MSB of A/D value for channel 0. Read Only.
Register 10(0x0A) - LSB of A/D value for channel 0. Read Only.
Register 11(0x0B) - MSB of A/D value for channel 1. Read Only.
Register 12(0x0C) - LSB of A/D value for channel 1. Read Only.
Register 13(0x0D) - MSB of A/D value for channel 2. Read Only.
Register 14(0x0E) - LSB of A/D value for channel 2. Read Only.
Register 15(0x0F) - MSB of A/D value for channel 3. Read Only.
Register 16(0x10) - LSB of A/D value for channel 3. Read Only.
Register 17(0x11) - MSB of A/D value for channel 4. Read Only.
Register 18(0x12) - LSB of A/D value for channel 4. Read Only.
Register 19(0x13) - MSB of A/D value for channel 5. Read Only.
Register 20(0x14) - LSB of A/D value for channel 5. Read Only.
Register 21(0x15) - MSB of A/D value for channel 6. Read Only.
Register 22(0x16) - LSB of A/D value for channel 6. Read Only.
Register 23(0x17) - MSB of A/D value for channel 7. Read Only.
Register 24(0x18) - LSB of A/D value for channel 7. Read Only.

Direct A/D values can be read here. 0-1024.

Channel Control Registers
Register 25(0x19) - Channel 0 Control Register.  Read/Write
Register 26(0x1A) - Channel 1 Control Register.  Read/Write
Register 27(0x1B) - Channel 2 Control Register.  Read/Write
Register 28(0x1C) - Channel 3 Control Register.  Read/Write
Register 29(0x1D) - Channel 4 Control Register.  Read/Write
Register 30(0x1E) - Channel 5 Control Register.  Read/Write
Register 31(0x1F) - Channel 6 Control Register.  Read/Write
Register 32(0x20) - Channel 7 Control Register.  Read/Write

The channel control bits enable/disable intelligent channel functionality

  • Bit 0 - Enable Event on change.
  • Bit 1 - Enable periodic events.
  • Bit 2 - Enable stream.
  • Bit 3 -
  • Bit 4 -
  • Bit 5 - Enable Low Alarm
  • Bit 6 - Enable High Alarm
  • Bit 7 -
Channel Sample time Registers
Register 33(0x21) - On/off sample time Channel 0 (milli-seconds) MSB. Read/Write
Register 38(0x26) - On/off sample time Channel 0 (milli-seconds) LSB. Read/Write
Register 39(0x27) - On/off sample time Channel 1 (milli-seconds) MSB. Read/Write
Register 40(0x28) - On/off sample time Channel 1 (milli-seconds) LSB. Read/Write
Register 41(0x29) - On/off sample time Channel 2 (milli-seconds) MSB. Read/Write
Register 42(0x2A) - On/off sample time Channel 2 (milli-seconds) LSB. Read/Write
Register 43(0x2B) - On/off sample time Channel 3 (milli-seconds) MSB. Read/Write
Register 44(x02C) - On/off sample time Channel 3 (milli-seconds) LSB. Read/Write  
Register 45(0x2D) - On/off sample time Channel 4 (milli-seconds) MSB. Read/Write
Register 46(0x2E) - On/off sample time Channel 4 (milli-seconds) LSB. Read/Write
Register 47(0x2F) - On/off sample time Channel 5 (milli-seconds) MSB. Read/Write
Register 48(0x30) - On/off sample time Channel 5 (milli-seconds) LSB. Read/Write
Register 49(0x31) - On/off sample time Channel 6 (milli-seconds) MSB. Read/Write
Register 50(0x32) - On/off sample time Channel 6 (milli-seconds) LSB. Read/Write
Register 51(0x33) – On/off pulse time Channel 7 (milli-seconds) MSB. Read/Write
Register 52(0x34) – On/off pulse time Channel 7 (milli-seconds) LSB. Read/Write 

This is the sample time for the each channel expressed in milli-seconds. The min pulse time is 10 milli-seconds and the max time is 65535 mili-seconds which is about 1 minute. Set to zero (default) for no sample time.

If periodic events are enabled they will be sent with the period set here.

If event on change is enabled they will be sent with the period set here if the value has changed since the last read with a hysteresis set in the hysteresis register.

If stream is enabled stream events will be sent out when the stream buffer is full (2 samples).

If A/D change values are enabled be careful not to have a low sample period as this will most certain flood the bus.

Hysteresis
Register 53(0x35) -  Hysteresis for a changed value. Read/Write.
Available channels
Register 54(0x36) - # available channels. Read only.

Different hardware modules can have different number channels. The available number of channels can be read in this register.

Alarm Levels
Register 55(0x37) - MSB low alarm level for channel 0. Read/Write.
Register 56(0x38) - LSB low alarm level for channel 0. Read/Write.
Register 57(0x39) - MSB low alarm level for channel 1. Read/Write.
Register 58(0x3A) - LSB low alarm level for channel 1. Read/Write.
Register 59(0x3B) - MSB low alarm level for channel 2. Read/Write.
Register 60(0x3C) - LSB low alarm level for channel 2. Read/Write.
Register 61(0x3D) - MSB low alarm level for channel 3. Read/Write.
Register 62(0x3E) - LSB low alarm level for channel 3. Read/Write.
Register 53(0x3F) - MSB low alarm level for channel 4. Read/Write.
Register 64(0x40) - LSB low alarm level for channel 4. Read/Write.
Register 65(0x41) - MSB low alarm level for channel 5. Read/Write.
Register 66(0x42) - LSB low alarm level for channel 5. Read/Write.
Register 67(0x43) - MSB low alarm level for channel 6. Read/Write.
Register 68(0x44) - LSB low alarm level for channel 6. Read/Write.
Register 69(0x45) - MSB low alarm level for channel 7. Read/Write.
Register 70(0x46) - LSB low alarm level for channel 7. Read/Write.

An alarm event will be sent out if the A/D channel is lower then this value. Alarm state is reseted for level + hysterersis. Flag must also be set to generate alarm.

Register 71(0x47) - MSB high alarm level for channel 0. Read/Write.
Register 72(0x48) - LSB high alarm level for channel 0. Read/Write.
Register 73(0x49) - MSB high alarm level for channel 1. Read/Write.
Register 74(0x4A) - LSB high alarm level for channel 1. Read/Write.
Register 75(0x4B) - MSB high alarm level for channel 2. Read/Write.
Register 76(0x4C) - LSB high alarm level for channel 2. Read/Write.
Register 77(0x4D) - MSB high alarm level for channel 3. Read/Write.
Register 78(0x4E) - LSB high alarm level for channel 3. Read/Write.
Register 79(0x4F) - MSB high alarm level for channel 4. Read/Write.
Register 80(0x50) - LSB high alarm level for channel 4. Read/Write.
Register 81(0x51) - MSB high alarm level for channel 5. Read/Write.
Register 82(0x52) - LSB high alarm level for channel 5. Read/Write.
Register 83(0x53) - MSB high alarm level for channel 6. Read/Write.
Register 84(0x54) - LSB high alarm level for channel 6. Read/Write.
Register 85(0x55) - MSB high alarm level for channel 7. Read/Write.
Register 86(0x56) - LSB high alarm level for channel 7. Read/Write.

An alarm event will be sent out if the A/D channel is higher then this value. Alarm state is reseted for level - hysterersis. Flag must also be set to generate alarm.

Scaling
Register 87(0x57) - MSB scaling 'k' for channel 0 forming a signed integer. Read/Write.
Register 88(0x58) - LSB scaling 'k' for channel 0 forming a signed integer. Read/Write.
Register 89(0x59) - MSB scaling 'k' for channel 1 forming a signed integer. Read/Write.
Register 90(0x5A) - LSB scaling 'k' for channel 1 forming a signed integer. Read/Write.
Register 91(0x5B) - MSB scaling 'k' for channel 2 forming a signed integer. Read/Write.
Register 92(0x5C) - LSB scaling 'k' for channel 2 forming a signed integer. Read/Write.
Register 93(0x5D) - MSB scaling 'k' for channel 3 forming a signed integer. Read/Write.
Register 94(0x5E) - LSB scaling 'k' for channel 3 forming a signed integer. Read/Write.

Register 95(0x5F) - MSB scaling 'm' for channel 0 forming a signed integer. Read/Write.
Register 96(0x60) - LSB scaling 'm' for channel 0 forming a signed integer. Read/Write.
Register 97(0x61) - MSB scaling 'm' for channel 1 forming a signed integer. Read/Write.
Register 98(0x62) - LSB scaling 'm' for channel 1 forming a signed integer. Read/Write.
Register 99(0x63) - MSB scaling 'm' for channel 2 forming a signed integer. Read/Write.
Register 100(0x64) - LSB scaling 'm' for channel 2 forming a signed integer. Read/Write.
Register 101(0x65) - MSB scaling 'm' for channel 3 forming a signed integer. Read/Write.
Register 102(0x66) - LSB scaling 'm' for channel 3 forming a signed integer. Read/Write.
Register 103(0x67) - Datacoding for channel 0. Read/Write.
Register 104(0x68) - Datacoding for channel 1. Read/Write.
Register 105(0x69) - Datacoding for channel 2. Read/Write.
Register 106(0x6A) - Datacoding for channel 3. Read/Write.
Register 107(0x6B) - Measurement type for channel 0. Read/Write.
Register 108(0x6C) - Measurement type for channel 1. Read/Write.
Register 109(0x6D) - Measurement type for channel 2. Read/Write.
Register 110(0x6F) - Measurement type for channel 3. Read/Write.
Register 111(0x70) - Signed char for number of decimals for channel 0. Read/Write.
Register 112(0x71) - Signed char for number of decimals for channel 1. Read/Write.
Register 113(0x72) - Signed char for number of decimals for channel 2. Read/Write.
Register 114(0x73) - Signed char for number of decimals for channel 3. Read/Write.

The scaling is used with the formula

value = k * A/D-value + m

where value is calculated as a signed long (4 bytes).

The value is always sent as a normalized integer of Class=10 (0x0a) Measurement. The datacoding is should be set to 0b100xx000 where xx is the type for the measurement (0b00 if default) see http://www.vscp.org/wiki/doku.php?id=vscp_specification_data_coding.

Finally the measurement type is one of the types defined for Class=10 (0x0a) Measurement.

Registers for Decision Matrix
Register 119(0x6A) - Index into decision matrix (0-15 - 16 rows.)
Register 120(0x70) - 127(0x7f) - Decision Matrix ( one element visible)

Decision Matrix

The module have a decision matrix with seven entries.

Available Actions

0(0x00) - NOOP, No action.
1(0x01) - Send state. Can be used for sync requests. 
          Argument (byte) should have a bit set for all channels that should be reported.

Alarm register

  • bit 0 - A/D low alarm.
  • bit 1 - A/D high alarm.

Events

A/D value

Can be sent on configurable intervals or on value changes.

Class: 0x015 
Type: 0x02

Package:

Byte 0: Data coding: 0xc0 + channel.
Byte 1: MSB of A/D value.
Byte 2: LSB of A/D value.

Alarm

If enabled the event is sent when a channel goes from active to inactive.

Class: 0x001 
Type: 0x02

Package:

Byte 0: index.
Byte 1: Zone
Byte 2: Subzone

Index is 0 for channel 0, 1 for channel 1 and so on.

Stream Data with zone

A stream event is sent on intervals to report I/O channel state.

Class: 0x014 
Type: 0x26

Package:

Byte 0: Zone
Byte 1: Subzone
Byte 2: Index
Byte 3: MSB of A/D value sample i
Byte 4: LSB of A/D value sample i+1
Byte 5: MSB of A/D value sample i+2
Byte 6: LSB of A/D value sample i+3  

Index is increase for every event sent out.

Contact Information

This is open hardware / software that is made by Ake Hedman, eurosource, Sweden. It is free to use for commecial or non commercial use.

Email: vscp@eurosource.se

Company:

eurosource
Brattbergavagen 17
820 50 LOS 
SWEDEN

info@eurosource.se
http://www.eurosource.se

Phone: +46 657 413430
Fax: +46 657 413503

Modules and components are sold at http://www.eurosource.se/catalog

More info about the VSCP and CANAL protocol can be found at http://www.vscp.org

modules/vilnius.txt · Last modified: 2011/12/01 14:32 by admin
Public Domain
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0