Constraint Programming für Mikrocontroller-Peripherie

(Firma: dm2sh) #7705747
Lesenswert?

Hallo,

nervt es euch eigentlich auch, wenn man einen neuen Controller einsetzen will oder muss und dann alles anders ist?

Schon beim Messen einer Spannung beginnt das Trial-and-Error. Es gibt zwar eine Bibliothek, die kann aber fast nichts. Sie kann nur ssynchrones Lesen der ADC. Der Befehl startet die Wandlung und hält den gesamten Programmablauf bis zur Fertigstellung an. Asynchrone Programmierung mit callbacks? Fehlanzeige!

Also muss man wohl doch in die 2000 des Datenblatte schauen. Nun wird es umständlich. Man muss in vielen Registern irgendwas einstellen. Vorteiler für den internen ADC-Takt, Referenzspannungsquelle, Triggerquelle für Sample-and-Hold.

Man glaubt zwar, man hat alles richtig eingestellt, doch es passiert nichts...

Nach Stunden oder Tagen an Lesen und Suchen, bemerkt man noch: Da muss der ADC in einem Power-Management-Subsystem aktiviert werden. Das gleiche gilt für die Referenzspannungsquelle. Dann ist da noch die Stromversorgung für den ADC, die neben extern auch intern generiert werden kann, allerdings muss eine Variante ausgewählt und diese aktiviert werden. Dann hat noch in einem weiteren Register die Pinkonfiguration gefehlt. Nein, die Auswahl des Pins in der ADC-Konfiguration reicht nicht. Er muss noch explizit als analog-in konfiguriert werden und das analog-subsystem für den Port aktiviert werden.

Eigentlich müsste es jetzt gehen. OK, doch nicht. Es ist doch ganz logisch, dass das nicht funktionieren kann, denn man kann doch nicht einfach so in irgendwelche Register herumschreiben, das ist viel zu unsichtbar. Diese SFRs dürfen ja nicht von einem Anwendungsprogramm geschrieben werden, sondern nur von einem Treiber, der wieder anderes nicht darf. Man muss also nur noch das Prozesskontextregister richtig setzen, welches allerdings nur wirksam wird, wenn ein spezieller Unterprogrammaufruf erfolgt, und zwar zu einem Programmsegment, welches vorher gewhitelistet wurde. Und nein, dieses Programm darf zwar den ADC konfigurieren, aber keine Werte auslesen. Das muss in einem anderen Programmkontext erfolgen...

Ich fände es schön, wenn man diese Peripherie als formales Modell beschreiben würde. Man könnte dann die Entwicklungsumgebung fragen, warum etwas so ist bzw. was noch geändert werden müsste, dass ein gewünschter Zustand eintritt. Der Constraint-Solver würde dann zeigen, welche Einstellungen das Ergebnis beeinflussen oder einen minimalen Programmcode generieren, der die erforderlichen Einstellungen vornimmt.

Was gibt es in dem Bereich bereits? Würdet ihr das nutzen? Würde das überhaupt eine relevante Nutzerzahl erreichen?

#7705759
Lesenswert?

Ich fände es schön, wenn man diese Peripherie als formales Modell beschreiben würde.

Dazu müsste es eine allgemein verstandene Sprache zur Modellierung geben.

Stefan H. schrieb:

Man könnte dann die Entwicklungsumgebung fragen, warum etwas so ist bzw. was noch geändert werden müsste, dass ein gewünschter Zustand eintritt.

Klingt nach KI-Bullshit, auch wenn Du das als "Constraint-Solver" bezeichnest.

Vielleicht ist Töpfern oder Makramee doch besser?

#7705772
Lesenswert?

Ich kann mir ja auch nicht einen Haufen Baumaterial auf den Hof legen und dann mein Werkzeug fragen was fehlt damit daraus ein Haus wird..

Nein, dafür Brauch ich dann eben Leute die wissen wie es geht und das können haben das in die Tat umzusetzen.

Und die haben das wissen auch nicht seit geburt, sondern im Laufe ihres Lebens mühsam erworben. Dafür haben sie dann jetzt etwas womit sie ihren Lebensunterhalt bestreiten können.

