STM32F429-Discovery-Board

STM32F429-Discovery :

stm32f429_disco

STM32F429-Discovery

Das STM32F429-Discovery-Board :

Eingabemöglichkeiten :
1x Taster
1x Drehraten-Sensor (3-Achs) [L3GD20]
1x Touch

Ausgabemöglichkeiten :
2x LED (grün,rot)
1x Grafik-LCD 2,4 Zoll (320 x 240 Pixel) 262k Farben

Mikroprozessor :
STM32F429ZIT6

Sonstiges :
-Programmier und JTAG-Debug Schnittstelle per USB (ST-Link/V2)
-Micro-USB-Anschluß für USB-OTG (z.B. um einen USB-Stick anzuschließen)
-zwei Stiftleisten (2x32pol) auf denen viele CPU-Pins aufgelegt sind
-externes SD-RAM (64MBit = 8MByte)

Die STM32F4 CPU :

-32Bit ARM4 Architektur
-2MB Flash
-256kByte RAM
-interner Systemclock per PLL bis max. 180 MHz
-Hardware FloatingPoint-Unit zuschaltbar
-11 GPIO-Ports (A-K) davon 10 mit 16bit und eine mit 8Bit breite
-External-Memory-Controller (FMC)
-LCD-Controller (mit extra Grafik-Beschleuniger)
-EthernetMac
-USB (OTG)
-zwei DMAs
-2 bzw. 3 ADC
-2 DACs
-14 Timer
-8 UARTs
-2 CAN
-6 SPI
-3 I2C
uvm. :-)

