STM32F746 Discovery ARDUINO

Gast #5032867
Lesenswert?

Wer Freude an der Programmierung im Arduino Stil hat, kann das jetzt auf 
einem STM32F746 Discovery

http://www.st.com/en/evaluation-tools/32f746gdiscovery.html

tun.
Man braucht dazu nur das STM32GENERIC Framework.
Angehängte Dateien:
#5033381
Lesenswert?

Markus schrieb:
> Wer Freude an der Programmierung im Arduino Stil hat, kann das jetzt auf
> einem STM32F746 Discovery
>
> http://www.st.com/en/evaluation-tools/32f746gdiscovery.html
>
> tun.
> Man braucht dazu nur das STM32GENERIC Framework.

Ich habe versucht es zu installieren nach der Anleitung unter 
https://danieleff.github.io/STM32GENERIC/

Allerdings bekomme ich beim Versuch, das Beispiel "Display" für das 
STM32F746NG Discovery zu kompilieren folgende Fehlermeldung:
1
arm-none-eabi-g++: error: unrecognized argument in option '-mcpu=cortex-m7'

Neueste Arduino Version 1.8.3 ist drauf, über den Boardmanager habe ich 
"Arduino Zero" installiert. Im Verzeichnis 
AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc ist die 
Version 4.8.3-2014q1 zu finden, ist die nicht viel zu alt für den M7?

Jemand ne Idee?
Gast #5033398
Lesenswert?

> Allerdings bekomme ich beim Versuch, das Beispiel "Display" für das
> STM32F746NG Discovery zu kompilieren folgende Fehlermeldung:

Hallo M.G.
das Problem hatte ich auch längere Zeit. Das liegt daran, dass die F7 
CPUs erst von neueren GCC Versionen unterstützt werden.

Ich habe das Problem folgendermaßen gelöst

Zuerst das Arduino-Framework von STM direkt installieren, wie hier 
installieren:

http://www.stm32duino.com/viewtopic.php?f=48&t=2098

Danach ist der Compiler auf dem neusten Stand und der Error sollte 
verschwinden.

Kannst Du mitteilen, wenn es geklappt hat?
Gast #5043826
Lesenswert?

Hallo,
das ist bestimmt ein absolut geiles Board. Die Unterstützung vom ST ist 
leider nicht so prickeld. Die Demos wie Mandelbrot, Oszi...
sind bei mir leider auch nicht da. Installation nach Anleitung.
Die Demo APP, die standardmäßig drauf ist kann ich auch nicht finden.
Wäre nett, wenn Ihr Eure Testst (Spielereien) hier hochladen  würdet.
Für den Einstieg in so ein aufgebohrtes Board brauche ich ein paar 
Demos.
Gerade für TFT und Touch.

Grüße
Lothar
Gast #5043898
Lesenswert?

>Die Demos wie Mandelbrot, Oszi...sind bei mir leider auch nicht da.

Hallo Lothar,

vom Framework von STM wird zwar bis jetzt das Board unterstützt, die 
wichtigen Treiber fehlen aber noch. Ich nehme an, dass STM das die 
nächsten Monate nachliefern wird.

Es ist besser, das FrameWork STM32GENERIC von "danieleff" wie oben 
beschreiben zu nutzen:
Beitrag "Re: STM32F746 Discovery ARDUINO"

Dort findest Du auch die funktionierenden Demos für das F7.

Hast Du das Board?
Gast #5043959
Lesenswert?

Was manchmal noch zu Problemen führt:

Die Darstellung der Examples im Menue ist "context sensitive", d.h. sie 
werden nur angezeigt, wenn man das richtige Board ausgewählt hat.

Beim Auswählen des Boards kann es dann noch mal zu einem Problem kommen: 
Wählt man das Discovery von STM sieht man natürlich nicht die Beispiele 
vom STM32GENERIC.
Deshalb also das Discovery Generic Board wählen, dann sich auch die 
Examples dafür da.
Gast #5050405
Lesenswert?

Hallo Markus,
das habe ich alles probiert, ohne Erfolg. Nachdem ich den "alten" GCC 
einfach mal gelöscht habe, wurde gar keiner mehr installiert. Dann habe 
ich via Bordmanager mal die F1 Unterstützung installiert. Prompt war der 
"alte" wieder installiert. Deswegen... gelöscht und die aktuelle Version 
einfach reinkopiert. Liegt vielleicht auch daran, dass ich schon viele 
Boards getestet habe und Arduino etwas verkorkst ist.
Gast #5050427
Lesenswert?

