VM-1 Embedded Controller Capabilities

Micro-Robotics home page

this site web
NEWS

VM-1 Capability

Here are some of the capabilities of the VM-1 Embedded Controller, indexed alphabetically.

Index

1-Wire Bus

i-Button The VM-1 supports the Dallas 1-Wire bus protocols allowing communication with iButtons and other 1-Wire devices. All 1-Wire devices have a unique ID number which can be useful in identification, validation and security applications. Many 1-Wire devices may co-exist on a single 1-Wire bus without conflict.

All that is needed to implement the basic 1-Wire bus on a VM-1 is a single resistor.

Index Index

Analogue I/O

The VM-1 controller has 8 channels of 10-bit, 0-5V analogue input on board. Two of these channels may also be 8-bit, 0-5V analogue outputs.

Full support is provided in Venom-SC for the on-board analogue I/O and for devices linked to VM-1 via the buses. Typical code would be

  MAKE my_input Analogue (40)    ;Declare
analogue input on channel 40
  my_reading := my_input . Value ;Read the input into a variable

External Analogue Devices

Additional Analogue inputs and outputs may be added to the VM-1 using the I2C Buses, the SPI Bus, etc.

Analogue ICs currently supported are

  • AD7998: 12-bit 0-5V analogue, 8 channel input
  • MCP3421: 18-bit 0-5V analogue, 1 channel input
  • ADS1110: 18-bit 0-5V analogue, 1 channel input
  • MAX1236 and MAX1238: 12-bit 0-5V analogue, 4/12 channel input
  • PCF8591: 8-bit 0-5V analogue I/O port (4 in, 1 out)
Additionally, Venom-SC allows you low-level control of the I2C Buses and SPI bus so you can drive any device you like. A range of 8-, 12-, and 16-bit ADCs and DACs have been used with the VM-1.

Index Index

Battery Power

The VM-1 is ideal for battery-powered applications. It consumes far less current than PC-based controllers and there are automatic power saving features built into the Venom-SC language. Whenever your code is waiting for an event or for a period of time, the CPU is put to sleep, waking up the instant it is required again.

Typical Power consumption

When it is not doing heavy processing the VM-1 will typically take 20mA. Even lower current consumption may be achieved by using a slower clock speed. At 4MHz (1/4 speed) the controller will idle at 6mA.

For many applications, these are the actual average power figures.

Lower clock-speed VM-1 are currently only available to special order.

Zero Power Sleep

For still lower power consumption the Real Time Clock IC (a plug-in extra) may be used to control your application's power rail. Thus the controller (and other parts of your application) may be powered down (<1µA) until a timed alarm or other external event wakes them up again.

A zero-power sleep circuit schematic is available.

Index Index

Buses

System Bus

The VM-1’s raw processor bus (8 or 16 data bits, 14 address bits, 3 area decodes, 16 MHz) is brought out to a connector. This is not often used directly as most connectivity to the VM-1 is via the I2C, SPI and Expansion buses.

Expansion Bus

More useful than the raw processor bus, this software-controlled I/O port is used as a slower, 8-bit bus. It allows Graphic or Character LCDs to be attached to the VM-1. Because it runs at a much lower speed and duty cycle than the system bus it has very low EMI emmissions.

Index Index

CAN Bus

CAN (Controller Area Network) is a communication protocol used widely in vehicles, process control and other areas of industry. It is fault tolerant and deterministic which is why it is used widely for safety-critical systems.

The VM-1 can connect to a CAN Bus using Microchip's MCP2515 CAN controller IC. A CAN driver object CANBus is included in Venom-SC.

The CANBus object simplifies and speeds up the initialisation of the CAN controller and the reading and writing of CAN frames.

A VM-1 CAN Bus circuit schematic is available.

If you don't want to make up your own MCP2515 circuit just to test out CAN Bus on the VM-1 there are third party development boards around that are easily adapted to connect to the VM-1.

Index Index

Data Logging

SMS The VM-1 is ideal for Data Logging applications: filing systems using internal non-volatile RAM or removable memory cards are built into the Venom-SC language, there is high-level control over many Analogue and Digital I/O, and VM-1 has very low (down to zero) power consumption figures.

The VM-1 is available in two RAM sizes: 128K and 512K. Almost the entire RAM is available to your application for data storage.

Index Index