Persönliche Seite #7705778
Lesenswert?

Stefan H. schrieb:

Ich fände es schön, wenn man diese Peripherie als formales Modell beschreiben würde.

Wer soll das machen? Der Controller-Hersteller, der nichtmal dazu in der Lage ist eine vernünftige Bibliothek in C zu implementieren?

Stefan H. schrieb:

Es gibt zwar eine Bibliothek, die kann aber fast nichts.

Ich denke, viel sinnvoller wäre es, wenn die Industrie sich irgendwann mal auf einheitliche Standards zur Integration und API von solchen Bibliotheken einigen würde. Momentan weiß es halt jeder Hersteller besser der Rest der Welt. Dann wäre ein derart komplexer und exotischer Ansatz, der dabei hilft dass jeder seinen eigenen Treiber einfach implementieren kann, hinfällig.

Zephyr wäre vielleicht ein Anfang.

Persönliche Seite #7705781
Lesenswert?

Stefan H. schrieb:

und dann alles anders ist?

Genau dadurch unterscheiden sich die Hersteller der MCUs, die man so auf dem Markt bekommt. Jeder funktioniert etwas anders, und jeder hat seine speziellen Eigenheiten für besondere Anwendungsfälle. Daher muss man sich die MCU ja auch passend aussuchen.

Wären alle gleich, wären alle austauschbar. Und das wollen die Hersteller natürlich auch nicht :-)

Im Bereich Arm Cortex-M gibt es die CMSIS(-driver). Aber auch hier wird nur ein Basissatz an Funktionen über HAL Librarties abgedeckt, um Funktionen wie FS, USB, ETH etwas generischer ansaften zu können. Alles wird man nie generalisieren können, denn genau für verschiedene Anwendungsfälle dieser kleinen Käfer gibt es diese Unterschiede.

#7705798
Lesenswert?

nervt es euch eigentlich auch, wenn man einen neuen Controller einsetzen will oder muss und dann alles anders ist?

Nein. Eigentlich finde ich sowas sogar intellektuell anregend.

Ich fände es schön, wenn man diese Peripherie als formales Modell beschreiben würde.

DAs ist ja sogar so. Die Hersteller beschreiben ihre Perpherie als Verilog-Source. Aber den hast du ja nicht. Allerdings kannst bei unterschiedlichen Controllern eines Herstellers oftmals dieselbe Peripherie vorfinden.

Ich denke, viel sinnvoller wäre es, wenn die Industrie sich irgendwann mal auf einheitliche Standards zur Integration und API von solchen Bibliotheken einigen würde.

Das geht nicht. Weil jeder komplett unterschiedliche Vorstellungen hat was an seinem Zielsystem besonders zu sein hat. Und nur ein paar kleine Bastelbuden oder Studenten nutzen ueberhaubt von Herstellern bereitgestellten Bibliotheken. Man kuckt da vielleicht mal rein, aber im eigentlichen Projekt wirst du das nicht wiederfinden.

Vor allem die Entschuldigung fuer Bibliotheken ist ja, wie man sehr schoen an deinem Posting merkt, die Faulheit der Menschheit. Es soll schnell und einfach gehen. Aber wenn da mal irgendwo ein Bug drin ist? Findest du den dann noch? Wenn er nur auftritt wenn drei Bibliotheken gerade zusammen in deinen Projekt sind? Nur bei einem speziellen Typ eines Controllers weil da ein Flag irgendwo falsch ist? Da ist die Kacke dann schnell am dampfen. :-D

Vanye

Persönliche Seite #7705821
Lesenswert?

Vanye R. schrieb:

Das geht nicht. Weil jeder komplett unterschiedliche Vorstellungen hat was an seinem Zielsystem besonders zu sein hat.

Naja, viele Aspekte sind übertragbar. Gerade auch weil Peripherieblöcke zwischen Herstellern oft gleich sind (weil sie z.B. von Synopsys sind). In Sonderfällen kann man immer noch manuell eingreifen.

Vanye R. schrieb:

Und nur ein paar kleine Bastelbuden oder Studenten nutzen ueberhaubt von Herstellern bereitgestellten Bibliotheken.