hmm, bin ich der Einzige, der zu blöd dafür ist?
Nach Anleitung auf https://danieleff.github.io/STM32GENERIC/ 
runtergeladen und in  [Arduino]/hardware entpackt. Danach startet 
Arduino 1.8.3 nicht mehr.
Arduino_debug in der Shell gestarte meckert, daß in allen möglichen 
Unterverzeichnissen die 'platform.txt' fehlt.
Falls ich die reinkopiere startet Arduino wieder, meckert jetzt aber 
über fehlende 'boards.txt'
Die  STM32Generic-Boards stehen in der Boardauswahl nicht zur Verfügung.

Bin ich nicht Arduino-Kompatibel?
Gast #5050466
Lesenswert?

>Hallo Markus,
>das habe ich alles probiert, ohne Erfolg. Nachdem ich den "alten" GCC
>einfach mal gelöscht habe, wurde gar keiner mehr installiert. Dann habe
>ich via Bordmanager mal die F1 Unterstützung installiert. Prompt war der
>"alte" wieder installiert. Deswegen... gelöscht und die aktuelle Version
>einfach reinkopiert. Liegt vielleicht auch daran, dass ich schon viele
>Boards getestet habe und Arduino etwas verkorkst ist.

Ich glaube, da ist was durcheinander gekommen, die F1-Unerstützung ist 
glaube ich das falsche Framework.

Der Vorgang, mit dem es eigentlich gut gehen sollte:

1. das Framework von STM installieren
Das ist ja hier genau beschrieben: 
http://www.stm32duino.com/viewtopic.php?f=48&t=2098
Also:
a. den Link
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
in die Arduino-IDE kopieren Files->Preferences->Additional Board Manager 
URLs
b. Im Board Manager "STM" eintippen und dann
STM32 Core by ST-Microelectroniks auswählen und "installieren" drücken.
Dann werden die 90MByte des GCC für die Cortex M7 Prozessoren mit 
herunter geladen und installiert. Man kann dann das F7 Disco im Board 
Manager auswählen und die LED blinken lassen.

Aber: Um das Display zu nutzen muss man danach das STM32GENERIC 
framework an die ein Post weiter oben beschriebene Stelle kopieren, die 
IDE neu starten und das Board im GENERIC framework auswählen.
Gast #5052557
Lesenswert?

Markus schrieb:
> Hast Du auch genau das richtige Board wie in dem Bild ausgewählt?
> Es tauchen ja mehrere STM32F746 auf.

Nein, es taucht nichtmal der Menupunkt 'STM32GENERIC' auf. Da kann ich 
kein F7 auswählen.

Markus schrieb:
> Bei Windows 10 gibt es noch diesen etwas versteckten Ordner, in den die
> Arduino IDE alles mögliche entpackt:
> C:\Users\IchBins\AppData\Local\Arduino15

Ja, da kommen solche Ergänzungen ja normal rein. Dazu fehlen dem 
STM32Generic-Paket aber die Beschreibungsdateien. Die STM32Duino-Dateien 
landen da wenn man sie über den Boardmanager installiert und 
funktionieren auch.
Gast #5052560
Lesenswert?

>Ja, da kommen solche Ergänzungen ja normal rein. Dazu fehlen dem
>STM32Generic-Paket aber die Beschreibungsdateien.
>> C:\Users\IchBins\AppData\Local\Arduino15

Das Generic-Paket soll aber nicht da rein sondern in den Tools-Pfad wie 
ich es oben beschrieben habe. Ich habe auch probiert, es in dem 
Arduino15 Ordner zu installieren, das geht nicht.
Gast #5052588
Lesenswert?

Markus schrieb:
> Was eventuell auch noch sein könnte: Irgendwo habe sie erwähnt, dass man
> den Arduino Zero/Due support installieren soll.

Das macht man um dem ARM-GCC zu bekommen, den bringen die STM32duinos 
aber auch mit (und aktueller)

Was ich nicht verstehe, ist daß es bei mir bei keinem Rechner klappt, ob 
komplett neu installiert oder meine beiden schon älteren 
Arduino-Installationen.
Überall die gleiche Reaktion.
Gast #5052595
Lesenswert?