Dates and Times

Venom-SC provides very sophisticated tools for using real dates and times in your applications. Firstly, there is high-level access to the PCF8583 Real Time Clock Calendar IC. This device plugs directly into a socket on the VM-1 and is backed up by the VM-1's battery when there is no power.

Secondly the DateTime object is a powerful date/time calculator that can process dates nearly 100 years into the future. For example it can tell you what day of the week it is on 15 January 2057:

  MAKE dt DateTime     ;Create the DateTime object
  dt . Year := 2057    ;Set the year
  dt . Month := 1      ;Set the month
  dt . Day := 15       ;Set the day
  PRINT dt . DayOfWeek ;Print the day of the week
  1 (The answer '1' means it's a Monday).

See the Venom-SC Manuals for more details.

Index Index

Development Tools

Micro-Robotics sell full-feature starter kits for the VM-1 and Venom-SC. For £250 you get all you need to start developing your application.

There is also an Integrated Development Environment - VenomIDE - which is available as a free download.

We provide full documentation in the form of

  • Venom-SC Tutorial Guide (~160 pages, paperback & PDF)
  • Venom-SC Reference (Windows Help File & PDF)

Free, lifetime technical support is available direct from the engineers, for all our products.

Index Index

Digital I/O

The VM-1 controller has 42 channels of digital I/O on board (12 of these channels are input only). To make system design easier, almost all of them are pulled to the supply rail by a 100K resistor.

Additional Digital inputs and outputs may be added to the basic VM-1 using the versatile PCF8574 IC on the I2C Buses. You can fit up to 16 of these ICs to each bus, yielding nearly 300 Digital I/O in total. Full support is provided in Venom-SC for all these Digital I/O, for example

  MAKE heater Digital(10) ;Put the heater control on channel 10
  Heater . On             ;Turn it on
  Heater . Off            ;Turn if off again
See the Venom-SC Manuals for more details.

Additionally the PCF8574 is used as the basis for our industrial input, output and relay cards, and digital I/O ports .

Index Index

EEPROMs

EEPROMs are useful for storing variable but non-volatile information in your application, for example calibration data or identification codes.

There is high-level support for storing data in EEPROM devices such as the 24C02 and others: the SafeData object in Venom-SC allows you to store both integer and floating-point values in an EEPROM, and to form a checksum of the data for validation.

See the Venom-SC Manuals for more details.

Index Index

Email

The VM-1 has direct support for both sending and receiving email. With the minimum of code, a remote VM-1 system with a dialup link to the Internet can receive instructions and send back logs and reports with no need for any proprietary software at the local end. Email is an application of TCP/IP which is also supported directly for other purposes.

Index Index

Filing System

Venom-SC provides memory card (SD and MMC), and RAM DISK Filing Systems. The RAM DISK is in on-board non-volatile RAM; the memory cards require the Memory Card Interface.

Both data and text files are supported with many useful options.

Memory cards are more robust and have a higher capacity than the RAM. The memory card filing system is Windows compatible so files may be transferred easily.

Memory Card Interface hardware for SD/MMC Cards
FAT File System software support for memory cards.

Index Index

Flash

Flash
            memory The Venom-SC language is supplied in a flash memory IC, which you plug into the VM-1 controller. The flash memory also doubles as the application storage area.

Your application code is developed in non-volatile RAM - but when you have finalised your code, it is burned into the flash so it is secure from alteration.

Of course you can re-program the flash, either to change your application, or to update your version of Venom-SC from our website, free of charge.

You can also buy quantities of blank flash chips from us, or from distributors, that you can copy your final application into when you go into production.

Index Index

Floating Point

Venom-SC supports the IEEE single precision floating point variables and calculations. This gives around seven digits of precision. Most of the commonly used functions are provided:
  • The four arithmetic operators (+ - * /)
  • EXP, LOG
  • Power (^)
  • Square root
  • Trig functions
  • ABS

Index Index GPRS modem

GPRS

GPRS is the new mobile communication standard protocol. It will allow you to gain access to the Internet via a mobile phone network. GPRS modems are available from various manufacturers and we support Internet protocols through them.

Index Index

GPS

Global Positioning System

Several of our customers have built mobile applications using the VM-1 and the excellent GPS receivers now available. VM-1 can communicate with GPS devices via its serial ports.

Index Index

GSM

SMS GSM (the old mobile phone standard) modems are easy to interface to - just connect a serial port to the serial connector on the modem.

GSM Text (SMS) messaging is also supported. The VM-1 can send and receive text and binary short messages over the GSM mobile network.

Index Index

High-Level Programming

The VM-1 controller is programmed using Venom-SC: the full-featured, high-level programming language designed for writing control applications. We have many testimonials that Venom-SC is very easy to learn, as well as reports of fast, painless development from our customers.

Read more

Down load the manuals

'Licence-Free'

Venom-SC is free for you to download and make as many copies as you like so long as you only use it in our controller products. See our software license terms.

Micro-Robotics Ltd retains full ownership and copyright over Venom-SC.

Free upgrades

Venom-SC is being continually developed. New features are being added all the time. If you buy just one of our controllers you are entitled to free upgrades to Venom-SC forever. You can email us to ask for the very latest version of Venom-SC, or download the version posted on our website.

If you would like to license Venom-SC for use on other platforms please contact sales. Index Index

I2C Bus

The I2C bus is a two-wire network which can control many devices. On the VM-1, there are two master-only I2C buses, each of which can link to the following functions.
  • 128 digital I/O channels
  • Many analogue input and output channels at resolutions from 8- to 18-bit
  • A real time clock/calendar
  • EEPROM non-volatile storage
  • Alphanumeric LCDs and keypads based on I2C Digital I/O channels
... and more ...

These are not part of the basic VM-1 hardware but available as expansion options and supported by the software.

The Venom language also provides simple access directly to the I2C bus so any I2C device may be controlled.

Schematics for various I2C circuits are available.

Real Time Clock/Calendar on I2C: PCF8583

This is an IC that may be plugged into a socket on the VM-1. It is connected to one of the on-board I2C buses. The Venom language supports sophisticated date manipulation for dates over the next 100 years or so. The VM-1’s on-board battery keeps the clock’s date and time correct even when the unit is not powered.

I/O Ports on I2C

Industrial signals may be interfaced to the VM-1 using our range of industrial I/O cards.

For interfacing to 0-5V signals inside an equipment housing use our Digital and Analogue I/O Ports.

All of these cards are connected to the VM-1 via one of its I2C buses. The VM-1 provides full software support.

Index Index

Keypad

Venom-SC has high-level support for matrix keypads using the excellent PCF8574 IC on the I2C bus. Keypads are configurable as 4 x 4, 8 x 8 and 4 x 12 matrices. Software support extends to reading individual key states as well as keyboard-style buffering of key presses.

Complementing the Keypad driver is an object called NumberReader. This uses the keypad for calculator-style number entry.

See the Venom-SC Manuals for more details.
Also see Touch screen interfaces.

Index Index

LCDs

GLCD board

Graphic LCDs

Venom-SC has full software support for a variety of graphic LCDs. Its GraphicsLCD object provides high level access to
  • Multiple windows
  • Fonts (proportional and monospaced)
  • Left, centre & right justification
  • Word wrapping
  • 'Active' bar graphs and pointers
  • Bitmaps and user-defined fonts
  • Line drawing
  • Rectangles
See the Venom-SC Manuals for more details.

LCD controllers supported include

  • Epson S1D13705 (typically QVGA: 320 x 240)
  • Hitachi HD61830 (typically 240 x 128)
  • Sanyo LC7981 (typically 240 x 128)
  • Toshiba T6963C (typically 240 x 128)
  • Epson SED1565 (typically 128 x 64)

Connecting Graphic LCDs

To connect a 'controller-free' QVGA panel to the VM-1 you may use the QVGA Driver Module (5809) based on the Epson S1D13705, or copy our S1D13705 circuit.

To connect a HD61830-, LC7981-, T6963C- or SED1565-based graphic LCD all you need is a latch such as the 74HC273.

You may also need a bias-voltage generator if the LCD panel doesn't have one on board.

These circuits are included in some of our application boards, allowing you to plug a graphics LCD straight in.

Circuit schematics for some Graphic LCD interfaces are available on this site. Contact us if you cannot find what you need here.

Character LCDs

Venom-SC has full support for any character LCD based on the Hitachi HD44780 or equivalent.

High-level features allow you to print directly to the display without having to write any low-level code at all. For example, this is some typical code to initialise an LCD and put some text on it:

  MAKE lcd AlphaLCD(20, 2 , 0) ;20 character, 2 line display
  PRINT TO lcd, "Hello world"  ;Write some text to it
See the Venom-SC Manuals for more details.

Character LCDs will connect directly to the VM-1. A suitable connector is provided on some of our application boards allowing you to plug a character LCD straight in.

You can also connect multiple (up to 32) character LCDs to the VM-1 via PCF8574 ICs on the I2C Buses.

Circuit schematics for most Character LCD interfaces are available on this site. Contact us if you cannot find what you need here.

Index Index

Memory Cards

Memory
            cards MMC (Multimedia Card) and SD (Secure Data) cards can be used to store data in files in industry standard file system formats.
See Memory Card Interface and FAT File System.

Index Index

MODBUS

MODBUS ASCII programming is straightforward in the Venom Language, using a serial port, the built-in protocol analyser object and PRINT statements for output.

MODBUS/TCP uses the built in TCP/IP support and turning a VM-1 into a MODBUS/TCP device is further simplified with a Venom skeleton program available under "Application Notes and Code Examples" on our Software Information page. All you have to do is edit configuration settings and add your application specific functions to map MODBUS inputs and outputs to the VM-1's ports and devices.

Index Index

Modems

It's easy to connect a MODEM to the VM-1. VM-1 has two serial ports, either one of which may be used for this purpose. You may need to provide RS232 level shifter circuits if you are not using an application board.

Index Index

Motors

Venom-SC can control both DC motors and stepper motors via one of its objects: PulseWidthOut. PulseWidthOut can generate pulse trains of varying mark/space ratio and frequency. It can also generate pulse trains of a pre-determined number of pulses.

To drive DC motors, feed the pulse train into a bridge amplifier, or just a transistor (bipolar or MOSFET) to produce a variable power drive.

To drive stepper motors, feed the pulse train into a stepper motor drive module. This energises each phase of the motor in turn for each pulse received.

PulseWidthOut is available on 6 of the VM-1's channels.

See the Venom-SC Manuals for more details.

Index Index

Multi-Tasking

Venom-SC has multi-tasking built into the language, not added on as an afterthought. Thus a new task may be created with just one keyword:
  START [some_code]   ; Start a bit of code as a task
Resource locking is also built in. In many applications all the locking will be handled by the default mechanisms.

Task swaps take place automatically at least once every 2mS. This is fast enough for most applications. Events that need handling faster than this are generally taken care of by interrupts.

The task-swap mechanism is a preemptive round robin at the application programmer's level, though it is implemented as a cooperative system at the low level. Consequently the application programmer need not pay much attention to the task manager: it just works.

See the Venom-SC Tutorial Manual for more details.

Index Index

Networking

Ethernet module The Venom-SC language has a suite of TCP/IP networking protocols built in. These connect via Ethernet, GPRS, GSM or a dial-up modem link.

Software drivers for other, industrial, networks are also built in:

USB (Universal Serial Bus) can be supported with additional hardware.

Simple, proprietry networks using RS485, packet radio, GSM, etc. have also been implemented using our controllers.

The VM-1 has support for XMODEM file transfer over a serial link.

Index Index

Non-Volatile Memory

The VM-1's RAM is powered by a lithium battery when the main power is off. Thus it is possible to store information in RAM files and other data structures. Non-volatile storage is also available in memory cards, EEPROMs and other devices that you can attach to the VM-1.

Index Index

Portable and Handheld Applications

The VM-1 is an ideal controller for handheld applications because of its small size, low power consumption and excellent user-interface capabilities (LCDs, keypads).

Index Index

Pulse & Frequency I/O

Venom-SC has several objects dedicated to pulse I/O on the VM-1. These are
  • PulseWidthOut - for generating pulse trains of varying mark-space ratio and frequency. Also generates fixed-length pulse trains (6 channels)
  • PulseWidthIn - for measuring pulsewidths (6 channels)
  • FrequencyIn - for measuring frequencies to very high precision (1 channel)
  • PulseCounter - for counting pulses (4 channels)
  • Shaft - for directional counting of quadrature shaft-encoder edges (2 encoders)
Not all of these Pulse I/O functions are available at the same time. See the Venom-SC Manuals for more details.

Index Index

Serial Communications

The VM-1 has two channels of asynchronous serial communications that can operate at standard rates up to 38,400 baud. These two channels are under high-level control of the Venom-SC language.

Features include optional hardware and software handshaking, input and output buffers, selection of data format.

Additionally there is a third serial channel synthesised from counter-timers that can operate at standard rates up to 9600 baud. This channel has no handshaking and has only one data format.

The serial outputs and inputs are at TTL levels at the VM-1 and require level shifters to interface to RS232 or RS485 networks.

Level shifters are included in our application boards. Circuit schematics are also available.

Future: synchronous serial comms.

Index Index

Single Board Computer or Industrial PC?

The VM-1 is an Embedded Controller, also known as a Single Board Computer, and similar to an Industrial PC.

Micro-Robotics' Embedded Controllers have several advantages over Industrial PCs in many applications:

  • They are designed from the bottom up for control applications rather than inheriting desktop machine's physical architecture and operating systems
  • They start up much faster - The VM-1 is running your code less than 0.25 seconds after power on
  • They consume a lot less power than Industrial PCs - often less than 10% - making them suitable for battery powered and handheld applications
  • They have better EMC performance: less emitted EM noise, less suscepability to EM noise
  • They are often smaller
  • They cost less

Index Index

SMBus

SMBus is essentially the same as the I2C bus and products designed for SMBus are compatible with the VM-1's implementation of I2C.

There are resources on the Internet that document the differences between the two busses, for example this app note from Maxim/Dallas.

Index Index

SPI Bus

The VM-1 supports the industry standard SPI bus, which can be used to control a wide range of devices including
  • 12-bit analogue input and output
  • 16-bit analogue input and output
  • SD and MMC Memory cards
Multiple devices may be accessed on the SPI Bus by gating the Chip Select signals, e.g. with a 74HC138.

Index Index

Temperature Measurement

Temperature
            sensors You can measure temperature on the VM-1 in several ways, including the following:
  • Thermocouples - use the MAX6675 or MAX6674 on the SPI bus
  • Use lots of Dallas DS18B20 on the 1-Wire Bus
  • Use several DS1624, or similar, on the I2C bus
  • Thermistors 1 - you can use a VM-1 analogue input, a bias resistor and a linearising function
  • Thermistors 2 - use the MAX6682 on the SPI bus
  • Thermistors 3 - use the MAX 6691 on a Pulse Input
  • PT100 sensor - you can make or buy a circuit to read the resistance of a PT100 sensor, and use this linearising function

Index Index

Timing

Venom-SC has timing primitives built into the language. Keywords such as WAIT will cause processing to halt for a given number of milliseconds. The EVERY keyword will repeat some code at a constant rate.
  EVERY 1000      ;Repeat once per second
  [
    heater . On
    WAIT 200      ;Wait for 1/5 of a second
    heater . Off
  ]
Also there are objects such as Stopwatch and Timer that allow even more versatile millisecond timing.
  MAKE t Timer(10000) ;A timer for 10 seconds
  t . Go              ;Start it counting down
  AWAIT t . Done      ;Wait until it's finished

Venom-SC also has full support for real-time date and time calculations.

See the Manuals for more details.

Index Index

Touch screen

A touch screen is a flat panel that fits over the front of a graphics display and is used to detect the position of a finger or stylus.

Venom-SC's TouchScreen object drives a resistive touch screen via a TSC2003 IC on the I2C Bus. As well as detecting where a touch to the screen occurs (calibrated to LCD coordinates) it allows you to define virtual keys to create any style of keypad on your user interface.

A TSC2003 is fitted to the QVGA Driver Module (5809).

Index Index

USB

USB to Serial converter VM-1 applications can be connected to the USB (Universal Serial Bus) by using a USB-to-serial converter module such as the DLP-USB232M-G by FDTI.

Many VM-1 applications will consume little enough power that they may be powered by the USB connection alone.

It is also possible for the VM-1 to be a USB host using FTDI's Vinculum IC, or Vinculum-based modules, so that USB memory sticks and other devices may be connected to the VM-1.

Index Index

Watchdog

The VM-1 has a watchdog and power supervisor IC built in. The watchdog will restart the controller if the application crashes. The power supervisor monitors the controller's 5V rail and will reset the controller if this dips below a threshold level.

Index Index

Top Top
Top Top
Top Top