Kannst du ein paar professionelle Firmen nennen, welche für komplexe Embedded-Software keine Bibliotheken nutzen? Also Peripherie-Ansteuerung, Protokollstacks (USB, TCP/IP, 4G, WiFi, CANopen, ...), RTOS für die Anwendung spezifisch implementieren?

Allein schon sowas banales wie das Timing vom I²C der modernen STM32 zu konfigurieren ist total lästig. Hab gar keine Lust da Stunden drauf zu verschwenden, wenn die Bibliothek das einfach so macht. Und so exotisch ist die Ansteuerung eines Temperatursensors per I²C jetzt auch nicht, dass ich da manuell was "optimieren" müsste.

Ach warte, das ist die Art von Code die man sich heutzutage von KI generieren lässt, dann braucht man auch keine Bibliothek mehr!

Persönliche Seite #7705854
Lesenswert?

Zumindest STM liefert doch genau dafür die HAL. Die ist zwar nicht schnell und ziemlich bloated, aber genau deswegen deckt sie schon einige Szenarien ab und geht auch meistens und zumindest einen Referenzcode hat man damit schon mal.

Aber ja, den Verilog/VHDL Code des Herstellers hätte ich trotzdem gerne und dann könnte damit eine KI auch mehr tun als nur das Datenblatt interpretieren.

Ein Beschleuniger ist ChatGPT da jetzt schon, aber eben keine Universallösung:

Von 2023:

How do I program timer1 of the STM32L452 for generating a PWM signal on one pin without using the library provided by ST?

1
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
2
// Assuming the PWM pin is GPIOx_PINx
3
GPIOx->MODER &= ~(GPIO_MODER_MODEy_Msk << (2 * PINy));
4
GPIOx->MODER |= (GPIO_MODER_MODEy_1 << (2 * PINy)); // Set pin to alternate function mode
5
GPIOx->AFR[PINy >> 3] &= ~(0xFU << (4 * (PINy & 0x07)));
6
GPIOx->AFR[PINy >> 3] |= (GPIO_AFx_TIM1 << (4 * (PINy & 0x07))); // Set alternate function for the pin
7

8
TIM1->CR1 &= ~TIM_CR1_CEN; // Disable the timer
9

10
// Set the prescaler value
11
TIM1->PSC = (prescaler - 1); // Adjust prescaler value as needed
12

13
// Configure the timer mode
14
TIM1->CR1 = (0 << TIM_CR1_CKD_Pos) | TIM_CR1_ARPE; // Set clock division to 1 and enable auto-reload preload
15
TIM1->CR2 = 0; // Default value
16

17
// Set the PWM mode
18
TIM1->CCMR1 = (6 << TIM_CCMR1_OC1M_Pos); // PWM mode 1 on channel 1
19
TIM1->CCMR1 |= TIM_CCMR1_OC1PE; // Enable preload register for channel 1
20
TIM1->CCER |= TIM_CCER_CC1E; // Enable output for channel 1
21

22
TIM1->ARR = (period - 1); // Adjust period value as needed
23
TIM1->CCR1 = (dutyCycle * period) / 100; // Set the initial duty cycle (percentage)
24

25
TIM1->EGR = TIM_EGR_UG; // Generate an update event to load the new settings
26
TIM1->CR1 |= TIM_CR1_CEN; // Enable the timer

Funktionierte leider nicht. Es fehlte eine Zeile, die ich nach Lesen des Datenblatts gefunden hatte:

1
TIM1->BDTR |= TIM_BDTR_MOE;

Aber immherhin, hätte ich alles manuell recherchiert, hätte ich länger gebraucht.

#7705873
Lesenswert?

Stefan H. schrieb:

nervt es euch eigentlich auch, wenn man einen neuen Controller einsetzen will oder muss und dann alles anders ist?

Warum musst du einen neuen Controller einsetzen, wenn sie aus deiner Sicht am liebsten alle gleich sein sollen? Du Unterschiede entstehen daraus, dass sie unterschiedlich sind und jeder Hersteller seine eigene Vorgehensweise hat, um dies umzusetzen.

(Firma: dm2sh) #7705897
Lesenswert?

