Skip to content

Commit 22ae2ae

Browse files
committed
Add more readme files.
1 parent 4615730 commit 22ae2ae

File tree

6 files changed

+150
-0
lines changed

6 files changed

+150
-0
lines changed

README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,51 @@ Ada_Drivers_Library provides support for various devices in the ARM Cortex-M
1515
and RISC-V architectures. Some devices are only partially supported. Go to the
1616
[boards directory](boards/) for a list of supported hardware.
1717

18+
## Board list
19+
20+
| Arch | Board |
21+
| ------ | --------------------- |
22+
| ARM | [STM32F407_Discovery] |
23+
| ARM | [STM32F429_Discovery] |
24+
| ARM | [STM32F469_Discovery] |
25+
| ARM | [STM32F4XX_M] |
26+
| ARM | [STM32_F4VE] |
27+
| ARM | [STM32F746_Discovery] |
28+
| ARM | [STM32F769_Discovery] |
29+
| ARM | [STM32_H405] |
30+
| ARM | [NUCLEO_F446ZE] |
31+
| ARM | [Crazyflie] |
32+
| ARM | [Feather_STM32F405] |
33+
| ARM | [OpenMV2] |
34+
| ARM | [MicroBit] |
35+
| ARM | [NRF52_DK] |
36+
| RISC-V | [HiFive1] |
37+
| RISC-V | [HiFive1_rev_B] |
38+
| RISC-V | [Unleashed] |
39+
| | [Native] |
40+
41+
<!-- Examples: -->
42+
[HiFive1]: examples/HiFive1/README.md
43+
[HiFive1_rev_B]: examples/HiFive1_rev_B/README.md
44+
[MicroBit]: examples/MicroBit/README.md
45+
[NRF52_DK]: examples/NRF52_DK/README.md
46+
[OpenMV2]: examples/OpenMV2/README.md
47+
[STM32F429_Discovery]: examples/STM32F429_Discovery/README.md
48+
[STM32F469_Discovery]: examples/STM32F469_Discovery/README.md
49+
[STM32F407_Discovery]: examples/STM32F4_DISCO/README.md
50+
[STM32_F4VE]: examples/stm32_f4ve/README.md
51+
[STM32F4XX_M]: examples/stm32f4xx_m/README.md
52+
[STM32F746_Discovery]: examples/STM32F746_Discovery/README.md
53+
[STM32F769_Discovery]: examples/STM32F769_Discovery/README.md
54+
55+
<!-- Undocumented: -->
56+
[STM32_H405]: examples/stm32_h405/
57+
[NUCLEO_F446ZE]: examples/nucleo_f446ze/
58+
[Feather_STM32F405]: examples/feather_stm32f405
59+
[Crazyflie]: boards/crazyflie/
60+
[Unleashed]: examples/Unleashed
61+
[Native]: boards/native
62+
1863
# 3. Getting started
1964

