DHCOR STM32MP1 Linux: Difference between revisions

From Wiki-DB
Jump to navigationJump to search
Line 69: Line 69:
|}
|}


:The LEDs can also be turned on or off permanently by writing a "1" or "0" to the following file:
:The LEDs can also be turned on or off permanently by writing either "1" or "0" to the following file:
:{| class="wikitable" align="center" |  style="color: #000000; background: #FFFFFF;" valign="top" |
:{| class="wikitable" align="center" |  style="color: #000000; background: #FFFFFF;" valign="top" |
|<tt>''# echo 1 > /sys/class/leds/green:user0/brightness</tt>
|<tt>''# echo 1 > /sys/class/leds/green:user0/brightness</tt>

Revision as of 14:11, 1 September 2020


CAUTION! THIS PAGE IS UNDER CONSTRUCTION!


Devicetree Overlays

Activating Device Tree Overlays

Some of the hardware features can be activated with the help of a device tree overlay. To activate a device tree overlay, you have to go into the U-Boot console first. This can be done during the first seconds after startup, by simply hitting any button on a keyboard once the system tells you to do so.
When you are in the bootloder, you can view a list of all available device tree overlays with the following command.
> ls mmc 0:4 /boot
After that, you can select a device tree overlay with the following commands:
To activate CAN on the GPIOs :
> setenv loaddtos '#conf@stm32mp157a-avenger96.dtb#conf@stm32mp157a-avenger96-overlay-fdcan1-x6.dtbo#conf@stm32mp157a-avenger96-overlay-fdcan2-x6.dtbo'
To activate the 96Boards D3Camera Mezzanine Board enter:
> setenv loaddtos '#conf@stm32mp157a-avenger96.dtb#conf@stm32mp157a-avenger96-overlay-ov5640-x7.dtbo'
If you want to save your settings, so that you don't have to enter the device tree overlay after every reboot, enter this command:
> saveenv
To reset your device tree overlay, simply override the last settings:
> setenv loaddtos '#conf@stm32mp157a-avenger96.dtb'
Once the device tree overlay is set, you can boot up your board by entering boot:
> boot

Linux Userspace Commands

Logging in after Startup

After booting, you con login as the user "root" without any password. Note, that the standard console is connected to the UART 1 Port (96Boards Name).
dh-stm32mp1-dhcor-avenger96 login: root

Interacting with GPIOs

An GPIO can be activated with the gpioset command. To find out which GPIO is connected to what gpiochip-device, take a look at the Hardware Section below.
The GPIO "A" can be turned on by
# gpioset gpiochip0 14=1
and off by
# gpioset gpiochip0 14=0

Interacting with the User LEDs

In between the two USB-Host connectors of the Avenger96, you can find four so called User LEDs. These LEDs can be used for simple programming examples and be accessed and manipulated by the user form the userspace.
The LEDs are located under /sys/class/leds.
To disable the blinking of the LED0 hit following command:
# echo none > /sys/class/leds/green:user0/trigger
The LEDs can also be turned on or off permanently by writing either "1" or "0" to the following file:
# echo 1 > /sys/class/leds/green:user0/brightness
# echo 0 > /sys/class/leds/green:user0/brightness

Unsing the internal RTC

Read out the current date and time of the system (not the RTC itself)
# date
Set a specific system time
# date -s "2020-01-30 10:00:00"
Save the current system time to the RTC of the STM32MP1
# hwclock -w
When you allready have stored a date on the RTC and you want to read it out, use the next command. This command only gives back the time, but does not synchronize it with the system time. This is done in the next step.
# hwclock -r
The system time can be synchronised to the RTC by this command:
# hwclock -s

Kernel Userspace Interfaces to Access Hardware

The pinmuxing of the DHCOR STM32MP1 can be configured just as needed by you as a customer and therefore the interfaces used in each configuration might be different. However, to give you an easy way to start developing with the DHCOR STM32MP1 you can use the Avenger96 Board, which is the reference design for our DHCOR module. Thus, the interfaces described here, are the configuration for the Avenger96.

Serial (UART) Interfaces

96Boards Name Linux Name Hardware Name
UART 0 /dev/ttySTM1 UART 7
UART 1 /dev/ttySTM0 UART 4

I²C Interfaces

96Boards Name Linux Name Hardware Name
I2C0 /dev/i2c-1 I2C2
I2C1 /dev/i2c-0 I2C1
OnBoard /dev/i2c-2 I2C4


microSD and eMMC

96Boards Name Linux Name Hardware Name
?????????? ?????????? ??????????
?????????? ?????????? ??????????
?????????? ?????????? ??????????

GPIOs

96Boards Name Linux Name Hardware Name
A gpiochip0 14 PA14
B gpiochip1 11 PB11
C gpiochip2 3 PC3
D gpiochip3 8 PD8
E gpiochip3 14 PD14
F gpiochip3 15 PD15
G gpiochip5 12 PF12
H gpiochip5 13 PF13
I gpiochip0 12 PA12
J gpiochip1 5 PB5
K gpiochip0 11 PA11
L gpiochip1 13 PB13


Beside the GPIOs, the Avenger96 has also four user LEDs, which are controlled the same way as the GPIOs.
96Boards Name Linux Name Hardware Name
LED 0 gpiochip9 7 PZ7
LED 1 gpiochip5 3 PF3
LED 2 gpiochip6 0 PG0
LED 3 gpiochip6 1 PG1