Rainer W. schrieb:

Warum musst du einen neuen Controller einsetzen, wenn sie aus deiner Sicht am liebsten alle gleich sein sollen?

Dass sie gleich sein sollen, habe ich nie behauptet!

Vielleicht gibt es auch andere Gründe einen anderen Controller zu nehmen, z. B. Zertifizierungen, Verfügbarkeit, Gehäuse, Portanzahl, Preis, rechtliche Gründe, Long-Term-Support.

Viele Argumente klingen hier so, als wäre es Hobbybastelei und die Personen würden damit beruflich gar nicht in Kontakt kommen.

#7706298
Lesenswert?

Stefan H. schrieb:

Schon beim Messen einer Spannung beginnt das Trial-and-Error.

Kommt ganz drauf an, ob der µC Unmengen an Bells & Whistles haben muß.

Z.B. beim ATmega1284 umfaßt die Beschreibung der 6 ADC-Register 5 Seiten und damit ist alles komplett. Nach vielleicht 10min sollte der ADC laufen. Trial and Error müßte unnötig sein, es sei denn, das Datenblatt ist Rotte.

(Firma: Starfleet) #7706315
Lesenswert?

Stefan H. schrieb:

Also muss man wohl doch in die 2000 des Datenblatte schauen. Nun wird es umständlich. Man muss in vielen Registern irgendwas einstellen. Vorteiler für den internen ADC-Takt, Referenzspannungsquelle, Triggerquelle für Sample-and-Hold.

Ja, wer das Datenblatt (-lesen) nicht ehrt, ist die Elektronik nicht wert!

Man glaubt zwar, man hat alles richtig eingestellt, doch es passiert nichts...

Ja mit Halbwissen und Rumgestümpere ohne Plan vom Hardware-Debugging kommt man in modernen Zeiten nicht weit. Ok, man kann sich Idiotengerecht aufbereitetes Spielzeugs wie einem Experimentierset für die Schule bspw. https://calliope.cc/ zuwenden.

Was gibt es in dem Bereich bereits?

Studiumsangebote im Bereiche Technische Informatik, Embedded, oder gleich Informationstechnik-Elektrotechnik. Oder wie Oma sagte "Ohne Fleiß, keinen Preis".

(Firma: Starfleet) #7706322
Lesenswert?

Niklas G. schrieb:

Bradward B. schrieb:

Ja, wer das Datenblatt (-lesen) nicht ehrt, ist die Elektronik nicht wert!

Was, wenn das Datenblatt nur minimal ist und man die Bibliothek des Herstellers nutzen muss um es zum laufen zu bringen?

Dann hat man sich in die Abhängigkeit eine Herstellers mit propietärer Schnittstelle begeben. Wahrscheinlich wird die Ersparnis beim Preis dieses speziellen Controllers durch die Supportkosten mehrfach aufgefressen.

Natürlich kann man diesem Hersteller gehörig auf den Sack gehen, bis der das komplette Datenblatt rausrückt resp. seine Dokumentationspflichten erfüllt. Oder man wechselt zu einen Controller, bei dem die nötigen Informationen ohne viel Sperenzien verfügbar sind.

Persönliche Seite #7706324
Lesenswert?

Bradward B. schrieb:

Oder man wechselt zu einen Controller, bei dem die nötigen Informationen ohne viel Sperenzien verfügbar sind.

Was wenn es keinen solchen gibt? z.B. WiFi-Peripherie oder 3D-Beschleuniger sind m.W. nie dokumentiert.

Bradward B. schrieb:

Dokumentationspflichten

Aus welchem Gesetz kommt diese Pflicht?

#7706326
Lesenswert?

Niklas G. schrieb:

Bradward B. schrieb:

Ja, wer das Datenblatt (-lesen) nicht ehrt, ist die Elektronik nicht wert!

Was, wenn das Datenblatt nur minimal ist und man die Bibliothek des Herstellers nutzen muss um es zum laufen zu bringen?

Dann sollte die Wahl genau dieses Herstellers auf irgendwelchen anderen Ebenen dermassen grosse Vorteile haben, dass das diesen Malus ueberkompensiert. Sonst ist die Wahl dieses Herstellers einfach in die Hose gegangen.

