| [1] | 1 | EVAL Boards:
|
|---|
| 2 | --------------
|
|---|
| 3 |
|
|---|
| 4 | - STM32N6570-DK
|
|---|
| 5 |
|
|---|
| 6 | Mit STM32N657X0H3Q Controller. Controller ist bei mouser auf Lager. 13,67EUR
|
|---|
| 7 | Der größte Controller aus der Serie mit AI und Crypto
|
|---|
| 8 | VFBGA 264pins aber mit freundlichen 0,8mm Raster
|
|---|
| 9 | Der gleiche Chip ohne Crypto und ai 12,13, aber nicht auf Lager
|
|---|
| 10 |
|
|---|
| 11 | User Manual: https://www.st.com/resource/en/user_manual/um3300-discovery-kit-with-stm32n657x0-mcu-stmicroelectronics.pdf
|
|---|
| 12 |
|
|---|
| 13 | -> 128Mbit Flash über Okto SPI
|
|---|
| 14 | -> USB Type-C® with USB 2.0 HS interface, dual‑role‑power (DRP)
|
|---|
| 15 | -> USB Type-A with USB 2.0 HS interface, host, 0.5 A max
|
|---|
| 16 | -> 1‑Gbit Ethernet with TSN (time-sensitive networking) compliant with IEEE‑802.3‑2002 • SAI audio codec
|
|---|
| 17 | -> 256-Mbit Hexadeca‑SPI PSRAM
|
|---|
| 18 | -> microSD™ Card
|
|---|
| 19 | -> Stereo headset jack including analog microphone input
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 | The Octo‑SPI flash memory has the following characteristics: 1-Gbit, 1.8 V, 200 MHz, DTR, read while writing. It is connected to the OCTOSPI interface of the STM32N657X0H3Q microcontroller on the STM32N6570-DK board. Since the NRST (system reset) is at 3.3 V level, while the reset of the flash memory is 1.8 V in this design, a diode (D4) is used to adapt the reset signals.
|
|---|
| 23 |
|
|---|
| [8] | 24 |
|
|---|
| 25 | Der Chip ist ein MX66UW1G45GXDI00. Mouser ab Oktober verfügbar und kostet 30EUR!!!!, Digikey: Kein Bestand und 27EUR
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| [1] | 29 | microSD™ card A slot (CN13) for microSD™ card (UHS-I supported) is available on the STM32N6570-DK board and is connected to the SDMMC2 interface of STM32N657X0H3Q. The uSD_Detect signal (PN12) manages the microSD™ card detection. When a microSD™ card is inserted into the slot, the uSD_Detect signal level is LOW, otherwise, it is HIGH. The SD_SEL signal (connected to PO5) manages the power selection (1.8/3.3 V). The system reset (NRST) and PWR_SD_EN(PQ7) signals enable or disable the power switch. PWR_ON pulls up these two signals.
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 | The STM32N6570-DK board supports 10/100/1000-Mbit Ethernet communication with a PHY and integrates an RJ45 connector (CN16). The Ethernet PHY is connected to the STM32N657X0H3Q microcontroller via an RGMII interface. The 25 MHz clock of the PHY is generated from the X4 crystal.
|
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 | Audio
|
|---|
| 36 | Audio STM32N6570-DK features audio characteristics such as: • An audio codec with an SAI interface and a 3.5 mm audio jack connector (for stereo earphones and one analog microphone) • A digital MEMS microphone and microphone daughterboard connector Audio codec An audio codec is driven through the I2C2 interface (100 kHz). The I2C write/read address is 0x34/0x35. An SAI interface transfers audio data. A dedicated I/O (Audio_INT, PB1, active LOW) is used for the IRQ interrupt. Warning: The SAI signals are multiplexed with trace signals.
|
|---|
| 37 |
|
|---|
| [8] | 38 |
|
|---|
| 39 | Schaltplan:
|
|---|
| 40 | https://www.st.com/resource/en/schematic_pack/mb1939-n6570-c02-schematic.pdf
|
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 |
|
|---|
| [1] | 44 | ---------------------------------
|
|---|
| 45 | NUCLEO-N657X0-Q
|
|---|
| 46 |
|
|---|
| 47 | Mit STM32N657X0H3Q controller
|
|---|
| 48 | Usermanual: chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.st.com/resource/en/user_manual/um3417-stm32n6-nucleo144-board-mb1940-stmicroelectronics.pdf
|
|---|
| 49 |
|
|---|
| 50 | -> USB Type-C® DRP with USB 2.0 high-speed interface, dual‑role‑power (DRP)
|
|---|
| [8] | 51 | -> 64Mb Flash über Okto SPI
|
|---|
| 52 |
|
|---|
| 53 |
|
|---|
| 54 |
|
|---|
| 55 |
|
|---|
| 56 | Schaltplan
|
|---|
| 57 | https://www.st.com/resource/en/schematic_pack/mb1940-n657x0q-c02-schematic.pdf
|
|---|
| 58 |
|
|---|
| 59 | Flash:
|
|---|
| 60 | MX25UM51245GXDI00
|
|---|
| 61 | Lieferzeit???? Preis ab 13 EUR
|
|---|
| 62 | Bei Farnell ab März 2027
|
|---|
| 63 |
|
|---|
| 64 | Aus der gleichen Serie scheint MX25UM25645GMI00 aktuell verfügbar mit 256Mbit --> 32Mbyte
|
|---|
| 65 | Achtung: Lieferbeschränkung!!!!
|
|---|
| 66 | 5,88 EUR
|
|---|
| 67 |
|
|---|
| 68 |
|
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 | MX25UM51345G ist bei mouser verfügbar
|
|---|
| 72 | --> langsamer lt. ki, nicht komplett gleiche register--> Stimmt das wirklich?
|
|---|
| 73 |
|
|---|
| 74 |
|
|---|
| 75 | BGA Raster ist 1mm bei Macronix.
|
|---|
| 76 |
|
|---|
| 77 |
|
|---|
| 78 |
|
|---|
| 79 | ------
|
|---|
| 80 | Programmierung:
|
|---|
| 81 | Nein, durch das reine Start-Alignment geht kein nennenswerter Speicher verloren.
|
|---|
| 82 | Das Alignment bezieht sich lediglich auf die Startadresse des gesamten Arrays im RAM. Der Compiler sorgt damit nur dafür, dass das erste Byte des Puffers an einer durch 32 teilbaren Adresse im Speicher liegt (z. B. 0x30000000 statt 0x30000001). Dadurch verlierst du im schlimmsten Fall maximal 31 Byte vor dem ersten Puffer – was bei einem über 3,6 Megabyte großen Grafikspeicher absolut vernachlässigbar ist. [1]
|
|---|
| 83 | Innerhalb des Arrays liegen alle deine RGB888-Daten (Pixel für Pixel, Zeile für Zeile) absolut lückenlos und ohne "Gaps" (Verschnitt) hintereinander.
|
|---|
| 84 | Es gibt jedoch ein wichtiges technisches Detail beim STM32N6 und dem Zusammenspiel von RGB888 und Grafik-Hardware, das du kennen musst:
|
|---|
| 85 | ## 1. Zeilenlängen-Vorteil (Stride / Pitch) bei 1024×600
|
|---|
| 86 | Bei vielen Grafikauflösungen führt Hardware-Alignment dazu, dass am Ende jeder einzelnen Displayzeile ungenutzte Füllbytes (Padding) eingefügt werden müssen, damit die nächste Zeile wieder sauber ausgerichtet startet (sogenannter Stride oder Pitch). [2, 3]
|
|---|
| 87 | Bei deiner gewählten Auflösung hast du jedoch Glück:
|
|---|
| 88 |
|
|---|
| 89 | * Eine Zeile hat 1024 Pixel.
|
|---|
| 90 | * Bei RGB888 (3 Byte pro Pixel) entspricht das: 1024 × 3 = 3072 Byte pro Zeile.
|
|---|
| 91 | * Da 3072 exakt durch 32 teilbar ist (3072 / 32 = 96), ist jede einzelne Zeile deines Displays automatisch perfekt auf das 32-Byte-Raster ausgerichtet!
|
|---|
| 92 | * Ergebnis: Es entsteht an den Zeilenenden absolut kein Speicherverschnitt. Der Puffer bleibt komplett "packed" (kompakt). [3]
|
|---|
| 93 |
|
|---|
| 94 | ## 2. Eine wichtige Hardware-Falle beim STM32N6 (NeoChrom GPU)
|
|---|
| 95 | Wenn du den STM32N6 nutzt, gibt es bezüglich RGB888 eine entscheidende Besonderheit des Grafikbeschleunigers: Die im STM32N6 verbaute NeoChrom GPU unterstützt nativ oft kein direktes Schreiben/Rendern in 24-Bit-RGB888-Framebuffer. [4, 5]
|
|---|
| 96 | Um dieses Problem ohne Speicherverschwendung zu lösen, nutzt STMicroelectronics ein cleveres Hardware-Feature: die GFXMMU (Graphics Memory Management Unit). [4, 5]
|
|---|
| 97 |
|
|---|
| 98 | * Deine Software (z. B. TouchGFX oder LVGL) "denkt", sie rendert in einen 32-Bit-Puffer (ARGB8888). [4, 5]
|
|---|
| 99 | * Wenn die GPU auf den Speicher zugreift, fängt die GFXMMU diesen Zugriff ab und packt die Daten in Hardware transparent als 24-Bit-RGB888 in den echten RAM. [4, 5]
|
|---|
| 100 | * Der reale Speicherverbrauch in deinem RAM bleibt dadurch bei den berechneten 1,84 MB pro Puffer, obwohl die Grafiksoftware performant mit 32-Bit-Adressierung arbeitet. [4, 6]
|
|---|
| 101 |
|
|---|
| 102 | Zusammenfassend: Durch das Alignment verlierst du keinen Speicher, und dank der Breite von 1024 Pixeln entstehen auch keine Performance-Einbußen durch künstliches Zeilen-Padding. [3]
|
|---|
| 103 | Möchtest du wissen, wie die GFXMMU-Konfiguration in den STM32Cube-Werkzeugen eingerichtet werden muss, damit dieses hardwareseitige 32-zu-24-Bit-Mapping für deine Auflösung korrekt funktioniert?
|
|---|
| 104 |
|
|---|
| 105 | [1] [https://stackoverflow.com](https://stackoverflow.com/questions/8516835/alignment-of-c-structure-in-internal-flash-memory)
|
|---|
| 106 | [2] [https://electronics.stackexchange.com](https://electronics.stackexchange.com/questions/640680/stm32-ltdc-difference-between-pitch-and-line-length)
|
|---|
| 107 | [3] [https://community.st.com](https://community.st.com/stm32-mcus-touchgfx-and-gui-33/support-for-padding-in-frame-buffer-47990)
|
|---|
| 108 | [4] [https://support.touchgfx.com](https://support.touchgfx.com/docs/development/scenarios/touchgfx-on-gpu2d)
|
|---|
| 109 | [5] [https://support.touchgfx.com](https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-ltdc-parallel-rgb)
|
|---|
| 110 | [6] [https://medium.com](https://medium.com/@pkusolruangchai/exploring-stm32n6-f41df8e2e516)
|
|---|
| 111 |
|
|---|