Hi,
nach dem ich hier http://www.google.de und hier
Beitrag "Etwas speziellere IO-Karte gesucht" nicht wirklich fündig
geworden bin, versuche ich es mal mit Plan B: selber bauen. Dazu ist zu
sagen, dass ich meine letzte Schaltung vor über 10 Jahren komplett
selbst entwickelt habe, berufsbedingt mit Digitaltechnik und HW-naher
Programmierung aber keine Probleme habe. Deswegen ist jede Art von
Denkanstoß und Tipp bezüglich einer Lösung und passender Hardware
herzlich willkommen.
Also: ich benötige ein Controllerboard mit
- Ethernetanschluss (da ich nicht auch noch die USB/PCI-Treiber selbst
schreiben will)
- 2 Analogausgängen mit 16 Bit (100 kHz, +-5 V, also keine
Audiohardware)
- mindestens einem Digitalein- und -ausgang, 50 kHz Minimum
Das ganze Teil sollte natürlich nicht zu teuer sein. Optimal wäre es
auch, wenn sich die Firmware des Boards auch gleich über den
Ethernet-Weg updaten lassen würde.
Also brauche ich als erstes eine CPU mit ausreichend Rechenpower (sie
muss die Daten nur durchschaufeln können, formatieren kann ich sie auf
Hostseite), passende DA-Wandler und jeden sonstigen Hinweis, den ich
bekommen kann.
Wäre ein ATMEL-Prozessor OK?
Einen DAC AD420 hätte ich auch schon gefunden, der nimmt die Daten
eingangsseitig seriell entgegen (spart also IO-Pins), scheint aber nicht
mehr lieferbar zu sein.
Wie kriegt man eine schnelle Verbindung zum Ethernet-Anschluss hin
(ENC28J60 und SPI?) und lässt sich das mit dem Firmwareupdate per
Ethernet mit einem ATMEL überhaupt machen?
Danke schon mal!
Jake
Jake schrieb:> Also brauche ich als erstes eine CPU mit ausreichend Rechenpower (sie> muss die Daten nur durchschaufeln können, formatieren kann ich sie auf> Hostseite), passende DA-Wandler und jeden sonstigen Hinweis, den ich> bekommen kann.
Ich schlage vor:
http://focus.ti.com/docs/prod/folders/print/lm3s6911.html
1. Vorteil: ARM Cortex M3 mit 50 MHz
2. Preis so um die 7-8€ bei normalen Distributoren, 12€ bei der Apotheke
Farnell; ein entsprechend großer AVR ist genauso teuer und leistet nicht
so viel
3. Normalerweise brauchst Du einen separaten Ethernet PHY, der ist hier
aber schon gleich mit drin. Heißt also: Du kannst Deine RJ45-Buchse (mit
eingebautem Übertrager!) direkt anklemmen. Und Du hast 100 MBit Ethernet
und genug Power, die auch zu nutzen.
4. Entwicklungstools für ARM gibts in großer Zahl, frei und kommerziell.
5. TI hat eine umfangreiche, kostenlose Softwarebibliothek, die Du
nutzen solltest. Da ist dann alles an Peripheriefunktionalität drin.
Nachteil: 100 Pin TQFP ist nicht so ganz einfach zu löten, aber mit dem
passenden Werkzeug kein Problem.
Wenn es nur ein Einzelstück ist, besorg Dir ein Evalboard, dann hast Du
die Basis und musst nur noch Deine Peripherie anklemmen.
Alternative: PIC32 oder STM32F105/107 (auch Cortex M3 Kern, aber
externer PHY notwendig, das ist dann nochmal ein 48-64 Pin TQFP)
ODER:
was sich hier vielleicht auch anbieten würde:
nimm USB und mehrere FTDI FT2232H. Diese Teile sind USB-Bridges mit USB
2.0 High-Speed. 100 kHz sollten die immer schaffen. Die kannst Du so
konfigurieren, dass sie zwei parallele FIFO-Schnittstellen
bereitstellen, an die die dann AD-Wandler mit 8 Bit Parallel-Interface
ansteuern.
Für den DA-Wandler nimmst Du dann einen weiteren.
Du kannst diese Chips auch auf SPI programmieren, dann solltest Du aber
den FT4232H nehmen, weil der zwei SPI Port bereitstellen kann. Der 2232H
hat genauso viele Pins, aber nur eine serielle Engine.
Damit entfällt die Programmierung auf der Controllerseite.
Überleg mal, ob das für Dich passen würde.
fchk
Jake schrieb:> - 2 Analogausgängen mit 16 Bit (100 kHz, +-5 V, also keine> Audiohardware)
Wow, das sind ja schonmal >3,2MB Nutzdaten, also brauchst Du mindestens
100MB Ethernet.
Da sollte es schon ein ARM Cortex M3 sein.
Oder Du implementierst doch etwas Eigenintelligenz in den MC, damit der
Traffic nicht so extrem ist.
Peter
Die TI-CPU sieht gut aus - und hätte genügend Rechenleistung, so dass
man sich in der Tat den Luxus leisten könnte, die Daten erst auf dem
Board zu verarbeiten, so dass die zu übertragende Datenmenge drastisch
sinken könnte.
Bleibt noch die Frage nach passenden DACs. Der I2C-Bus der CPU ist mit
max 400 kBit zu langsam, also bräuchte man welche, die man parallel
Anbinden kann oder ein aktuelles Gegenstück zu dem AD420, der eine
serielle Datenübertragung mit DATA, CLK und LATCH erlaubt.
AD660
Ist aber nicht ganz billig (ca 20€), aber Digikey hat ihn lagernd.
Jetzt überlege nochmal scharf: Brauchst Du WIRKLICH 16 Bit. Ist Dein
Aufbau nachher so gut, dass das ganze auf ein Zehntel mV ankommt?
(5V/32768=0.15mV) Oder hast Du da später nicht doch so viel Noise drauf,
dass Du nachher froh sein kannst, wenn Du effektiv 14 Bit rausholst?
Oder würden es nicht auch 12 Bit (5V/2048=2.5mV) tun. Die Kosten würden
sich nämlich im gleichen Maß verringern.
fchk
Guten Morgen Jake!
Ich weis nicht wieviel du ausgeben willst und kannst. Aber eine habwegs
profesionelle Lösung findest du ziehmlich sicher bei http://deditec.de
Gruß Philipp
Frank K. schrieb:> Oder hast Du da später nicht doch so viel Noise drauf,> dass Du nachher froh sein kannst, wenn Du effektiv 14 Bit rausholst?
Hm, ich sage mal so: es DARF zum Schluss gar nicht so viel Noise drauf
sein, weil man das schlichtweg am Ergebnis sehen würde. Momentan
überlege ich, ob ich hinter den DAC nicht noch einen kleinen Verstärker
schalte, so dass man mindestens 500 mA aus der Karte ziehen kann (was
das Noiseproblem natürlich nicht unspannender macht).
Also da du ja eine Art kontinuierliches Streaming brauchst, ohne, dass
was verloren geht, scheidet Ethernet aus meiner Sicht schon mal aus.
Außerdem ist der Aufwand im µC dann beträchtlich.
Ich würde einen FPGA nehmen, der die DA-Wandler ansteuert und daran
einen FT2232H oder einen Cypress FX2 Controller anschließen. Der FPGA
macht die zeitkritische Ansteuerung und über USB schiebst du blockweise
die Daten immer wieder in einen BlockRAM-FIFO im FPGA. Aber 16 Bit und
dann noch 500mA und selber bauen und darf weniger kosten als
Meilhaus.....naja....bissl wünsch-dir-was.
Christian R. schrieb:> Also da du ja eine Art kontinuierliches Streaming brauchst, ohne, dass> was verloren geht, scheidet Ethernet aus meiner Sicht schon mal aus.
Mit der TI-CPU von oben sollte es eigentlich gehen: da muss ich kein
kontinuierliches Streaming machen, sondern kann mir (da genügend
Rechenpower vorhanden ist) den Stream aus deutlich weniger
Eingangsdaten auf dem Board dynamisch erzeugen.
> Aber 16 Bit und> dann noch 500mA und selber bauen und darf weniger kosten als> Meilhaus.....naja....bissl wünsch-dir-was.
Die 500 mA sind eine neue Idee, ob ich das letztenendes wirklich mache,
weiß ich momentan noch nicht (allerdings sollte ein windiger, halbwegs
linear arbeitender Amp ja nicht so teuer sein!?). Und bei Analog Devices
habe ich schon ein paar nette DACs gefunden, die vom Preis her ebenfalls
so liegen, dass ich nach wie vor deutlich unter den Meilhaus-Lösungen
liegen dürfte.
Jake
Hehe, naja, den Zeitaufwand darf ich halt wirklich nicht mit
einberechnen. aber was würde ich in der Zeit sonst machen? Da findet
sich nur eine andere Möglichkeit Geld auszugeben :-)
Christian R. schrieb:> Wenn du Zeitaufwand und> Bauteile zusammen rechnest, kommst du auch auf den preis von Meilhaus.
Das habe ich ganz übersehen: das Meilhauszeugs ist so teuer, da kann ich
mir auch gleich eine neue Scanlab-Karte kaufen. Die ist für genau das
gedacht, was ich machen will und kostet weniger als der mutmaßlich
verglodete Meilhaus-Krempel.
Vergoldet? Das 16 Bit RedLab 3101 kostet gerade mal 362 Euro. Für uns im
professionellem Umfeld ist das eher zu billig alles, wir hatten da
verschiedene RedLab Dinger, ist halt alles Low-Budged für Bastler oder
einfachste Anforderungen. Richtige Karten gibts bei National
Instruments, die sind dann um einiges hochwertiger, aber auch teurer.