Gruss WK

Persönliche Seite #7706329
Lesenswert?

Dergute W. schrieb:

Dann sollte die Wahl genau dieses Herstellers auf irgendwelchen anderen Ebenen dermassen grosse Vorteile haben, dass das diesen Malus ueberkompensiert

Ich finde, die Bibliothek des Herstellers zu nutzen, ist kein übergroßer Malus.

Axel S. schrieb:

Ich bin Kunde. Also bin ich König

Hast du das mal einem Hersteller gesagt? Was hat er geantwortet?

(Firma: Starfleet) #7706334
Lesenswert?

Bradward B. schrieb:

Dokumentationspflichten

Aus welchem Gesetz kommt diese Pflicht?

Aus deinem Arbeitsvertrag o.ä., resp. dem Werkvertrag.

Das ein produkt nur so gut ist wie deren Dokumentation muss man doch hier noch nicht erneut ausführlich darlegen. OK, bei Kunstwerken und Speilzeug für Kleinstkinder mag das anders sein, aber ein gerade ein komplexes Hi-Tech Produkt ist eine Dokumentation unbenutzbar. Da hilft auch ein Chat-GPT außer heuchelung von Emapathie und (tröstender) Phrasen nicht weiter.

(Firma: Starfleet) #7706337
Lesenswert?

Ich finde, die Bibliothek des Herstellers zu nutzen, ist kein übergroßer Malus.

Die Nutzung erstmal nicht, komplette Unkenntniss über das "was im Hintergrund der Bibliothek passiert", schon.

Axel S. schrieb:

Ich bin Kunde. Also bin ich König

Hast du das mal einem Hersteller gesagt? Was hat er geantwortet?

Vielleicht "Ein König zahlt auch königlich für das, was seine königliche Hoflieferanten ankarren'". ;-)

#7706340
Lesenswert?

Niklas G. schrieb:

Ich finde, die Bibliothek des Herstellers zu nutzen, ist kein übergroßer Malus.

Doch ist es. Kleines Beispiel: In vielen SoCs werkeln irgendwelche Cryptobeschleuniger (also Hardware, die AES, 3DES, SHA, ... deutlich schneller berechnen kann als entsprechende Software). Wenn dann der Hersteller dieses SoCs nix ueber die Hardware rauslaesst, sondern dafuer eine speziell angepasste Openssl-Library mitliefert (ohne src), dann fangen die Probleme genau dann an, wenn in genau dieser Version irgendein Bug/Designschwaeche/etc. auftaucht. Denn dann kannst du die olle Lib nicht mehr mit gutem Gewissen verwenden, kannst aber selbst nicht auf eine neuere Version updaten, ohne die HW-Unterstuetzung zu verlieren...

Gruss WK

(Firma: Starfleet) #7706342
Lesenswert?

Niklas G. schrieb:

Bradward B. schrieb:

Aus deinem Arbeitsvertrag o.ä., resp. dem Werkvertrag.

Du lässt Mikrocontroller auf Auftrag fertigen, mit Werkvertrag? Sehr praktisch, aber den meisten Unternehmen dürfte dafür das nötige Kleingeld fehlen.

Eher fehlt es an Hirnschmalz, denn einen Softcore-controller für einen Wald-Wiesen-FPGA bekommt man nicht nur von opencores.org kostenlos hinterher geworfen.

Und auch bei Erbringung von externen Programmierleistungen wie der Erstellung einer Bibliothek spricht man vom Werkvertrag. Ja auch intern kann man von einer "Werksvertrags-ähnlichen" Vereinbarung asugehen, wenn der Abteilungsleiter einen Angestellten auffordert im Rahmen seiner Anstellung eine brauchbare (aka mit Dokumentation) Bibliothek zu erstellen. Es lassen sich genug Gerichtsbeschlüße finden, das die Verweigerung eine Dokumentation zu erstellen zu einer dem BGB nach rechtsmäßigen Kündigung führte.

#7706363
Lesenswert?

Niklas G. schrieb:

