Project Description

The DL40 Module provides a hardware platform which can be used to develop custom Daisy Link Modules, this firmware transforms the DL40 module into a general purpose IO device that can easily be leveraged from any .NET MF mainboard.

The managed interface used to communicate with the firmware on DL40 provides the following interfaces.

IInputPin

Configures a pin as an input pin and provides functions to read the current state of the pin

IOutputPin

Configures a pin as an output pin and provides functions to change the state of the pin

IInterruptPin

Configures a pin as an input pin which can raise interrupts when the state of the pin changes. When initializing the interrupt pin you can select which state changes will raise interrupts and those interrupts will be propagated back to the .NETMF mainboard.

IPulseCounterPin

Configures a pin as an input pin which will count the number of state changes it undergoes. At any point in time the mainboard can query for the current count which can either be automatically be reset when read or reset on demand from the mainboard.

This interface supports two counter types. A general purpose counter which can be used to count pulses on any of the general purpose IO pins on the module and a capture pin counter which is limited to counting pulses on specific pins which are wired to
the internal timer peripherals of the DL40 chip. The general purpose counter can count pulses at frequencies of up to 150kHz, while the capture pins can count pulses at frequencies of 12MHz.

IAnalogInputPin

Provides access to 6 of the analog input pins on the DL40 chip

IPWMOutputPin

Provides the ability to generate PWM signals on the supported pins on the module. PWM can be used to control things like servo motors or the GHI Motor Driver etc.

Interrupt pins can be configured to raise interrupts on any of the following statesEdge High - An interrupt is raised every time the pin transitions from a low state to a high stateEdge Low - An interrupt is raised every time the pin transitions from a high state to a low stateBoth Edges - An interrupt is raised every time the pin changes from one state to anotherLevel High - An interrupt is raised continuously for the entire period that the pin is in the high stateLevel Low - An interrupt is raised continuously for the entire period that the pin is in the low state