Welches Zubehör für DevKit NUCLEO-H723ZG ?

#7608345
Lesenswert?
• ▲
▼

Lysandros schrieb:

ich lege zum ersten Mal mit Mikrocontrollern los und habe ein NUCLEO-H723ZG bestellt.

Mit einem Porsche das Fahren lernen ist vielleicht etwas ambitioniert, oder?

Ein oller Arduino und eines dieser typischen Startsets mit ein paar LEDs und Tastern wäre zum Einstieg sicher besser für die Lernkurve und das Frustgefühl.

Einem H7 (auf dem fast schon Unix laufen kann) Ethernet beizubringen ist kein typisches Anfängerprojekt.

Sowas: https://amzn.eu/d/7zXuBr6

#7608628
Lesenswert?
• ▲
▼

Ich habe so etwas ähnliches für den H743. Dort sind auf dem Board gleich 3 LEDs mit drauf. Die ersten Blinky-Programme gehen auch ohne extra Hardware. USB-Kabel reicht, davon hat man ja eh genug herumfliegen. Die Cube-IDE geht ganz prima, da kann man sogar interaktiv debuggen.

Wenn die Blinkys laufen, muss man sehen, in welche Hardware-Richtung man gehen möchte: AD-Verarbeitung. Oder Bus-Programmierung (SPI, I2C). Timer Anwendungen. Dann kauft man passend dazu.

ST lieferte bei mir auch einiges an Beispielen mit, gut zum lernen. USB-CDC war z.B. mit dabei.

Und letztendlich lernt man auf einem nackten ST mehr, als in der Arduino Kindergartenwelt.

#7608629
Lesenswert?
• ▲
▼

Peter schrieb:

Und letztendlich lernt man auf einem nackten ST mehr, als in der Arduino Kindergartenwelt.

Magst du das näher erläutern?

Allein was die Anzahl und Möglichkeiten der Konfigurations- und Timer-Register angeht, was die Register/Fuses für Clock-Sources angeht,... ist ein 8bit-AVR erst einmal deutlich übersichtlicher.

Die Arduino IDE ist im Vergleich zu Eclipse schlank und übersichtlich aufgebaut und bietet erst einmal alles, was man als Anfänger benötigt.

Ob es nun while(1){} oder loop(){} heißt, macht für die Programmier-Sammel-Erfahrung keinen Unterschied.

Die IDE nutzt normales avrgcc. Du kannst deine LED mit zwar mit digitalWrite(LED, 1); einschalten, aber PORTB |= (1<<PORTB1); geht genau so, wie man es mit avrgcc halt macht.

Ja, es gibt für viele Dinge Libraries, die mann nutzen kann, die einem ein bisschen Arbeit abnehmen, aber mit der Logik müsste CubeMX für dich auch Kindergartenwelt sein, weil man ja nicht wie echte Männer Bitpopelei auf Fußpilzebene betreibt?

#7608728
Lesenswert?
• ▲
▼

Sebastian R. schrieb:

Magst du das näher erläutern?

Ich habe diverse Leute erlebt, die nicht aus der 'betreuten' Arduino-Welt herausgefunden haben. Wenn man etwas mehr möchte, dann muss man sich mit den unterliegenden Subsystemen beschäftigen. Das muss jetzt nicht über Bitfriemelei sein, denn STM bietet einiges in Set/Get Funktionen an. Aber man muss die Datenblätter lesen und manche Register setzen. Beispiel: Mein STM kann SPI auf 3 verschiedene Arten ansprechen: Polling, Interrupt und DMA Betrieb. STM stellt die Init() Funktionen im Sourcecode zur Verfügung, wo man sich dann auch die Unterschiede anschauen kann. Für einen professionellen Einsatz muss man dann auch die richtige Modi wählen. Das geht nicht, wenn man nur ein paar Blinkys mit DigitalWrite, oder AnalogRead (genaue Funktionsnamen kenne ich nicht) benutzt.

#7608734
Lesenswert?
• ▲
▼

Peter schrieb:

Das geht nicht, wenn man nur ein paar Blinkys mit DigitalWrite, oder AnalogRead (genaue Funktionsnamen kenne ich nicht) benutzt.

Nur die Arduino IDE und das Ökosystem zwingt einen nicht dazu, diese Funktionen zu nutzen.

Du kannst normal die AVR-Bibliotheken einbinden (z.B. #include <avr/power.h>) und kannst auch ganz normal die Register manipulieren.

Ich nutze die Arduino IDE als schlanke Alternative zu VSCode oder MPLAB. Im Prinzip ist es nur Notepad++ mit avrgcc und avrdude eingebaut.

Meine Funktion, um Timer0 beim ATTiny85 in der Arduino IDE zu konfigurieren sieht z.B. so aus. Komplett ohne etwas, das nur mit Arduino geht.

1
void setupT0() {
2

3
  // Normal port operation, OC0A/OC0B disconnected, Normal Timer operation
4
  TCCR0A = (0 << COM0A1) | (0 << COM0A0) | (0 << COM0B1) | (0 << COM0B0) | (0 << WGM01) | (0 << WGM02);
5

6
  // Ext. T0 as input. Rising edge
7
  TCCR0B = 0;
8
  TCCR0B = (0 << FOC0A) | (0 << FOC0B) | (0 << WGM02) | (1 << CS02) | (1 << CS01) | (1 << CS00);
9
}

Genau so, wie man es auch in Atmel Studio oder MPLAB oder eben auch beim STM32 "bare metal" machen würde.

Persönliche Seite #7608747
Lesenswert?
• ▲
▼

Sebastian R. schrieb:

Mit einem Porsche das Fahren lernen ist vielleicht etwas ambitioniert, oder?

Naja, der Porsche ist doch bekannt als der am Einfachsten zu fahrende Sportwagen wegen des gutmütigen Fahrwerks.

Wer schon programmieren kann und sich auch mit (Digital-)Elektronik auskennt und die Zeit und Energie hat wird mit dem H7 schon klar kommen. Immerhin hat ST eine relativ gute Dokumentation, IDE, Libraries.

Mit "Bare Metal" / Registerprogrammieren würd ich sowieso nicht mehr anfangen, sondern direkt mit einem High-Level API. Allerdings ist das Arduino-API da schon einfacher als z.B. die STM32 Cube-APIs. Aber mit vorhandenen Programmierkenntnissen wird es schon gehen.

Thomas T. schrieb:

SDIO hab ich bis heute nicht am laufen...

Das ist aber bei allen STM32-Varianten identisch. Und die ST-Dokumentation (inkl. Errata!) sowie die SD-Spezifikation enthält eigentlich alle Informationen die man dazu braucht.

Schwieriger sind solche Unterfangen bei Controllern und zugehöriger komplexer Software mit wenig Dokumentation. Da muss man dann viele educated guesses machen, und dafür braucht es Erfahrung.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.