Datasheet

4D SYSTEMS DIABLO16 Processor
© 2014 4D SYSTEMS Page 16 of 33 www.4dsystems.com.au
DIABLO16 PROCESSOR
I
2
C 5.10.
There are 3 user configurable I
2
C channels
available for mapping to GPIO, for use by the user
for the target application. All 3 I
2
C channels are
Master only, and cannot be configured to be
slaves at this time.
Please refer to the table on the previous page for
details on which GPIO can be configured for I
2
C.
To map an I
2
C Channel to a set of GPIO pins, the
following 4DGL function is used:
I2Cx_Open(Speed, SCLpin, SDApin);
Where I2Cx is substituted with I2C1, I2C2 or I2C3
accordingly, ‘Speed’ is the desired I2C Bus speed,
and SCLpin’ and ‘SDApin’ are the target GPIO pins
compatible with that particular pin function.
Note: The normal I2C pins are PA0 to PA13,
however use of these pins has a few limitations.
a) There is no slew rate control at I2C_MED
b) I2C_FAST is not truly 1MHz.
If either of these restrictions need to be
addressed, a special case of SCLpin = PA14 and
SDApin = PA15 exists ONLY for speeds I2C_MED
(which uses slew rate control) and I2C_FAST
(which is truly 1MHz)
Example Connection Diagram
This illustrates I
2
C being configured on GPIO PA8
and PA9, and connections are to an external I
2
C
Analog Input ADC.
Note: This example is an illustration of I
2
C
connection to the Diablo16 processor. It is not the
complete circuit nor illustrates best practice.
Please refer to the separate document titled
'DIABLO16-4DGL-Internal-Functions.pdf' for more
information on how to use the I
2
C functions.
Pulse Out 5.11.
Pulse Out is used to create a single pulse of set
duration on the selected pin of choice, which is
inverted in polarity to the current state of the pin.
This ‘inversion of polarity’ means if a Pin is
currently held HI, and Pulse Out is executed on
that Pin, the pin will pulse LO and then return to
HI. Same with vice versa, if currently LO and Pulse
Out is executed on that Pin, it will pulse HI and
then return to LO.
This is available in both blocking and non-blocking
versions.
Please refer to the table on the previous page for
details on which GPIO can be configured to this.
Note: Each Pulse Out request needs at least a 1ms
lead time due to the scheduling of the event with
the internal 1ms timer.
To enable the Pulse Out function on a GPIO pin,
the following 4DGL functions are used:
pin_Pulseout(pin, value); //Non-Blocking
pin_PulseoutB(pin, value); //Blocking
Where ‘pin’ is the target GPIO pin compatible with
that particular pin function, and ‘value’ is the
length of the pulse in milliseconds.
Example Connection Diagram
This illustrates Pulse Out being configured on GPIO
PA0, and is used to open an external relay via a
transistor, for an application such as opening a
door lock for a set duration.
Note: This example is an illustration of a PulseOut
connection from the Diablo16 processor. It is not
the complete circuit nor illustrates best practice.
Please refer to the separate document titled
'DIABLO16-4DGL-Internal-Functions.pdf' for more
information on how to use the Pulse Out
functions.