Was, wenn das Datenblatt nur minimal ist und man die Bibliothek des Herstellers nutzen muss um es zum laufen zu bringen?

Na ja, dann ist das Teil des realen Lebens. Einen Kompromiss den man machen muss weil man etwas zum Laufen bekommen muss.

Niklas G. schrieb:

Was wenn es keinen solchen gibt? z.B. WiFi-Peripherie oder 3D-Beschleuniger sind m.W. nie dokumentiert.

Auch hier, dass ist dann leider die Realität. Als wirklich, wirklich, wirklich großer Kunde bekommst du vielleicht die Dokumentation, oder du bekommst einen Ansprechpartner vom Support des Herstellers. Ansonsten machst du den Kompromiss.

Natürlich ist es bitter wenn man nicht mal an der Auswahl des IC beteiligt war und es vorgesetzt bekommt. Noch bitterer ist es wenn man an der Auswahl beteiligt ist und dabei den Kompromiss macht.

Wenn dadurch das Produkt scheiße wird oder schlecht wartbar? Das ist dann so. Meine Pflicht ist getan wenn ich auf die Nachteile und möglichen Konsequenzen hingewiesen habe. Manchmal kann man nicht gewinnen sondern nur das kleinere Übel wählen.

#7706364
Lesenswert?

IMO führt kein Weg daran vorbei das Referenzhandbuch zumindest zu überfliegen um einen Überblick zu haben was das Ding denn wirklich kann. Für konkrete Anwendung dann kann man sich immer noch in ein Kapitel vertiefen und dazu auch Beispiele vom Hersteller studieren. Über die Registerstruktur und Dinge wie Taktgenerierung und Verteilung muss man auch zumindest grob informiert sein, auch wenn das alles Clicksi-Buntsi-Tools konfigurieren können und Code generieren. Diese Tools gehen auch in die vorgeschlagene Richtung, warnen z.B. bei manchen Fehlkonfigurationen oder fehlenden Einstellungen.

Als Hobbyist oder "Gelegenheitsentwickler" kann man es sich auch leisten bei einem Hersteller zu bleiben und sich da noch auf handvoll Typen aus 2 oder 3 Linien zu beschränken, sucht sich z.B. bei ST einen aus der Cortex-M0+-Familie, einen M4 und einen M7 aus und bleibt dabei.

Persönliche Seite #7706381
Lesenswert?

Dergute W. schrieb:

Doch ist es. Kleines Beispiel: In vielen SoCs werkeln irgendwelche Cryptobeschleuniger

Schlechtes Beispiel, an Kryptobeschleunigern gibt es welche mit offener Schnittstelle (die STM32 haben sowas teilweise). Aber bei manchen Peripherien gibt es einfach keine dokumentierten Alternativen.

Bradward B. schrieb:

Eher fehlt es an Hirnschmalz, denn einen Softcore-controller für einen Wald-Wiesen-FPGA bekommt man nicht nur von opencores.org kostenlos hinterher geworfen.

Du meinst man soll sich seinen eigenen SoC per FPGA zusammenbauen statt ein fertiges zu nehmen? Da gibt es auch welche mit Unterstützung von LTE, WiFi, LoRa, 3D-Beschleunigung...? Wie funktioniert das mit dem Analogteil? Und das ist dann auch vergleichbar in Sachen mechanischer Größe, Leistungsaufnahme, Preis, ...?

Heißt also dass alle Produkte die einen SoC/Anwendungsprozessor (Smartphones, SBCs, große Industriesteuerungen) oder auch eine SPS (Interna völlig undokumeniert) oder PC nutzen, sind schlecht und sollten durch FPGAs ersetzt werden? Klingt... unrealistisch.

Hannes J. schrieb:

Na ja, dann ist das Teil des realen Lebens. Einen Kompromiss den man machen muss weil man etwas zum Laufen bekommen muss.

Das denke ich auch.

Bradward B. schrieb:

Es lassen sich genug Gerichtsbeschlüße finden, das die Verweigerung eine Dokumentation zu erstellen zu einer dem BGB nach rechtsmäßigen Kündigung führte.

