blub schrieb in Beitrag "microCore, ein Echtzeitprozessor in VHDL für FPGAs"> -Arduino Formfaktor und Pinout> -FPGA bereits fertig programmiert (schlüsselfertig)> ...> Ich hab mich mal ein bisschen bei MicroSemi umgesehen,> es gibt den M2GL010-TQG144I.> IGLOO2, 84 I/O, 933.888 kbit RAM, 12.084 LUTs im 144-LQFP-Gehäuse
Ich habe mal Synthese und Place&Route von microCore ohne die angedachte
Peripherie gemacht und die Ergebnisse sind ermutigend:
16-bit Daten:
interne 16k Datenspeicher, 8k Programmspeicher, 30% der LUTs, clock 45
MHz.
32-bit Daten:
interne 4k Datenspeicher, 16k Programmspeicher, 40% der LUTs, clock 30
MHz.
Der IGLOO2-FPGA hat:
1. Sehr geringer Stromverbrauch.
2. Flashzellen direkt im Fabric für die Konfiguration, so dass der Chip
sofort nach dem Einschalten betriebsbereit ist.
> -ADC, ca 10 bit, 10kS/s, 4 Kanäle
Besser 12-bit, 10kS/s, 8 Kanäle mit seriellem SPI-Interface.
Zuletzt habe ich den ADC128S102 benutzt. Das ist ein HiRel Teil und
somit unnötig teuer. Ich bitte um Vorschläge.
> -ca 32k RAM/ROM
Da finde ich schon ein SRAM.
Zusätzlich ein I2C E2prom 128kB als Parameter- und Programmspeicher, der
beim Booten in den microCore Programmspeicher kopiert wird.
> -ca 10 I/O auf 3.3V oder 5V
Die "5V Inputtoleranz" werde ich durch Serienwiderstände herstellen :)
Wird noch eine sonstige Pinprotection gebraucht?
> -ca. 2x PWM, 2x SPI, 2x I2C
Da brauche ich mal Daten des Arduino, wie diese Interfaces konfiguriert
werden.
> -(special) 2x EXCEPTION/PAUSE-Eingänge, 2x Interrupt-Ein.
Es ist wohl einfacher, prinzipiell jeden Eingang interruptfähig zu
machen. Da brauche ich auch mal Daten, wie das beim Arduino aussieht und
dann ist halt die Arduinokonfiguration die "Defaultkonfiguration".
Pause würde ich extern nicht anbieten, weil externe Peripherie das
Signal nicht erzeugt. Es darf nämlich nur dann aktiviert werden, wenn
jeweils ein bestimmtes Bauteil memory-mapped gelesen oder geschrieben
wird. Das ist leider trotz Transputer noch immer ein völlig neues
Konzept, das von ASICs nicht unterstützt wird.
> -Spannungsversorgung und Programmierung über USB (FTDI)
Ganz kritisches Thema. Stromversorgung ist natürlich kein Problen, aber
die Konfiguration. Da will der M2GL gerne JTAG-Signale haben. Gibt's da
einen IC, der das macht, und den ich auch noch ohne Klimmzüge ins Libero
integriert bekomme?
Leider ist FTDI fürs UART-Interface unproblematisch aber Scheisse, weil
einzelne Bytes nur mit (ich glaube) 10 ms Verzögerung geschickt werden,
weil "es könnten ja noch mehr Bytes zum Übertragen zusammenkommen". Da
nützt das Erhöhen der Baudrate gar nichts und macht das Debuggen
manchmal etwas langsam. Prolific USB<->UART ist da wesentlich flotter,
aber solche ICs habe ich bisher nicht gefunden, nur fertige Dongles.
> -100baseT Interface
Da suche ich noch nach dem "Industriestandard" 10/100baseT PHY.
Damit wird es UDP geben, auf jeden Fall IPV4. Wie wichtig wäre IPV6?
Oh ja, und dann noch ein paar LEDs, weil man ja beim Debuggen nicht GANZ
blind sein will. Irgendwo rot, gelb, grün in 0604 auf der Platine.
Wie viel Stück musst du davon verkaufen damit der Preis unter 100 €
sinkt?
Als Lernbastelprojekt finde ich das gut, wenn das ein Produkt werden
soll, dann gucke dich vorher um was es schon zu kaufen gibt. Nicht dass
du dann enttäuscht wirst.
Hier habe ich mal die Pinbelegung vom Arduino Uno r3, auf welchen auch
viele ,,Shields" aufsetzten also Funktionserweiterungsboards für
Motorik, Sensorik, Displays, Kommunikation, etc...
Wenn man also eine exakte Kopie hinbekäme wären viele der Shields ohne
weiteres nutzbar. Dazu bräuchte man halt mindestens 3.3 Volt Pegel oder
sogar 5V.
Analogpins sind auch Digitalpins gleichzeitig.
Digitalpins werden eingestellt auf Eingang, Ausgang oder Eingang mit 20k
Pullup.
Der Modus wird durch einen Unterfunktionsaufruf eingestellt
Die Funktionen wie i2c/spi/uart sind an festgelegten Pins verortet und
werden ebenfalls über eine Unterfunktion eingeschaltet mit Angabe von
Modus, Geschwindigkeit(Taktteiler),Polarität, Stopbits, etc..
Hier ist ein Beispielprogramm welches SPI und Interrupts verwendet:
https://circuits4you.com/2019/01/03/arduino-spi-communication-example/
Die Pins sollten schon narrensicher sein, Arduino ist recht
kurzschlusstolerant und kann auch bis 40mA pro Ausgang treiben.
IPv4 wird ja noch gerne benutzt, v6 setzt sich wohl nicht so durch.
FTDI wird von allen Linuxkernels erkannt und es läuft auf fast jedem
Gerät und auch auf Windows/Mac.
Ich schätze das ist der Grund warum das so eine Art Standart inzwischen
ist.
Ich hab gerade gelesen dass der Igloo2 sich selbst neu flashen kann
(,,In Application Programming") also würde das zumindest theoretisch aus
der forth-shell heraus gehen (mit Umweg über das externe spi-flash)
Für den Notfall braucht es noch einen kleinen JTAG-Header, passend zum
Programmierkabel des Herstellers.
Ich kann nur empfehlen, sich ein Beispiel an http://papilio.cc/ zu
nehmen, bevor ein weiteres *me2*-Arduino-Projekt gestartet wird.
Noch ein paar Anmerkungen:
- 5V-Kompatibilität mit Serienwiderständen: Stromsparende FPGAs leben
nicht allzulange, wenn man sie über LVCMOS I/O via Clamp-Dioden mit
Spannung (!) versorgt..
- Apropos: Stromsparend ist spätestens mit einem Ethernet Phy sowieso
nichts mehr (rechne mit min. 30 mA im Betrieb).
- FT2232H ist de-facto Standard für JTAG-Debugging via openOCD
Gustl B. schrieb:> wenn das ein Produkt werden> soll, dann gucke dich vorher um was es schon zu kaufen gibt.
Ich bin für jeden Hinweis auf ein existierendes ähnliches Board dankbar.
Muss ja nicht unbedingt IGLOO2 sein, andere Technologien sind auch ok,
solange
1. Arduine Formfaktor/Pinout
2. das FPGA groß genug (> 7k LUTS, > 20*18kB blockRAM)
3. mit TCP/IP
Arty Z7
Klaus S. schrieb:> 3. mit TCP/IP
Das ist keine Eigenschaft des Boards ausser du erwartest das in
Hardware. Sonst ist das Software.
Blub B. schrieb:> Digitalpins werden eingestellt auf Eingang, Ausgang oder Eingang mit 20k> Pullup.> Der Modus wird durch einen Unterfunktionsaufruf eingestellt
Klingt interessant, wie könnte man das an einem FPGA realisieren? Zur
Laufzeit Pullups zuschalten habe ich da noch nicht gesehen.
Fitzebutze schrieb:> - FT2232H ist de-facto Standard für JTAG-Debugging via openOCD
Nicht nur da, auch die Adapter von Digilent die von Vivado unterstützt
werden verwenden diesen IC.
Klaus S. schrieb:> Leider ist FTDI fürs UART-Interface unproblematisch aber Scheisse, weil> einzelne Bytes nur mit (ich glaube) 10 ms Verzögerung geschickt werden,> weil "es könnten ja noch mehr Bytes zum Übertragen zusammenkommen".
Bist du dir sicher, dass das kein Softwareproblem ist? Wenn ich hier am
PC mit Python einzelne Bytes schicke kann ich auch kürzere Abstände
realisieren.
Aber wenn du wirklich so ein Board baust und das ein Produkt zum
Verkaufen werden soll, dann such dir ein klares Alleinstellungsmerkmal.
Wieso sollte man das Board kaufen wollen? Ich finde da z. B. schnelle
ADCs oder DACs interessant deren Datenrate man in einem uC nicht mehr
verarbeiten kann. Weil sonst gibt es nicht wirklich einen Grund für
einen FPGA wenn am Ende darin ein uC sitzt der alles macht.
Gustl B. schrieb:> Klaus S. schrieb:>> 3. mit TCP/IP
Sorry, ich meinte 10/100baseT und an Basissoftware wird es UDP geben.
Gibt es eigentlich spezifische 10baseT PHYs, die nicht so viel Strom
brauchen?
Bei 10 Mbit könnte man den PHY direkt im FPGA machen. Mit 20 MHz
einsynchronisieren und alles ist gut. Kostet aber leider
Entwicklungszeit.
> Blub B. schrieb:>> Digitalpins werden eingestellt auf Eingang, Ausgang oder Eingang mit 20k>> Pullup.>> Der Modus wird durch einen Unterfunktionsaufruf eingestellt>> Klingt interessant, wie könnte man das an einem FPGA realisieren? Zur> Laufzeit Pullups zuschalten habe ich da noch nicht gesehen.
Man müsste wohl einen zusätzlichen output pin spendieren, der nur die
20k zuschaltet gegen VCC oder Z ist. Als Kompromiss würde ich ein
Steckfeld einbauen, mit dem 20k gegen VCC zugeschaltet werden können.
Weil: Dynamisch dazuschalten - da fällt mir keine Anwendung zu ein.
> Klaus S. schrieb:>> Leider ist FTDI fürs UART-Interface unproblematisch aber Scheisse, weil>> einzelne Bytes nur mit (ich glaube) 10 ms Verzögerung geschickt werden,>> weil "es könnten ja noch mehr Bytes zum Übertragen zusammenkommen".>> Bist du dir sicher, dass das kein Softwareproblem ist? Wenn ich hier am> PC mit Python einzelne Bytes schicke kann ich auch kürzere Abstände> realisieren.
Ich habe die Erfahrung mit FT232RL. Erst mit der microCore
Debugschnittstelle ist mir das aufgefallen, weil da heftigst
gehandshaked wird. Vier Bytes hin, ein ACK/NACK zurück.
> Aber wenn du wirklich so ein Board baust und das ein Produkt zum> Verkaufen werden soll, dann such dir ein klares Alleinstellungsmerkmal.> Wieso sollte man das Board kaufen wollen? Ich finde da z. B. schnelle> ADCs oder DACs interessant deren Datenrate man in einem uC nicht mehr> verarbeiten kann. Weil sonst gibt es nicht wirklich einen Grund für> einen FPGA wenn am Ende darin ein uC sitzt der alles macht.
Diese "schnellen" Teile sitzen dann auf einem Daughterboard.
Die Idee des Boards ist es, der Makercommunity eine Platform für IoT's
und FPGA-Entwicklung mit microCore und Forth zur Verfügung zu stellen.
Da bei microCore sogar der Befehlssatz unkompliziert zu erweitern ist,
wird die Ehrfurcht vor der Priesterschaft der CPU Architekten
untergraben.
Jedenfalls lag meine Motivation, es zu entwickeln, primär darin, dass
ich - lang ist's her - einen TMS320C32 eingesetzt habe, als der RTX2000
abgekündigt wurde. Da waren die lustigsten Fehler drin - einen kannte TI
noch gar nicht. Und da habe ich mir geschworen: NieNieNie wieder von
einer Chipküche abhängig zu sein, sondern Hard- und Software voll unter
Kontrolle zu haben.
Klaus S. schrieb:> Die Idee des Boards ist es, der Makercommunity eine Platform für IoT's> und FPGA-Entwicklung mit microCore und Forth zur Verfügung zu stellen.
Also geht es primär nicht um die Leute die was mit FPGA lernen wollen,
sondern es soll eine uC Platine werden die aber etwas flexibel ist, bei
der man den uC auch austauschen oder erweitern kann.
Ja, das könnte ein lohnenswertes Ziel sein, könnte aber auch sehr viel
Arbeit sein bis das so bequem funktioniert wie Arduino oder so. Und dann
bleibt die Kostenfrage und die Alleinstellungsmerkmale.
Jedenfalls wenn du das gemacht hast hast du eine Menge gelernt, egal ob
das dann ein Produkt wird oder nur ein Einzelstück bleibt.
&100 ms sleep \ wenn das überhaupt nötig sein sollte
16
;
#ss ist eine Bitmaske des Control-registers und das Bit (der Pin) kann
mit
"#ss Ctrl-reg !" gesetzt und mit "#ss not Ctrl-reg !" rückgesetzt
werden.
spi-type ist in der peripherals.fs Bibliothek enthalten und dort so
definiert:
1
: spi-type ( addr length -- ) ?FOR ld swap spi-emit 1+ NEXT drop ;
Das "init: init-spi" definiert Code, der vom cross-compiler automatisch
in den Bootcode eingebaut wird, ohne das man sich da weiter drum kümmern
muss.
&100 ms sleep \ wenn das überhaupt nötig sein sollte
14
;
Alter Falter, das sieht aber sehr kryptisch aus. Kein Wunder das es so
gut wie ausgestorben ist - da sind ja selbst die neusten C++ Ergüße noch
logischer in der Syntax. NoFront! Aber das wird keiner benutzen.
Jonas B. schrieb:> Alter Falter, das sieht aber sehr kryptisch aus.
Ja leider. Aber als ich das erstemal sowas gesehen habe
1
for (const char * p = "Hello, world!\r" ; c = *p; p++)
fand ich das auch erklärungsbedürftig.
Erstmal zwei generelle Eigenschaften von Forth:
1. Syntaktische Elemente, Prozedur- und Variablennamen werden "Worte"
genannt und sind voneinander durch Leerzeichen getrennt. D.h.: Jeder
Zeichenstring, der durch Leerzeichen begrenzt ist, ist ein Wort. Im
Klartext: Wortnamen können sämtliche Sonderzeichen enthalten. Das
erweitert die Möglichkeiten, über den Namen semantische Information zu
transportieren.
2. Forth ist die Programmiersprache einer virtuellen Stackmaschine, die
im Falle von microCore eine reale Maschine geworden ist. Insofern ist
Forth der Assembler von microCore. Und weil es eine Stackmaschine ist,
deren zwei Stacks (Daten- und Returnstack) explizit programmiert werden,
gilt die "Reverse Polish Notation" (RPN) und man muss '1 2 +' statt '1 +
2' schreiben - wie bei den alten HP Taschenrechnern mit RPN. Weil immer
der Operator NACH den Operanden kommt, braucht man die ( ) Klammern
nicht, um die Präzedenz von Operationen zu klären. Deshalb können die
Klammern in Forth für Kommentare benutzt werden.
Nun zum Code des vorletzten Beitrags:
1
init: setup ( -- )
'init: setup' legt in der Symboltabelle, die in Forth "Wörterbuch"
heißt, wie jede "colon definition" einen Eintrag mit dem Namen "setup"
an und beginnt den folgenden Code bis zum abschließenden ; zu
compilieren. (Init: ist insofern eine Besonderheit, dass der definierte
Code vom Crosscompiler automatisch in die Bootroutine eingebunden wird.)
Darauf folgt dann '( -- )'. Das ist ein Kommentar, der den Stackeffekt
von setup anzeigt. Vor -- stehen die Eingabewerte, dahinter die
Ausgabewerte. Wir sehen, dass setup den Stack nicht verändert.
1
&115200 baud
Offenbar wollen wir mit dezimal (&) 115200 baud kommunizieren.
1
#ss Ctrl-reg !
Das sieht nur kryptisch aus. #ss ist nichts anderes als der Name einer
Konstante, die das ss-bit (was immer das ist) gesetzt hat. Und es ist
meine Konvention, dass Konstanten der Klarheit halber in der Regel mit #
anfangen, das in diesem Falle nicht Hash sondern Number ausgesprochen
wird. #ss legt also lediglich eine Bitmaske auf den Stack.
Ctrl-reg ist die Adresse des Controlregisters, mit dem einzelne
Bits/Pins gesetzt oder rückgesetzt werden können. Diese Adresse wird
auch auf den Stack gelegt, über den Wert von #ss.
! ist wirklich kryptisch und wird in Forth "store" ausgesprochen. D.h.
#ss wird im Ctrl-reg gespeichert und dadurch werden die beiden Elemente
wieder vom Stack entfernt.
Noch eine Anmerkung zum Ctrl-reg: Es ist auf die Bitverarbeitung
spezialisiert und in Abhängigkeit vom Vorzeichenbit wird ein bestimmtes
Bit entweder gesetzt oder rückgesetzt. Gesetzt mit '#ss Ctrl-reg !',
rückgesetzt mit '#ss not Ctrl-reg !', wie es dann in dem Wort loop
genutzt wird.
1
8 spi-clock-divider !
dürfte jetzt schon klar sein: Es wird 8 im spi-clock-divider register
gespeichert.
1
spi-begin
Naja, da wird zum in der Bibliothek peripherals.fs als ': spi-begin ( --
) .... ; definierten Wort ein Unterprogrammaufruf ins setup
hineincompiliert und mit
1
;
ist die Definition von setup beendet und das System geht vom
kompilierenden wieder in den interpretierenden Zustand über, in dem
durch Eingabe von 'setup<cr>' der compilierte Code sofort ausgeführt und
mit 'trace setup<cr>' single-gesteppt werden kann.
Auf Wunsch werde ich auch noch die Zeile
1
Hello count spi-type
erklären, aber ich glaube, das reicht jetzt erstmal.
>2. Forth ist die Programmiersprache einer virtuellen Stackmaschine, die>im Falle von microCore eine reale Maschine geworden ist. Insofern ist>Forth der Assembler von microCore. Und weil es eine Stackmaschine ist,>deren zwei Stacks (Daten- und Returnstack) explizit programmiert werden,>gilt die "Reverse Polish Notation" (RPN) und man muss '1 2 +' statt '1 +>2' schreiben - wie bei den alten HP Taschenrechnern mit RPN. Weil immer>der Operator NACH den Operanden kommt, braucht man die ( ) Klammern>nicht, um die Präzedenz von Operationen zu klären. Deshalb können die>Klammern in Forth für Kommentare benutzt werden.
Das macht es dem Compiler (oder Interpreter:)) einfacher, ich mag es
halt lieber, wenn es dem Programmierer einfacher gemacht wird. Den
Aufwand für den Compiler muss ich ja nur einmal betreiben.
Aus dem Rest will ich nicht schlau werden, meine Hardware brauch die
Erde auch nie verlassen ;). Wie gesagt, NoFront! ich bin da leider
einfach nur zu blöd für.
Gruß J
Bin ich der Einzige auf der Welt, der an so einer Platine Interesse
hätte?
Oder dauert es jetzt einfach nochmal 20 Jahre? Solange habe ich auf
Forth-ev.de gelesen: Microcore Dokumentation demnächst hier! ;-)
Gruß Klaus (der soundsovielte)
Ja nun, es gibt schon viele Platinen mit FPGA. Sogar in billig. Und auch
mit CPU und Ethernet wenn man will.
Weitere Boards müssen entweder ein Alleinstellungsmerkmal besitzen oder
billiger oder besser (mehr Features bei gleichem Preis) sein.
Die letzten Beiden sind nur bei großer Stückzahl machbar.
-gb- schrieb:> Ja nun, es gibt schon viele Platinen mit FPGA. Sogar in billig. Und auch> mit CPU und Ethernet wenn man will.>> Weitere Boards müssen entweder ein Alleinstellungsmerkmal besitzen oder> billiger oder besser (mehr Features bei gleichem Preis) sein.> Die letzten Beiden sind nur bei großer Stückzahl machbar.
Ja, genau darum gehts. Ich brauche eine Platine, deren
Leistungsfähigkeit ich einschätzen kann (was ich bei microcore kann) und
die industrietauglich ist.
Da nach meinen Halbwissen Klaus Schleisik Geräte für Unterwasserbetrieb
baut, ist er mit widrigen Umweltbedingungen vertraut. Das sind für mich
schon zwei Alleinstellungsmerkmale. Der offene Punkt für mich ist nur
noch VHDL bzw. Verilog, das hab ich bisher vermeiden können.
Bei allen anderen Platinen habe ich 3 Unbekannte. Wenn jemand eine
Platine kennt, die industrietauglich ist und einen Softcore in der
Leistungsklasse des MSP430 oder 80166 bietet, wäre ich interessiert,
davon zu hören. Ist mir bisher nur noch nicht über den Weg gelaufen.
Gruß Klaus (der soundsovielte)
Klaus S. schrieb:> Der offene Punkt für mich ist nur noch VHDL bzw. Verilog, das hab ich> bisher vermeiden können.
Wieso denn dann überhaupt einen FPGA?
Klaus S. schrieb:> ist er mit widrigen Umweltbedingungen vertraut.
Ja nun, das ist oft nicht Sache von der Elektronik, sondern der
Mechanik.
Klaus S. schrieb:> Ich brauche eine Platine, deren Leistungsfähigkeit ich einschätzen kannKlaus S. schrieb:> Leistungsklasse des MSP430 oder 80166 bietet
Wenn du das nicht findest, was spricht dagegen eine Nummer größer zu
nehmen?
-gb- schrieb:> Wieso denn dann überhaupt einen FPGA?
Um vorher nicht eingeplante I/O-Subsysteme per Software auf eine
existierende Platine zu bekommen. Hardwareänderung durch Software,
weniger Vorratshaltung durch weniger Versionen. Die CPU im FPGA um keine
eigene Platine entwickeln zu müssen.
-gb- schrieb:> Wenn du das nicht findest, was spricht dagegen eine Nummer größer zu> nehmen?
Solange es unter dem Preis für einen Hutschienen-Raspi bleibt, nichts.
Deswegen frage ich ja nach konkreten Hinweisen. Ich sehe immer wieder
mal Hinweise, daß es da was gäbe. Aber wenn ich dann konkret
nachforsche, gibt es zwar preiswerte Platinen, aber einen Riesenaufwand
für die Entwicklung. Bei mir muß halt die Summe aus Hardware und
Entwicklung mit nur einer Maschine wieder hereinkommen. Papilio wäre
vermutlich was für mich gewesen, aber da bin ich wohl 10 Jahre zu spät
drauf aufmerksam geworden. Exptech hat nur noch zwei klägliche Reste.
Gruß Klaus (der soundsovielte)
-gb- schrieb:> Also eine sehr teure Maschine.
Nein, zwischen 10 und 100KEuro typisch. Das ist für Sondermaschinen im
Produktionsbereich normal. Teuer war für mich eine 2MEuro-Maschine, die
ich mal neu programmieren durfte, weil der Hersteller sie nicht unter
Kontrolle gebracht hatte. Das ist der Bau außerhalb meiner Reichweite.
Alter Grundsatz: Nie Maschinen mit mehr als dem halben Jahresumsatz
bauen!
Gruß Klaus (der soundsovielte)
Gut, Preis ist noch nicht der Gewinn. So eine FPGA Platine oder eine mit
uC und daneben einem FPGA kostet aber nicht so irre viel. Ich würde
sagen auch < 1k€ wenn man die selber entwickelt.
Klaus S. schrieb:> Bei allen anderen Platinen habe ich 3 Unbekannte. Wenn jemand eine> Platine kennt, die industrietauglich ist und einen Softcore in der> Leistungsklasse des MSP430 oder 80166 bietet, wäre ich interessiert,> davon zu hören. Ist mir bisher nur noch nicht über den Weg gelaufen.
Diese Nische wurde schlicht von Herstellern in 'billig' nie bedient.
Arduino und Industrie ohne Haftungsbeschraenkung beisst sich nun mal
arg.
Interessanterweise habe ich dafuer auch anfangs die Papilio-Dinger
eingesetzt, dann wurde aufgrund der Netzwerk-Anforderungen und in
'industrietauglich' was eigenes gemacht um PLCs aus den 90ern mit
verbesserter Safety zu 'emulieren'. Kann ich in Einzelstuecken auch noch
bei Interesse aus dem Eichhoernchenversteck loseisen, groessere Chargen
gibt's aber wohl mit dem FPGA (Spartan6) nicht mehr, und die Preise
liegen definitiv ueber Raspi-Niveau.
Der SoC-Builder dazu dazu ist grundsaetzlich offengelegt und hat Support
fuer neo430 (Stefan Noltings msp430 Nachbau), div. RiscV und ZPU/ZPUng
cores mit etwas mehr Power. Die etwas aufwendigeren IP-Cores wie ADMA
sind dann allerdings kommerziell.
> Papilio wäre> vermutlich was für mich gewesen, aber da bin ich wohl 10 Jahre zu spät> drauf aufmerksam geworden. Exptech hat nur noch zwei klägliche Reste.
Jack Gasset @gadgetfactory scheint seit Jahren abgetaucht. Allerdings
tat sich die Community auch irgendwie mit der Software-Unterstuetzung
etwas schwer.
Ein paar alte Papilios mit Spartan3 liegen auch noch im Keller. Bei
Interesse gerne PM, kann aber dauern.
-gb- schrieb:> Ich würde sagen auch < 1k€ wenn man die selber entwickelt.
Ich habe CPLDs/FPGAs im Blick seit FPSLIC und Ulrich Redemanns
Experimentierplatine mit 9536 drauf. Es hat sich aber bisher noch nie
ein Problem eingefunden, das sich nur damit hätte lösen lassen. Und zum
prophylaktischen Rumspielen für zukünftige Lösungsmöglichkeiten gilt
eher die Portokassengrenze, also Arduino- und Raspi-Klasse, da muß für
1KEuro erst ein akut zu lösendes Problem auftauchen.
Martin S. schrieb:> Arduino und Industrie ohne Haftungsbeschraenkung beisst sich nun mal arg
Das ändert sich ja gerade, Arduino Portenta läßt grüßen. Warten wirs ab.
Bisherige Versuche wie "Anduino" sind wohl eingegangen, aber die Barth
Kleinsteuerungen scheint es noch zu geben.
Martin S. schrieb:> Bei Interesse gerne PM, kann aber dauern.
Mache ich gern, danke für das Angebot. Geht bei mir auch langsam, da
gerade wieder eine Machine fertigwerden soll. Das Xilinx Webpack, das
ich vor 10 Jahren nicht zu ergattern geschafft habe, liegt seit einem
halben Jahr schon in mehreren Versionen in meiner Vorratskiste.
Gruß Klaus (der soundsovielte)
Klaus S. schrieb:> Ich habe CPLDs/FPGAs im Blick seit FPSLIC und Ulrich Redemanns> Experimentierplatine mit 9536 drauf. Es hat sich aber bisher noch nie> ein Problem eingefunden, das sich nur damit hätte lösen lassen.
Ah, ich sehe jetzt erst, dass du ein anderer Klaus als der TO bist. Der
hatte nämlich nach etwas mit FPGA gefragt.
Wenn du gar keinen FPGA brauchst dann nimm was mit uC.
Mir ist keine Komplettlösung bekannt, die so einfach wie Arduino
programmierbar ist. Papilio scheint eingegangen. Ich bräuchte ansich
eine Lösung, die Fernwartung erlaubt und einige ADCs bedient
(Temperaturüberwachung) und Anbindung exotischer Schnittstellen bietet
und Labview ansteuerbar ist. Mit NI Rio geht das schon, aber ist teuer
und unfleexibel.
Bitnibbler schrieb:> Mir ist keine Komplettlösung bekannt, die so einfach wie Arduino> programmierbar ist.
'Leider' muss man die Arduino-Frage immer wieder erlaeutern:
In einer Safety-Umgebung ist das schnell mal ein explodierender
Blindgaenger. Wer damit Schaufensterwerbung programmieren will, kann das
aber genau wie beim Papilio auch tun, die IDE ist ja auf eigene Targets
anpassbar.
Der Gag an solchen vermeintlich exotischen Forth-Systemen ist gerade,
dass man damit die Safety im Blick hat, zudem bieten die Stack-Maschinen
per se eine deutlich bessere Prozessorsicherheit als z.b. ein ARM oder
gar PIC, siehe Stichwort 'Nische'. Die kann man nicht fuer den
Arduino-Preis haben.
> Papilio scheint eingegangen. Ich bräuchte ansich> eine Lösung, die Fernwartung erlaubt und einige ADCs bedient> (Temperaturüberwachung) und Anbindung exotischer Schnittstellen bietet> und Labview ansteuerbar ist. Mit NI Rio geht das schon, aber ist teuer> und unfleexibel.
Wenn du keine auf dem FPGA laufenden VI-Bloecke brauchst (somit der PC
nur Monitoring oder einfache Logik macht), gibt es eine recht kompakte
Methode via Python und OpenG.
Du musst halt irgend eine RPC-Bibliothek deiner Wahl wrappen. Gibt's
alles auch fertig (C sources), dann traegst du in LabVIEW nur noch den
Identifier eines 'Property', wie `Cooler.Temperature` ein.
Auch hier wieder das Uebliche: Entweder selber aus Lego ein System
aufbauen, was du selber programmieren kannst, oder dich in die
(zeitweise bequeme) Abhaengigkeit von NI und Konsorten begeben.