82 Antworten auf STM32F429-Discovery-Board

  1. Holger sagt:

    Schon mal überlegt, Deinen STM32F4-Stamp statt mit dem 100 Pin 407 mit dem 429 und 144 Pins zu bauen?… Finde Deine erste Stamp-Idee schon nicht schlecht… Und ein einfacher Stamp mit dem 429 wäre doch mal was…

    • admin_ub sagt:

      ich glaube die CPU gibts noch nicht einzeln, und die Eval-Boards werden von STM gesponsort…das bekommt man nie so billig hin beim selberbauen. z.B. der 407 kostet einzeln 12 EUR aber das komplette Discovery-Board nur 16 EUR :-)

  2. tom sagt:

    Hi Uwe,

    Hast Du nen Plan, ob das TFT so wie es auf dem board verbaut ist auch nur im SPI-Mode ansteuerbar ist ? Der ili9341 auf dem TFT kann das ja.

    grutzli, tom.

    • admin_ub sagt:

      Im Prinzip schon, aber das wäre sehr langsam. Bewegte Sachen wirst du da vergessen können. Und die Pins sind am Disco-Board ja schon mit dem Display verbunden, die kannst du also eh nicht anderweitig nutzen.

  3. tom sagt:

    Danke Uwe,

    die zielapplikation benutzt das gleiche display+touch, muss keine bewegten bilder machen, nur bissel statische grafik und mal button changes und wird auch einen kleineren stm32F1xx als cpu haben.
    ich habe das disco board nur als hw-plattform ohne löten für ne kleine machbarkeit genommen….

    • admin_ub sagt:

      eine LIB für das Display im SPI-Mode ist jetzt fertig. Du musst nur die richtige SPI-Lib einbinden damit es bei dir funktioniert.

  4. tom sagt:

    ich nochmal,

    was für ein RN-42 modul hast Du da im Plan ?
    evtl. kann ich Dir damit etwas unter die Arme greifen, wenn Du willst.

    Gruss, Tom.

  5. tom sagt:

    Hi Uwe,

    Wenn Dein RN42 mit firmware r6.15 bestückt ist soll es SPP und HID können.
    Kannste dann je nach Wunsch über die UART des Moduls im Command mode Dir konfigurieren:

    http://ww1.microchip.com/downloads/en/DeviceDoc/Bluetooth%20Firmware%20Version%206%2015%20Release%20Notes_r.pdf

    Vor 2-3 Wochen war noch ziemliches Chaos betr. Docs und Infos zum RN42, wohl bedingt durch die Übernahme durch Microchip. Das hat sich nun zum Guten geändert.

    Hab Spass + Gruss, Tom.

  6. Info sagt:

    Mit den 8 MB RAM evtl. ein nettes NF-Oszi ..

  7. Markus sagt:

    Ist das onboard Display mit Touch?

  8. Lord sagt:

    Hallo ,
    Erstmal vielen Dank für deine Librarys ! Deine Seite hat mir die Einarbeitung mit dem STM32F429 Disco board sehr erleichtert. Jetzt zu meiner Frage Momentan nutze ich das Board mit einem 4,3 (480X272) LCD welches ich über den integrierten LTDC des STM32F429 mit RGB Protokol 565 angesteuert wird (als Speicher wird der SDRAM verwendet) . Ist es möglich nun MAC des STM32F429 gleichzeitig mit dem LCD Controller zu nutzen? Laut dem …F429 Datenblatt überschneiden sich bei allen F429 und F427 Modellen die möglichen TX_EN Anschlüsse (PG11 und PB5) mit den Ausgabepins des LTDC (B3 und G5).

  9. Lohmann sagt:

    Hallo ich habe mir das STM34F429 gekauft habe zuvor nur
    Atmel mit Bascom Programmiert. Nun habe ich den BMA180
    der sehr genau ist. Kann jemand mir dabei behilflich sein denn
    das ist schon eine Umstellung zu Bascom.
    Die Programmierung mit CooCox funktioniert schon auch laufen
    Sensoren wie der DS18S20 schon recht gut aber der BMA180 über
    SPI (Ich weis schon das ich SPI3 verwenden muss) ist in C++ doch
    noch etwas zu schwer.

    • admin_ub sagt:

      für den BMA180 hab ich schon was geschrieben. Allerdings nur für den ATMega aber das umsetzen auf den STM sollte kein Problem sein. Gib mir ein paar Tage. Und schreib wenn du eine besondere Funktion brauchst. SPI3 ist am F429-Disco schon belegt, aber SPI1 ist noch frei.

    • admin_ub sagt:

      so, die Library ist fertig. Lade sie dir mal runter und probier sie aus.

  10. Lohmann sagt:

    Da habe ich zum BTM180 noch eine Frage:
    Habe ich nicht die Möglichkeit auch den i2c zu nutzen?
    Oder habe ich beim i2c Nachteile denn ich benutze beim ATMega
    i2c.
    (Teste die Library Sonntag Abend und Montag Morgen)

    • admin_ub sagt:

      nein, I2C geht genauso. Beim Disco-Board kannst du aber nur I2C-3 benutzen (da hängt auch der Touch mit drann) Also musst du diese Lib einbinden statt der SPI-4. SCK=SCL, SDI=SDA. SDO=GND -> dann ist die IC2-Slave-Adr=0×80.
      Überall wo jetzt eine “SPI-Funktion” steht muss dann die entsprechende “I2C-Funktion” benutzt werden.

  11. Lohmann sagt:

    Vielen Dank.

  12. Lohmann sagt:

    Da habe ich doch noch eine Frage bei der Adr.:0x80H die ist im Datenblatt
    Seite 57 mit 1000 00×0 wobei das letzte Bit das RW ist.
    Aber warum das x und nicht grundsätzlich die Schreibadresse 0x80H
    und die Leseadresse 0x81H da habe ich ein Verständnis Problem.
    Und viele schreiben das die Adresse sei aber 0x40h?

    • Lurch sagt:

      0×40 ist die 7-bit adresse (also, ohne read/write bit)
      Google wird helfen, den Unterschied zwischen 7- und 8-bit Adressen zu erklären.
      Manche Software (z.B. Arduino) erwartet 7-bit.

      • admin_ub sagt:

        ja das stimmt, meine I2C-Lib erwartet einen 8bit Wert als Adresse. Und die “x” in der Doku steht für den Pegel vom Pin “SDO”. Mit diesem kann man noch eine zweite Adresse einstellen (wenn er auf Hi-Pegel liegt ist diese 0×82) Aber der Touch vom Disco-Board hat genau die gleiche Adresse (0×82) also ist die nicht zu empfehlen.

  13. Lohmann sagt:

    Super vielen Dank super, nun noch eine Frage der ISR(µC) und der INT (BMA180)
    kann ich doch erstmal auslassen wenn ich keine Interrupt Steuerung benutze oder?

  14. Lohmann sagt:

    Wird der Interrupt beim BMA180 durch Aktivität ausgelöst oder durch eine
    vorgegebene Zeit ?
    Da ich eigentlich ein Programm was mir z.B. auch Messwerte vom BMP085
    und Ds18S20 Liefern soll schreiben möchte(also Multifunktionen aus dem Menü).
    Ich Denke das Polling geeignet ist da ich auf Befehl permanent abfragen möchte (seismograf). Das ganze schicke ich dann mit dem
    BTM222 zum PC(das geht schon).
    Aber dabei mache ich mir Gedanken über die Geschwindigkeit möchte schon
    3-6 * XYZ/Sek mit Senden an den PC erreichen und das Touch soll auch aktiv sein.

  15. Lohmann sagt:

    In der Doku (Pinout) steht aber nur PA5=SCK|PA6=MISO|PA7=MOSI
    und PB3=SCK|PB4=MISO|PB5=MOSI aber wo ist de CS welcher Pin
    eignet sich für CS ?

  16. Lohmann sagt:

    Habe ich das mit dem PORT-B der PIN-2 für CS richtig verstenden ?

    • admin_ub sagt:

      bei I2C gibts keinen ChipSelect. Und bei meiner Library für den BMA180 liegt der ChipSelect für SPI auf PB2 kannst du aber im H-File vom Sensor beliebig auf irgendeinen Pin legen der noch nicht benutzt wird.

  17. Lohmann sagt:

    Danke das Programm habe ich nun getestet leider kommt auf dem lLCD ein “ERROR”
    Habe mich für SPI entschieden:
    PB4=MISO
    PA7=MOSI
    PA5=SCK
    PB2=CS

    Ich teste mal durch woran das liegt melde mich dann.

  18. Lohmann sagt:

    Leider bekomme ich im LCD ein “ERROR” ?

  19. Lohmann sagt:

    Sorry ich habe nun den Fehler
    PE2=CLK
    PE5=MISO
    PE6=MOSI
    PB2=CS

    Ich dachte es wäre der SPI1 ist aber SPI 4

  20. Lohmann sagt:

    Das funktioniert super Gut.
    Danke für die Mühe das hätte ich alleine so nicht
    hin bekommen. Zumindest nicht mehr in diesem Jahr :-)

  21. Lohmann sagt:

    O.K. mache ich sage heute Abend ca.21:30Uhr bescheid denn ich habe nun Schwimmaufsicht.

  22. Lohmann sagt:

    Also bei
    +/-2G
    X=-15 bis 40
    Y=-22 bis 25
    Z=994 bis 1030
    Bei +/-16 G
    X=116 bis 150
    Y=89 bis 130
    Z=780 bis 816
    Sind das die Messwerte die du wissen wolltest ?

  23. Lohmann sagt:

    Die 14-Bit Auflösung besteht doch nur im +/- 2g Bereich oder ?
    Dann kann ich 2 hoch 14 =16384 / 2= 8192 den positiven
    und negativen Messbereich aufteilen.
    Dann 2 / 8192=0.00024g als Auflösung rechnen ?

    Ich versuche die feinste Auflösung zu erreichen weißt du wie die Filter
    im Zusammenhang stehen ?
    Ist es für die Auflösung wichtig ob Bandpass oder Hochpass ?

    • admin_ub sagt:

      nein, die Auflösung von 14bit ist unabhängig von Filter oder Messbereich.
      bei +/-2g entspricht 1bit ca 0.25mg Und bei +/-16g entspricht 1bit ca. 2mg. Die höchste Auflösung liegt demnach bei +/-1g . Und für den Rest musst du im Datenblatt nachsehen da steht auch was von Kalibrationswerten usw.

  24. Lohmann sagt:

    Nochmals zu dem Offset der ist doch auch Temperatur abhängig. Ich
    habe ein Breakout board da sind 2 Kondensatoren drauf (ich nehme an
    zu Stabilisierung der Spannung). Die Leitung (Telefondraht) ist ca.2,2m lang.

  25. Lohmann sagt:

    Danke ich werde mal nachlesen.

  26. Lohmann sagt:

    Nun versuche ich den UART einzubinden
    #include “main.h”
    #include “stm32_ub_lcd_ili9341.h”
    #include “stm32_ub_font.h”
    #include “stm32_ub_bma180.h”
    #include
    #include “stm32_ub_uart.h”

    int main(void)
    {
    UB_Uart_Init();

    ErrorStatus check;
    // ErrorStatus check1;
    int16_t x,y,z,t;
    char buf[30];

    SystemInit(); // Quarz

    Aber bei dem Build kommt der Fehler

    [cc] ..\obj\main.o: In function `main’:
    [cc] collect2.exe: error: ld returned 1 exit status
    [cc] E:\Schule\STM32F4Discovery\C++\BMA180_1/main.c:36: undefined reference to `UB_Uart_Init’

  27. Lohmann sagt:

    Nun habe ich alle die Dateien:
    stm32f4xx_usart.h
    stm32f4xx_usart.c
    mit add file eingebunden und es kommt die Fehlermeldung:

    [cc] ..\obj\stm32_ub_uart.o: In function `UB_Uart_Init’:
    [cc] E:\Schule\STM32F4Discovery\C++\BMA180_1\ub_lib/stm32_ub_uart.c:118: undefined reference to `NVIC_Init’
    [cc] collect2.exe: error: ld returned 1 exit status
    Da bleibe ich dann stehen diese Fehlermeldung bekomme ich nicht weg.

  28. Lohmann sagt:

    Damit kann ich nichts anfangen:
    [cc] E:\Schule\STM32F4Discovery\C++\BMA180_1/stm32_ub_uart.c:118: undefined reference to `NVIC_Init’

    NVIC_Init(&NVIC_InitStructure);

  29. Lohmann sagt:

    Also den UART habe ich schon ohne LCD usw. getestet und er Funktioniert auch
    nur wenn ich Ihn in das Demo BMA180 einbinde komme ich nur bis zu der
    Stelle:
    undefined reference to `NVIC_Init’
    NVIC_Init(&NVIC_InitStructure);

  30. Lohmann sagt:

    // enable UART Interrupt-Vector
    NVIC_InitStructure.NVIC_IRQChannel = UART[nr].INT;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    Wenn ich den Teil Auskommentiere dann funktioniert der Build aber
    der UART Sendet nicht( UB_Uart_SendString(COM1, “Hallo”, CRLF);.

    Liegt das ein einem Konflikt mit einem Interrupt ?

  31. Lohmann sagt:

    Nun brauche ich wieder Hilfe denn ich bekomme den UART in die
    Demo_F429_25 nicht zum laufen. Nur der UART geht.

  32. Lohmann sagt:

    Nun habe ich die Lösung die misc.h + misc.c mussten noch eingebunden werden.
    Nun Funktioniert auch der UART.

  33. Lohmann sagt:

    Schreibe nun in C# eine Auswert Software was hält du von C# (Studio Express);

  34. Lucas Dias sagt:

    hallo,

    Ich habe gerade mit der Programmierung begonnen und ich STM32F429, um ein Projekt ohne die Entwicklungsplatine, Chip nur tun müssen. Ich möchte wissen, ob es möglich ist, verwenden Sie Ihre Bibliothek in LCD ohne Controller.

    Haben Sie eine Anregung, wie kann ich das tun?

    Vielen Dank

  35. Sam white sagt:

    Hello

    I love your project libs…I am wondering if you could create a small project for me…I would like to use the 429 discovery board to do vga…if you change the gpio pins and the timing could you add a vga display instead of using the LCD display? If you have time I would be very appreciative

    • admin_ub sagt:

      i have allready made a vga library. It’s for the STM32F407 but i think it should work without any modification (only the peripeherals libs). try this and give a reply. http://mikrocontroller.bplaced.net/wordpress/?page_id=1415

      • Sam white sagt:

        Thanks for getting back…the driver for the stm32f407 looks good…but the 429 with the ltdc driver running vga would be awesome…so much power…Unfortunately, changing the ltdc timing and gpio pins is probably beyond my abilities. I am guess it could be a very simple project for you:) A simple 640 by 480 vga at 60 hz

        • Sam white sagt:

          I tired to change the gpio pins today and now I think I have messed up the LCD on the board…I should of just left it to the expect….any chance you could adapt your stm429 project 7…to a new group of gpio pins with vga display at 640 by 480 and 60 hz…it would be a great starting point for me

          • admin_ub sagt:

            oh, now i have figured out what you want. You want to use the CPU Hardware (LTDC) to drive a VGA-Display. But i dont have the hardware to try this. I have only one STM32F429-Board and i dont destroy this to program a VGA driver. Sorry.

  36. Sam white sagt:

    A quick question…if I try to use the stm32f407 vga drivers with the f429 board…what changes need to be made to the clock settings….f429 runs at 180 MHz and the f407 runs at 168 MHz…if I lower the f429 clock back to 168mhz will the other peripheral still work okay….because I am planning on using the on board sdram for a memory buffer

    • admin_ub sagt:

      168MHz on the STM32F429 is no problem. SDRAM/ADC/LCD works fine on my projekts. USB works only with 168MHz. Make sure that the SystemCoreClock define is on 168MHz too.

      • Sam white sagt:

        Thanks for getting back to me…I am going to work on getting the stm32f407 vga drivers to work on the f429 board…to make sure the clocks are set correctly(168 MHz)…I am going to use your system-stm32f4xx.c file from demo-f429-13 (USB driver)…do you think that will cause any problems? What else needs to be changed or modify? Or can you give modifying the f407 vga driver to work on the f429 discovery board a try?

        • Sam white sagt:

          I am going to need your help…the gpio pins need changed…the f429 pins PE8 through PE15 are used for the sdram…plus the hsync signal would interfere with the LCD

          • Sam white sagt:

            Admin-ub

            have you had a chance to look to at the peripheral libs on the f429 to change to gpio pins…I really need your help:)

          • admin_ub sagt:

            PB12 is a normal GPIO you can choose another pin for that function. But PB11 is CH4 from Timer2 you must change that to CH1 and PA5. A big problem is the 8bit Color-Port this must be the upper or lower byte from a port. You can take PC8-PC15 without PC10 but you lose one color bit.

          • Sam white sagt:

            Thanks again…7 bit color would be okay….however…I do not want to damage the LCD display…as I want to keep the board in tact. Therefore when writing data to ports pc8 thr pc15… Do I need to make sure that the pc10 is always a zero…example 0xfb or 0x0b while avoiding data such as 0×04 or 0x0f…or how do you bang out 8 bits skipping the pc10 pin

            Also should I be concerned that pc14 and pc15 are tied to osc32-in and the osc32-out and pc9 to sda

          • Sam white sagt:

            How do you bang out 8bits to 7 pins? How do you skip PC10…and does sda on pc9 cause any concern

          • admin_ub sagt:

            if you dont need the lcd running. you can use pc10 for the vga signal. you cant destroy anything.
            (in lcd mode this pin is an output too)
            sda on pc9 is the same problem. if you dont want to use the touch everything is fine.

  37. Sam white sagt:

    Thank you…thank you…one last question then I will leave you alone

    I am also looking at doing 16 bit color on the stm32f4 discovery board…the pe port looks good…except pe0,pe1, and pe3 are tied to the motion sensor lis302…does the same apply…if I do not use the motion sensor then I can use those pins without concerns

    • Sam white sagt:

      Sorry my question was not very clear…

      So can I use/drive all of the pe port/pins on the stm32f4 discovery board to do 16 bit vga color if I do not use the motion sensor? Pe0, pe1, and pe3 would be okay..correct?

  38. Joachim sagt:

    Hi,
    super Webseite. Sehr informatives und cooles Zeug.

    Mal ne Frage: Wie wird denn das Display angesteuert? Hat das nen eigenen Controller wie zB SSD1263 oder muß der STM die ganze Arbeit (HSYNC + VSYNC wie damals zur 8-bit Ära :-) wuchten? Ich hab die harte Tour mal mit nem SAM3X probiert, kam aber nix Gescheites dabei raus. Vielleicht könnte man sich da was abkucken.

    Ach ja, noch was: Ich hab hiern 4.3-Zoll 480×272 Display mit nem XPT2048. Das Ding streut daß es einem schwindlich wird, gelegentlich springt die XY-Position des 2048 um 100 Pixel und zwar immer in die gleiche Richtung nach rechts (Touch-Anschluß ist unten).
    Jemand ne Idee?

    Gruß
    Joachim

  39. Volker sagt:

    Hallo Uwe,

    Bei der Firmware des 429 discovery boards ist ein Treiber für ein I2C M24LR64 EEPROM mit dabei, den ich gerne nutzen würde. Ich bin in der Programmierung des I2C-Moduls bisher nicht bewandert, aber offensichtlich wird das gleiche Modul benutzt wie für den Touch-Controller. Dieser läuft schon und funktioniert prächtig, aber der EEPROM-Treiber will nicht funktionieren. Er steigt direkt beim Senden der Device-Adresse aus. Ist das EEPROM überhaupt verbaut? Weil alles so gut vorbereitet ist war ich eigentlich davon ausgegangen… Und wenn ja, könntest Du mich unterstützen? Ach ja, es handelt sich um die Softwareversion mit den alten Standard Peripheral Libraries. Ich habe bisher noch nicht auf die neuen Treiber umgestellt.

    Vielen Dank und bis bald
    Volker

  40. Alexandr sagt:

    Tell me please, what version of Coide supports microcontroller STM32F429i-DISCO?
    Thank you

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


sieben + = sechszehn

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>