Wenn ich also als Angestellter ein Produkt z.B. mit einem NXP i.MX, ESP32 oder auch einem STM32WL55 entwickle kann ich gefeuert werden weil die Schnittstellen dieser ICs nicht vollständig dokumentiert sind und ich diese Details auch nicht aus der Luft greifen kann? Dafür hätte ich doch gerne mal eine belastbare Quelle, denn demzufolge wäre ein großer Teil der Embedded-Entwickler stark gefährdet.

Bei sehr viel kommerzieller PC/Server-Software und -Hardware (z.B. Windows und die meisten PC-Komponenten) sind Schnittstellen ebenfalls nicht dokumentiert. Die dürfte man als Angestellter also nicht nutzen?

(Firma: Starfleet) #7706406
Lesenswert?

Bradward B. schrieb:

Eher fehlt es an Hirnschmalz, denn einen Softcore-controller für einen Wald-Wiesen-FPGA bekommt man nicht nur von opencores.org kostenlos hinterher geworfen.

Du meinst man soll sich seinen eigenen SoC per FPGA zusammenbauen statt ein fertiges zu nehmen? Da gibt es auch welche mit Unterstützung von LTE, WiFi, LoRa, 3D-Beschleunigung...? Wie funktioniert das mit dem Analogteil? Und das ist dann auch vergleichbar in Sachen mechanischer Größe, Leistungsaufnahme, Preis, ...?

Wenn man es kann, kann man es. Wenn FPGA-Technik hinter dem eigenen Horizont liegt dann kann man es eben nicht und muss sich eben auf das beschränken was man kann. Und wenn man eben nur Zahnbürste oder andere Trivial-tools beherrscht ... praktischerweise braucht man für den Einstieg in Makramee keine Werkzeuge, nur die Fähigkeiten Bindfäden zu vertüdeln.

Heißt also dass alle Produkte die einen SoC/Anwendungsprozessor (Smartphones, SBCs, große Industriesteuerungen) oder auch eine SPS (Interna völlig undokumeniert) oder PC nutzen, sind schlecht und sollten durch FPGAs ersetzt werden? Klingt... unrealistisch.

Bei sehr viel kommerzieller PC/Server-Software und -Hardware (z.B. Windows und die meisten PC-Komponenten) sind Schnittstellen ebenfalls nicht dokumentiert. Die dürfte man als Angestellter also nicht nutzen?

Naja solange Missverständniss erzeugen Dein fester Wille ist, wird Dich keiner davon abbringen können...

IMHO hat man immer die Wahl die nötige Dokumentation ggf. unter Abgabe eines NDA zu erhalten oder eben das undokumentierte Produkt nicht einzusetzen und sich für eins zu entscheiden was den eigenen Informations- und Wissenshorizont nicht überschreitet.

Entweder man erschafft sich selbst ein Board-Support-Package (BSP), lässt es sich von anderen (extern, HW-Abteilung, Mutti) schreiben oder man wendet sich anderen System oder eben Spielzeug zu.

*https://www.avnet.com/wps/portal/integrated/resources/article/take-a-look-inside-your-first-board-support-package/ *https://www.elektronik-kompendium.de/sites/raspberry-pi/2604131.htm

Persönliche Seite #7706409
Lesenswert?

Bradward B. schrieb:

Wenn man es kann, kann man es. Wenn FPGA-Technik hinter dem eigenen Horizont liegt

Dann zeig doch mal ein Projekt, wo du ein aktuelles SoC mit einem FPGA bei gleicher Performance, Energieverbrauch und Preis ersetzt.

Bradward B. schrieb:

IMHO hat man immer die Wahl die nötige Dokumentation ggf. unter Abgabe eines NDA zu erhalten

Das ist halt schlicht und ergreifend FALSCH. Viele Hersteller geben die Datasheets überhaupt nur raus wenn man Millionenstückzahlen abnimmt. Und das machen nur wenige.

Bradward B. schrieb:

Entweder man erschafft sich selbst ein Board-Support-Package (BSP), lässt es sich von anderen (extern, HW-Abteilung, Mutti) schreiben