>Das macht man um dem ARM-GCC zu bekommen, den bringen die STM32duinos
>aber auch mit (und aktueller)
Das wundert mich, weil ich längere Zeit das F7 Board nicht benutzen 
konnte, bis die Leute vom STM32 Core endlich den m7 compiler ins Repo 
gepackt haben. Und ich hatte keine Lust wie Lothar oben, das ganze 
manuel hinzupfrimeln.

>Was ich nicht verstehe, ist daß es bei mir bei keinem Rechner klappt, ob
>komplett neu installiert oder meine beiden schon älteren
>Arduino-Installationen.
>Überall die gleiche Reaktion.

Irgendwas ist faul. Oben habe ich ja die IDEs 1.8.0 und 1.8.1 benutzt.
Da ich leider keine freie Windows Installation mehr habe, werde ich mir 
jetzt mal die 1.8.3 runter laden und schauen, ob die auf Ubuntu mit dem 
F7 geht.
Gast #5052662
Lesenswert?

Das Ergebnis der Neuinstallation von Arduino IDE 1.8.3 auf einem Ubuntu 
Rechner:

Installiert man den STM-Core, kann man das Blink example für das F7 
Board gleich kompilieren.
Aber: Installiert man den STM32GENERIC Core in das Hardwareverzeichnis, 
kann man das Board zwar im Menue auswählen, aber aus irgend welchen 
Gründen will er den alten Compiler verwenden, obwohl ja durch den 
STM-Core bewiesen ist, dass der neue Compiler da wäre:

 Generating function prototypes...
"/home/IchBins/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3 
-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m7 ..

error: unrecognized argument in option '-mcpu=cortex-m7'

Wo zum Donnerwetter setzt man den Pfad auf den richtigen Compiler? 
Irgendwie muss ich das bei den anderen System wohl gemacht und wieder 
vergessen haben ...
Gast #5052673
Lesenswert?

Ah, dieser Post bringt Abhilfe:
Autor: M. G. (looking)
>Hat geklappt. Nach der Installation des Arduino-Frameworks von STM
>musste ich allerdings erst noch den "Arduino Zero" per Boardmanager
>deinstallieren, damit dann die Version 6-2017-q1-update des
>arm-none-eabi-g++ verwendet wurde.

Auf dem Ubuntu Rechner war durch andere Arduino-IDEs auch der 
Arduino-Zero-Compiler installiert.

Fazit: Mit der 1.8.3 geht es auch ....
Gast #5055245
Lesenswert?

>Das passt jetzt zwar nicht mehr zu ARDUINO, aber ein Test lohnt sich,
>habe ich am WE festgestellt. Das Board wird auch von mbed.org
>unterstützt. Arduino kastriert mir das Teil zu stark.

Embed ist super. Ich hab's vor einiger Zeit mal mit einem Nucleo-Board 
probiert und war erstaunt, dass die TTB noch schneller als beim Arduino 
ist.

Aber was ich überhaupt nicht leiden kann: Ein Online-Compiler. Ich will 
meine Software nicht in der Cloud haben.

>Ich habe z.B.
>keine Möglichkeit gefunden 12Bit aus dem ADC zu kriegen.
Witzigerweise ist ausgerechnet der letzte Commit im GENERIC-Repo

"add analogReadResolution"

https://www.arduino.cc/en/Reference/AnalogReadResolution

> Eine bittere
> Pille von ST, die DACs sind nicht nutzbar ..

Das hat mich auch schon geärgert. Man kann aber im Framework relativ 
Leicht HAL-Funktionen hinzufügen.
Zwei Beispiele finden sich in
.. examples/Discovery407VG/HAL/..

Dumpfbacke schrieb
>Lothar schrieb:
>> Eine bittere Pille von ST, die DACs sind nicht nutzbar ...
>Das ist ja schrecklich!
>Da müsste man selbst Hand anlegen und drei Zeilen Code schreiben!
>Welch Frevel, welch Ungemach!

Da können wir mal schauen, ob Dumpfbacke so was hinkriegt eine DAC 
anzusteuern.
Gast #5055394
Lesenswert?

