Ignore:
Timestamp:
Aug 27, 2026, 3:39:35 PM (3 weeks ago)
Author:
f.jahn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hardware/notizen.txt

    r1 r8  
    2222The 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.
    2323
     24
     25Der Chip ist ein MX66UW1G45GXDI00. Mouser ab Oktober verfügbar und kostet 30EUR!!!!, Digikey: Kein Bestand und 27EUR
     26
     27
     28
    2429microSD™ 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.
    2530
     
    3136Audio 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.
    3237
     38
     39Schaltplan:
     40https://www.st.com/resource/en/schematic_pack/mb1939-n6570-c02-schematic.pdf
     41
     42
     43
    3344---------------------------------
    3445NUCLEO-N657X0-Q
     
    3849
    3950-> USB Type-C® DRP with USB 2.0 high-speed interface, dual‑role‑power (DRP)
    40 -> 64Mbit Flash über Okto SPI
     51-> 64Mb Flash über Okto SPI
     52
     53
     54
     55
     56Schaltplan
     57https://www.st.com/resource/en/schematic_pack/mb1940-n657x0q-c02-schematic.pdf
     58
     59Flash:
     60MX25UM51245GXDI00
     61Lieferzeit???? Preis ab 13 EUR
     62Bei Farnell ab März 2027
     63
     64Aus der gleichen Serie scheint MX25UM25645GMI00 aktuell verfügbar mit 256Mbit --> 32Mbyte
     65Achtung: Lieferbeschränkung!!!!
     665,88 EUR
     67
     68
     69
     70 
     71MX25UM51345G ist bei mouser verfügbar
     72--> langsamer lt. ki, nicht komplett gleiche register--> Stimmt das wirklich?
     73
     74
     75BGA Raster ist 1mm bei Macronix.
     76
     77
     78
     79------
     80Programmierung:
     81Nein, durch das reine Start-Alignment geht kein nennenswerter Speicher verloren.
     82Das 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]
     83Innerhalb des Arrays liegen alle deine RGB888-Daten (Pixel für Pixel, Zeile für Zeile) absolut lückenlos und ohne "Gaps" (Verschnitt) hintereinander.
     84Es 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
     86Bei 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]
     87Bei 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)
     95Wenn 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]
     96Um 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
     102Zusammenfassend: 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]
     103Mö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
Note: See TracChangeset for help on using the changeset viewer.