Ich kann mein Geld auch wunderbar damit verdienen, dass ich ein fertiges SoC nutze. Hat bisher niemanden gestört (genau wie bei unzähligen anderen Produkten). Dass es vielleicht nicht deinen persönlichen Segen erhält kann mir wurscht sein.

(Firma: Starfleet) #7706847
Lesenswert?

Niklas G. schrieb:

Bradward B. schrieb:

Wenn man es kann, kann man es. Wenn FPGA-Technik hinter dem eigenen Horizont liegt

Dann zeig doch mal ein Projekt, wo du ein aktuelles SoC mit einem FPGA bei gleicher Performance, Energieverbrauch und Preis ersetzt.

Um den Preis etc. geht es hier nicht, es geht hier über die angebliche Nichtverfügbarkeit von Datenblättern und die daraus abgeleitete Notwendigkeit den selbstgefälligen Herren Embedded-Softwerkern Rundum-Sorglos "modelle" resp. BSP mitzuliefern. Tut hier keiner mehr das für das er bezahlt wird wie Beitrag "Re: Constraint Programming für Mikrocontroller-Peripherie" ?!?

Bradward B. schrieb:

IMHO hat man immer die Wahl die nötige Dokumentation ggf. unter Abgabe eines NDA zu erhalten oder ...

Das ist halt schlicht und ergreifend FALSCH.

Nö, das übersteigt nur Deinen Erfahrungshorizont. oder das was Du von diesem bekannt machen willst.

Viele Hersteller geben die Datasheets überhaupt nur raus wenn man Millionenstückzahlen abnimmt. Und das machen nur wenige.

Du lebst auf einem anderen Planeten, auch die Firmen mit kleinen Stückzahlen (Raumfahrt, Medizintechnik) für die ich in den letzten Jahrzehnten tätig war, hatten keine Probleme nur die IC's einzusetzen für die es Datenblätter gibt. Oft kann man die Datenblätter gleich beim Distri mitrunter laden, oder man wendet sich an den FAE, dann ist es meist ein NDA o.ä. das es vorher zu unterschreiben gilt.

Persönliche Seite #7706861
Lesenswert?

Bradward B. schrieb:

Um den Preis etc. geht es hier nicht

Vielen Kunden und Auftraggebern schon. Wenn die sehen dass die FPGA-Lösung teurer ist sagen die "nö".

Bradward B. schrieb:

Nö, das übersteigt nur Deinen Erfahrungshorizont. oder das was Du von diesem bekannt machen willst.

Ich weiß konkret von:

  • Ein IC-Hersteller der die Bibliothek (!) erst rausrückt wenn man mindestens 100k p.a. kauft. Die Schnittstellen-Beschreibung dann wahrscheinlich ab 10M p.a. ... Immerhin kommt die Ablehnung sehr prompt und höflich.
  • Ein anderer Hersteller welcher überhaupt nicht auf Anfragen antwortet, wenn die Abnahmemenge zu gering ist (man weiß natürlich nicht ab wann sie hoch genug ist)
  • Ein bekannter Großkonzern welcher nicht an Datasheets eines IC kommt, weil sie teure hochwertige Produkte haben und einfach nicht auf die Stückzahlen kommen

Das NDA ist den Herstellern wurst. Wenn die zu wenig Gewinn machen mit ein paar Mickrigen Tausend Stück p.a., lohnt sich der Support-Aufwand einfach nicht. Die Fragen daher immer sofort nach der Abnahmemenge, die ist in der Branche das A und O. NDAs sind egal bzw. sowieso selbstverständlich.

Bradward B. schrieb:

Raumfahrt, Medizintechnik

Das herrschen ganz andere Verhältnisse als in Consumer, Multimedia oder IoT. Dort geben sich die Hersteller EXTREM zugeknöpft.

Bradward B. schrieb:

oder man wendet sich an den FAE, dann ist es meist ein NDA o.ä. das es vorher zu unterschreiben gilt.

Ja schön dass das bei dir geht, aber das ist eben nicht bei allen Herstellern so.

Nenn mir doch z.B. mal einen Hersteller von WiFi-Modulen (gerne mit 5 GHz-Support) bei dem das so geht, wenn man nur 1k p.a. kauft. Das wäre doch von allgemeinem Interesse.

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