Es ging mir eigentlich nicht darum, die DACs anzusprechen....
Die Pins (nur PA4,5) sind nicht herausgeführt. Vielleicht bin ich auch 
ein bisschen blind oder irgend eine Dumpfbacke muss mir erklären, wie 
ich einen BGA pimpe.

Markus schrieb:
> Aber was ich überhaupt nicht leiden kann: Ein Online-Compiler. Ich will
> meine Software nicht in der Cloud haben.

...geht mir genauso. Es gibt auch die Möglichkeit mbed lokal zu nutzen, 
habe ich aber auch noch nicht getestet.
Gast #5056031
Lesenswert?

Markus schrieb:
> Autor: Lothar (Gast)
>>Es ging mir eigentlich nicht darum, die DACs anzusprechen....
>
> Für was möchtest Du die DACs nutzen?
> Vielleicht gibt es ja eine Umgehungsstrategie.
> Schnelle PWM und RC-Tiefpass?

Gah! Die DAC's sind die einfachste Peripherie der STM32. Die kann jeder 
ohne die Arduino-Library nutzen. Völlig bescheuert da einen 
Hardware-Workaround zu basteln.
1
 // Takte initialisieren
2
RCC->APB1ENR |= RCC_APB1ENR_DACEN;
3
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
4
// Pin auf Analog stellen
5
GPIOA->MODER |= GPIO_MODER_MODER4_1 | GPIO_MODER_MODER4_0;
6

7
// DAC einschalten.
8
DAC1->CR = DAC_CR_EN1;
9
// Wert ausgeben (0-4095)
10
DAC1->DHR12R1 = 42;
Gast #5056086
Lesenswert?

>PS: Der WM8994 Audio Codec
Ja, ausgerechnet der fehlt auch noch im Arduino-Framework.
Ich habe mir schon den Treiber von hier
http://mikrocontroller.bplaced.net/wordpress/?page_id=5329
( stefanus? )
angeschaut. Der ist im Vergleich zu anderen übersichtlich programmiert.

Eigentlich muss man "nur" den Codec konfigurieren, I2S wird vom 
STM32GENERIC-Arduino Framework schon voll unterstützt ( incl. DMA ).

Aber ich dachte dann: zwei Tage ist man wahrscheinlich trotzdem 
unterwegs, bis das geht.
Gast #5056095
Lesenswert?

CM schrieb:
> Der ist im Vergleich zu anderen übersichtlich programmiert.

Oha, ich kenn nur noch den von ST selbst.

CM schrieb:
> Eigentlich muss man "nur" den Codec konfigurieren
Tja, das "nur" ist gut. Das Teil hat ziemlich viele 
Konfigurationsregister, und aus der Doku wird nicht immer so ganz klar 
was man wofür braucht... Die Initialisierungs Sequenz funktioniert 
überhaupt nicht, die kann man nur aus dem ST Beispiel klauen.

CM schrieb:
> Aber ich dachte dann: zwei Tage ist man wahrscheinlich trotzdem
> unterwegs, bis das geht.
Ich hab 4 gebraucht ;-)

I2S auf dem STM32 ist dagegen flugs eingerichtet auch ohne Library. Nur 
das benötigte Frame Format ist nicht so ganz klar...
Gast #5091946
Lesenswert?

Markus, eine Frage:
bei Textausgaben fiel mir negativ auf dass die in den Beispielen das 
gesamte Display mit jeder Aktualisierung zunächst mit 
"tft.fillScreen(LTDC_BLACK)" neu schreiben, also erst komplett in 
Hintergrundfarbe und dann die gewünschten Zeichen.
Beim Voltmeter fällt das besonders auf....das Zucken stört schon 
irgendwie.
Kommentiert man das aus, entsteht mit jeder neuen Messung ein Pixelbrei 
wenn sich der A/D Wert ändert.

das kenne ich von anderen Zeichenausgaben so nicht.
Dort wird mit jedem neuen Zeichen an der Stelle wo es erscheinen soll 
ein ungenutztes Pixel automatisch in Hintergrundfarbe ausgegeben.

Eine Eigenart der Adafruit GFX Bibliothek???

Kann man das abändern?

EDIT:
ich lese mich gerade ins Arduino Adafruit GFX Library User Guide ein....
ich denke ich sehe schon was man da wie ändern muss.

