4D SYSTEMS uLCD-43DT Display Module
© 2014 4D SYSTEMS Page 11 of 24 www.4dsystems.com.au
Chip Select for use with SPI can be any other
unused GPIO pin, configured as a Digital Output.
The lowering and raising of the selected CS (GPIO)
pin is done manually by the user is the 4DGL
application.
Please refer to the separate document titled
'DIABLO16-4DGL-Internal-Functions.pdf' for more
information on how to use the SPI functions, along
with the separate document titled ‘DIABLO16-
Processor-Datasheet-REVx.x.pdf’.
I2C 4.6.
There are 3 user configurable I2C channels
available for mapping to GPIO, for use by the user
for the target application. All 3 I2C 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 I2C.
To map an I2C 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)
Please refer to the separate document titled
'DIABLO16-4DGL-Internal-Functions.pdf' for more
information on how to use the I2C functions, along
with the separate document titled ‘DIABLO16-
Processor-Datasheet-REVx.x.pdf’.
Pulse Out 4.7.
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.
Please refer to the separate document titled
'DIABLO16-4DGL-Internal-Functions.pdf' for more
information on how to use the Pulse Out
functions, along with the separate document titled
‘DIABLO16-Processor-Datasheet-REVx.x.pdf’.
PWM Out 4.8.
There are 6 PWM channels available to be
configured by the user, with 4 time bases available
for selection.
The PWM can be configured to be used in Servo
Mode, or Simple Mode.
Please refer to the table on the previous page for
details on which GPIO can be configured for PWM.
Servo Mode allows a millisecond input value with
0.01ms resolution, which runs at a frequency of
approximately 50Hz or 50pps (20ms). The position
of the servo is determined by the width of the
pulse. Generally 1.5ms is 90 degrees, 1ms being 0
degrees and 2ms being 180 degrees. Servos
however vary, and the DIABLO16 PWM control can
be adjusted to suit most applications.
Simple Mode allows a percentage input value with
resolution of 0.1%, which runs at a frequency of
approximately 70KHz.