2065
To start using the Ada_Drivers_Library, please go to the [examples

arch/ARM/STM32/drivers/fsmc/README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Flexible static memory controller (FSMC)
2+
3+
This component of STM32F40x/41x processors allows for the management
4+
of static memory, flash memory, and PC Cards. Unlike the FMC in more
5+
advanced MCU models, dynamic memory is not supported. Each type of
6+
memory has its address bank. The controller offers flexible settings
7+
for various operating modes. For instance, extended modes can have
8+
different delays set for read and write operations. It is recommended
9+
to refer to the STM32 Reference Manual (RM0090) for a detailed description
10+
of possible modes and corresponding settings.
11+
12+
* [Datasheet](https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf) - STM32 Reference Manual (RM0090), FSMC chapter.
13+
14+
* [Configuration example](../../../../../boards/stm32_f4ve/src/display_ili9341.adb) - display_ili9341.adb:
15+
16+
## Example
17+
18+
Configuring Bank_1 for ILI9341 LCD controller:
19+
20+
* half word (16 bit access)
21+
* with write enabled
22+
* distinct read and write timings
23+
24+
```ada
25+
STM32.FSMC.Configure
26+
(Bank_1 =>
27+
(1 => -- TFT is connected to sub-bank 1
28+
(Is_Set => True,
29+
Value =>
30+
(Write_Enable => True,
31+
Bus_Width => STM32.FSMC.Half_Word,
32+
Memory_Type => STM32.FSMC.SRAM,
33+
Bus_Turn => 15, -- 90ns
34+
Data_Setup => 57, -- 342ns
35+
Address_Setup => 0,
36+
Extended =>
37+
(STM32.FSMC.Mode_A,
38+
Write_Bus_Turn => 3, -- 18ns
39+
Write_Data_Setup => 2, -- 12ns
40+
Write_Address_Setup => 0),
41+
others => <>)),
42+
others => <>));
43+
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# ILI9341
2+
3+
TFT LCD Single Chip Driver 240RGBx320 Resolution and 262K color.
4+
It has parallel and serial interfaces for MCU. It's also able to
5+
receive data over RGB interface.
6+
7+
The STM32F429 Discovery board utilizes an RGB interface and stores
8+
graphic data in the main memory. The STM32 F4VE board uses a parallel
9+
interface and employs ILI9341 memory, which significantly slows down
10+
drawing but conserves main memory. When using the parallel interface,
11+
ILI9341 registers are mapped to the MCU's address space through the
12+
memory controller (FSMC), simplifying and speeding up the drawing.
13+
14+
* [Datasheet](http://www.datasheet-pdf.info/attach/1/3707537954.pdf)
15+
* [Example for RGB interface](../../../../examples/STM32F429_Discovery/draw_stm32f429disco.gpr) for STM32F429 Discovery
16+
* [Example for parallel interface](../../../../examples/stm32_f4ve/lcd) for STM32 F4VE board
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# XPT2046
2+
3+
The XPT2046 is a 4-wire resistive touch screen controller that incorporates
4+
a 12-bit 125 kHz sampling SAR type A/D converter. Many cheap LCD displays
5+
contain this controller. Typically, it is connected via SPI.
6+
7+
To align the touch point with the display coordinates, it might be
8+
necessary to calibrate the touch screen. The XPT2046 sensor provides
9+
raw values within the range of 0 to 4095. If you identify the raw
10+
values associated with the screen edges, you can perform touch
11+
panel calibration by invoking the Calibrate procedure.
12+
13+
```ada
14+
subtype Sensor_Value is HAL.UInt16 range 0 .. 2 ** 12 - 1;
15+
16+
procedure Calibrate
17+
(This : in out XPT2046_Device'Class;
18+
Min_X : Sensor_Value;
19+
Max_X : Sensor_Value;
20+
Min_Y : Sensor_Value;
21+
Max_Y : Sensor_Value);
22+
```
23+
24+
* [Datasheet](https://www.datasheet-pdf.info/attach/1/3898350023.pdf)
25+
* [Example for STM32 F4VE board](../../../../examples/stm32_f4ve/lcd)

examples/stm32_f4ve/draw/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Draw on the screen
2+
3+
This example is a modified version of the draw example for
4+
STM32F429 Discovery. Unlike the original, it does not use
5+
the Framebuffer interface. Touch the screen to draw. The
6+
thickness of points and lines during drawing depends on
7+
the pressure applied and what you touch on the screen.
8+
9+
Press the K-UP button for a demo of drawing primitives.
10+
11+
For this demo, you need an LCD with a touch panel, which
12+
is usually sold as part of the STM32 F4VE board kit.

examples/stm32_f4ve/lcd/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# LCD demo
2+
3+
This example demonstrates working with the LCD using the
4+
HAL.Bitmap.Bitmap_Buffer interface.
5+
Colorful rectangles are displayed on the screen, and their
6+
colors change based on the X and Y coordinates.
7+
8+
For this demo, you need an LCD, which is usually sold as
9+
part of the STM32 F4VE board kit.

0 commit comments

Comments
 (0)