http://henrysbench.capnfatz.com/henrys-bench/arduino-adafruit-gfx-library-user-guide/
Gast #5092023
Lesenswert?

>Eine Eigenart der Adafruit GFX Bibliothek???

Ja, das macht die Bibliothek. Mich hat das zwar auch immer schon 
gestört, ist aber wahrscheinlich eine Philosophiefrage: schreibt man den 
Text, werden einfach nur die neuen Pixel gesetzt, damit entsteht dann 
ein Zeichenmatsch, wenn da die alten Zeichen noch stehen.
Es hat aber auch einen Vorteil: man kann z.B. zuerst ein Rechteck 
beliebiger Größe und Farbe als Hintergrund zeichnen und dann die Schrift 
darüber legen.
Für das Update von Zahlen ist das dann immer lästig, weil es zum 
"flickern" führen kann.
Gast #5441643
Lesenswert?

>Dr. Sommer schrieb:

>Ja, wie gesagt...
>> Ich hab 4 [Tage] gebraucht ;-)

Wenn Du Deinen Treiber ins Arduino-Framework einbindest, hat das den 
Vorteil, dass viele Leute sehr einfach Sound mit dem Board erzeugen 
können.

Wenn Du den Treiber closed Source hältst, hat das für Dich den Vorteil, 
dass nur Du Sound auf dem Board erzeugen kannst.
Gast #5441990
Lesenswert?

Ja, bei mir auch. Das STM32F746 Disco ist ein sehr schönes Board. Es hat 
ein großes Display und allerlei nützlich Peripherie. Ich habe vor einer 
Weil angefangen, ein wenig damit zu spielen.
Von Zeit zu Zeit hohle ich es wieder mal aus dem Schrank und schaue, was 
es neues an Treibern gibt. Töne kann man damit auch erzeugen, wenn man 
direkt einen I2S-Wandler anschließt. Allerdings ist das natürlich ein 
wenig schade, weil auf dem Board ja schon ein Codec ist. Aber ein paar 
Tage in die Adaption eines Treibers für meine Spielereien zu stecken, 
ist mir dann doch auch zu viel.
Gast #5443104
Lesenswert?

Mal sehen, was wir alles für den Codec brauchen.

1. das Datenblatt:
http://www.st.com/content/ccc/resource/technical/document/user_manual/f0/14/c1/b9/95/6d/40/4d/DM00190424.pdf/files/DM00190424.pdf/jcr:content/translations/en.DM00190424.pdf

Enorm, wie aufwendig der Codec ist ...

2. Die Peripheriebelegung auf dem STM32F7 Disco
1
#define LCD_I2C_ADDRESS                  ((uint16_t)0x70)
2
#define CAMERA_I2C_ADDRESS               ((uint16_t)0x60)
3
#define AUDIO_I2C_ADDRESS                ((uint16_t)0x34)
4
#define EEPROM_I2C_ADDRESS_A01           ((uint16_t)0xA0)
5
#define EEPROM_I2C_ADDRESS_A02           ((uint16_t)0xA6)
6
#define TS_I2C_ADDRESS ((uint16_t)0x70)

3. Den Treiber mit Beispielconfigurationen der Codecregister:
https://github.com/jaz303/stm32f746g-discovery-gcc/blob/master/lib/Drivers/BSP/Components/wm8994/wm8994.c
Angehängte Dateien:
Gast #5443116
Lesenswert?

Markus schrieb:
> Enorm, wie aufwendig der Codec ist ...

Der ist für Smartphones und so... Frage Nr. 1 ist welche Art von Betrieb 
man überhaupt nutzen will. Nur DAC+ADC via I2S? Analoges und/oder 
digitales Durchleiten von Eingang zu Ausgang? DSP-Funktionen, 
Verstärkung, Anti-Pop-Funktion? Welche Kanal-Zuordnung der Ein-und 
Ausgänge (analoge vs digitale Mikrofone, Line-In/Out, 
Kopfhörer-Verstärker, Speaker Ausgänge,...)? Je nach Platine und 
Codec<->uC Konstellation hat man andere Möglichkeiten. Man müsste der 
Bibliothek mitteilen welche SAI und I2C Peripherie man nutzen will. Das 
alles über ein API dem Nutzer zur Verfügung zu stellen dürfte ziemlich 
aufwendig werden, und dann auch noch kompliziert zu nutzen, und damit 
nicht sehr Arduino-konform. Für das Setzen der Register haben die ja 
sogar eine eigene GUI-Software, die ist leider nur begrenzt hilfreich. 
Man muss erstmal festlegen was der Nutzer damit tun können soll...
Gast #5443140
Lesenswert?

> Das alles über ein API dem Nutzer zur Verfügung zu stellen dürfte ziemlich
> aufwendig werden, und dann auch noch kompliziert zu nutzen, und damit
> nicht sehr Arduino-konform.

Da sehe ich ein wenig das generelle Problem der heutigen Technik: zu 
viele Möglichkeiten anstatt sich auf wenige zu konzentrieren. Das führt 
in der Software immer zur Komplexität, Aufwand, falschen Einstellungen 
und Fehlersuche. Ich beobachte das seit Jahren und angefangen hat es mit 
den Videorekordern, die keiner mehr einstellen konnte, weil durch das 
Aufkommen der Mikroprozessoren die Menütiefe zu groß war und da 
Marketing der Meinung, dass man dem Kunden doch noch dieses, jenes und 
das bieten müsse, weil er sonst das Produkt nicht kauft.

Ich denke, es gibt langsam einen Trend dagegen ... Retro .. zurück zu 
Einfachheit und dem was man braucht. Und Arduino scheint mir ein Teil 
dieses Trends zu sein.

Deshalb fange ich meisten mit der Frage an, was brauche ich eigentlich? 
Und in dem Fall wird es wohl auch das sein, was die meisten 
Arduino-Nutzer erst mal brauchen: Die Möglichkeit, am Line-Out-Ausgang 
einen Ton zu erzeugen.
Selbst die Lautstärkeeinstellung ist nachrangig, da man diese einfach 
über eine Skalierung der Werte, die man an die I2S-Schnittstelle 
schreibt.

Die I2S-Schnittstelle des STM32Generic Frameworks funktioniert, ebenso 
die I2C-Schnittstelle. Was man also tun muss, ist die Einstellungen für 
das Durchrouten der I2S-Schnittstelle auf den Lineout-Ausgang via 
I2C-Schnittstelle in den Codec zu schreiben.
Gast #5443163
Lesenswert?

Markus schrieb:
> Da sehe ich ein wenig das generelle Problem der heutigen Technik: zu
> viele Möglichkeiten anstatt sich auf wenige zu konzentrieren

Dafür erlaubt wo ein Chip halt die Verwendung in allen möglichen Geräten 
und Konstellationen, was ihn billiger macht als zig verschiedene Spezial 
IC's. Ein selbstfahrendes Auto ist auch nicht mit minimaler Technik 
machbar...

Markus schrieb:
> angefangen hat es mit den Videorekordern
Das war nur schlechtes UX-Design. Wenn man das gut macht, kann man auch 
komplexe Produkte bedienbar machen. Apple z.B. hat das gut raus. Nur auf 
Entwickler wird noch nicht überall so viel Rücksicht genommen...

Markus schrieb:
> Und Arduino scheint mir ein Teil dieses Trends zu sein.
Aber Arduino versteckt die Komplexität lediglich. Es geht hier auch der 
Trend weg vom einfachen AVR zum komplexen ARM.

Markus schrieb:
> Die Möglichkeit, am Line-Out-Ausgang einen Ton zu erzeugen.

Das F7-Discovery hat aber gar keinen Line-Out; das ist ein 
Kopfhörer-Ausgang. Man muss also den eingebauten Class-D-Verstärker 
nutzen.
Gast #5443318
Lesenswert?

Dr.Sommer schrieb:
>Das F7-Discovery hat aber gar keinen Line-Out; das ist ein
>Kopfhörer-Ausgang. Man muss also den eingebauten Class-D-Verstärker
>nutzen.

Da das Board so schön eingefärbte Klinkebuchsen wie ein PC hat, bin ich 
einfach davon ausgegangen, dass man dort ganz normal seine aktiven 
Audioboxen ( ak "Brüllwürfel ) anschließen kann.
Im Manual für das STM32F7 Disco Board findet sich folgendes:

>>8.8 Audio An audio codec WM8994ECS/R from CIRRUS with 4 DACs and 2 ADCs is
>>connected to the SAI interface of the STM32F746NGH6 microcontroller.

>>• The analog line input is connected to the ADC of WM8994ECS/R through the blue 
audio jack CN11.

>>• The analog line output is connected to the DAC of WM8994ECS/R via the*green 
audio jack* CN10.

>>• Two external speakers can be connected to WM8994ECS/R via JP3 for rightspeaker 
and JP4 for left speaker

Dr. Sommer schrieb:
>Markus schrieb:
>> Und Arduino scheint mir ein Teil dieses Trends zu sein.
>Aber Arduino versteckt die Komplexität lediglich. Es geht hier auch der
>Trend weg vom einfachen AVR zum komplexen ARM.

Um auf mit Matlab auf dem PC ein weises Rauschen hörbar zu machen, 
verwende  ich folgende Zeilen:
1
sig=randn(1,10000);
2
sound(sig)

Wie man die Register des jeweiligen Soundchips im PC einstellen muss, 
hat mich dabei noch nie interessiert. Deshalb bin ich der Meinung, dass 
ein Arduinotreiber das leisten soll.

>Markus schrieb:
>> angefangen hat es mit den Videorekordern
>Das war nur schlechtes UX-Design. Wenn man das gut macht, kann man auch
>komplexe Produkte bedienbar machen. Apple z.B. hat das gut raus. Nur auf
>Entwickler wird noch nicht überall so viel Rücksicht genommen...

Das liegt daran, das Apple per se den Fokus bei der Entwicklung auf die 
Benutzbarkeit legt. Es wird immer unter der Fragestellung entwickelt 
"Ist das für den Käufer benutzbar? Ist das einfach? Ist das angenehm zu 
bedienen?"

Mir scheint, das die meisten Microcontroller HALs weit weg von dieser 
Philosophie entwickelt wird, den deren Umsetzung kostet Zeit.
Gast #5443322
Lesenswert?

Markus schrieb:
> Im Manual für das STM32F7 Disco Board findet sich folgendes:

ST weiß offenbar selbst nicht was sie da gebaut haben. Auf S. 32 im 
Schaltplan sieht man eindeutig, dass die Buchse am "HPOUT" hängt 
(HP=HeadPhone) und der Line Out Ausgang vom IC offen ist.

Markus schrieb:
> Deshalb bin ich der Meinung, dass ein Arduinotreiber das leisten soll.

Es gibt einen Linux-Treiber für den Codec direkt vom Hersteller, der 
leistet das. Wenn man natürlich den Linux-Mainstream ignoriert...

Markus schrieb:
> Mir scheint, das die meisten Microcontroller HALs weit weg von dieser
> Philosophie entwickelt wird, den deren Umsetzung kostet Zeit.

Ja. Die meisten MCU-Hersteller sehen sich selbst noch zu stark als 
Halbleiter-Fertiger. Die Software ist für die nur Beiwerk. Wenn man eine 
Diode verkauft reicht es ein paar Zahlen dazu anzugeben. Das würden die 
bei MCU's auch gerne so machen. Dazu kommt dass die ganze 
MCU-Entwicklung sich um C dreht (Arduino ist C++!) womit man keine 
besonders schönen APIs machen kann.
Außerdem haben die Hersteller kein Interesse an echten HAL's, welche die 
tollen Features der Hardware wegabstrahieren. Solche HAL's gibt es in 
Form von z.B. ChibiOS. Das was ST als HAL bezeichnet ist keine HAL 
sondern nur ein Zugriffs-Layer. Da dieser alle Features der Hardware 
abbilden soll wird er relativ kompliziert.
Gast #5444236
Lesenswert?

>Markus schrieb:
>> Im Manual für das STM32F7 Disco Board findet sich folgendes:

>ST weiß offenbar selbst nicht was sie da gebaut haben. Auf S. 32 im
>Schaltplan sieht man eindeutig, dass die Buchse am "HPOUT" hängt
>(HP=HeadPhone) und der Line Out Ausgang vom IC offen ist.

Vielleicht macht das sogar Sinn, wenn man den Headphone Anschluss auch 
als LineOut verwenden kann. Der Headphone Anschluss hat einen Verstärker 
für die niederohmigen Orhörer. Leider finde ich im Datenblatt keine 
Spannungspegel, aber ich nehme mal an, man kann es ohne größere Probleme 
als LineOut verwenden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren