mikrocontroller.net

Forum: FPGA, VHDL & Co. ALTERA FLEX Programmierung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Max L. (maxl87)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Servus Leute,

ich habe einen alten Solido SD300 fürn Kasten Bier erhalten.

Habe überall geschaut, ob man noch Rollen, Software ...etc. für diesen 
bekommt. Allerdings vergebens.


Ich möchte mir einen 3D Drucker zsm-bauen und die Schritt-Motoren die 
verbaut sind und die bereits vorhanden X-Y-Z-Achsen, will ich gerne 
nutzen. Deswegen muss ich eig. nur noch die Steuerung hinkriegen. Klar 
kann ich das mit einen Arduino und Co. bewältigen und sicherlich auch 
wesentlich einfacher. Doch ich würde gerne das Board mit den ALTERA Flex 
EPF10K10AQC208-3 & EPF6016QC208-3 verwenden das zuvor ja auch die 
Steuerung übernommen hat steuern.


Ich habe Bilder beigefügt wie die Hardware zsm-arbeitet. Es gibt die 
Steuerung mit den Altera Flex 10k und dann gibt es noch eine Steuerung 
und Stromversorgung für den Schrittmotor. Ich nehme an das dies die 
H-Brücke ist, die die Steuerung schützt.


Wie komme ich in die Programmierung des Boards hinein? Welche Software 
kann ich da verwenden?


Warum ich das so mache? Weil ich gerne dazulernen möchte.


Danke für eure Unterstützung
Maxi

: Bearbeitet durch User
Autor: Christophz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich seh da zusätzlich noch einen Motorola Prozessor (68K 32bit?) zu dem 
gehört wahrscheinlich auch der Flash Chip und das nonvolatile SRAM.

Damit man für dieses Board überhaupt beginnen kann etwas zu entwickeln 
benötigst du recht detaillierte Information über das Pinning der FPGAs 
und des Prozessors. Da du keine Software hast um das Board anzusteuern 
bleibt dir nur ausklingeln (sehr Zeitaufwändig). Rauslesen wird nicht 
viel bringen, da dieses Board vermutlich sechs Layer oder mehr hat. Es 
gibt noch so Möglichkeiten per JTAG das Pinning zwischen grösseren Chips 
automatisiert heraus zu friemeln...

Ich muss ehrlich sagen, dass ich bei deiner Idee sehr viel 
Zeitaufwändige reverseengineering Arbeit sehe, bei der du wohl nicht 
viel neues dazu lernst. Lange bevor zu dich dann überhaupt mit diesen 
alten FPGAs auseinander setzen kannst.

Wie du schon geschrieben hast, ein Smoothieboard rein und du wärst grob 
nach einem Wochenende bei einer sich bewegenden Maschine. Aber das wäre 
dir ja zu Langweilig :-)

Aus dem LinuxCNC/MachineKit Umfeld gibt eine eine Opensource FPGA 
Firmware für Schrittmotor/Servo/Encoder Karten, HostMot2 (offiziell 
unterstützt sind MESA Karten).

Es wäre hübsch, wenn diese FPGA Firmware mal "jemand" adaptieren würde, 
damit es auf kleinen FPGA Karten für RaspberryPi/BeagleBone eingesetzt 
werden kann. Da bekommt man wenigstens die Schemas :-)

Autor: Max L. (maxl87)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hey Christoph,

danke für deinen konstruktiven Beitrag. Das Forum hier war auch so meine 
letzte Hoffnung, bevor ich tatsächlich die Alternative wähle.


Das Board ist so schön beschriftetet, sry wegen den blöden Bildern im 
ersten Beitrag, aber wenn einen um 1 Uhr morgens der Gedanke packt, dann 
muss er raus und die dunklen Bilder sind entstanden.


Anbei habe ich diese heute morgen gemacht. Das Board ist Top beschrieben 
und überhaupt, war der Komplette Drucker in Stahl und selbst die 
Abstandshalter die heutzutage aus billigen Kunststoff gemacht werden 
waren aus Stahl. Insgesamt war nur das Gehäuse aus Kunststoff. Ein 
wahres vergnügen sich durch die Arbeit der Entwickler zu arbeiten! Nicht 
wie heutzutage...

Am liebsten hätte ich den garnicht demontiert, aber gerade jetzt, möchte 
ich um so mehr auf das Board zugreifen können und neues "Leben" in einer 
etwas umgewandelter Form ein-hauchen.


Die Frage ist wirklich nur, wie komme ich da rein. Du erwähnt das ich 
keine Wahl habe als nur ausklingeln. Wie kann ich mir das genau 
vorstellen?


Grüße
Maxi

: Bearbeitet durch User
Autor: Christophz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max L. schrieb:
> Die Frage ist wirklich nur, wie komme ich da rein.

Was verstehst du mit "reinkommen"?

Hört sich vielleicht dumm an, ist aber wichtig für mich zu verstehen was 
du vor hast bzw. wie du dir das im Moment vorstellst.

Max L. schrieb:
> Du erwähnt das ich
> keine Wahl habe als nur ausklingeln. Wie kann ich mir das genau
> vorstellen?

Datenblätter des Prozessors/FPGA etc. zusammensuchen. Für jeden Pin, der 
nicht Speisung ist oder durch andere Gründe klar ist womit er verbunden 
ist, mit dem Multimeter (Mit Piepser) herausfinden womit er verbunden 
ist.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der vielversprechenste Ansatz (neben dem schon erwähnten Durchklingeln) 
für's Reverse Engineering ist m.E. der µC.

Das ist ein Motorola 68332 (also aus der m68k-Familie), die noch relativ 
einfach zu verstehende Assembler-Instruktionen benutzt. Das Disassembly 
läßt sich mit etwas Übung direkt lesen und mit etwas Phantasie sollte 
sich nachvollziehen lassen, was das Programm da eigentlich treibt.

Trotzdem kann das durchaus "ein wenig" dauern, zumal das Ding auch noch 
die TPU (Time Processing Unit) hat, die noch eine extra Herausforderung 
stellt...

Reengineering der FPGA-Config dürfte mehr oder weniger aussichtslos 
sein. D.h. wenn man aus dem bisherig genannten nicht wenigstens ungefähr 
rauskriegt, was da ablaufen soll, ist hier Ende.

Autor: Max L. (maxl87)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zsm,

ich gehe direkt auf deine Frage

Christophz schrieb:
> Was verstehst du mit "reinkommen"?
>
> Hört sich vielleicht dumm an, ist aber wichtig für mich zu verstehen was
> du vor hast bzw. wie du dir das im Moment vorstellst.

Mit reinkommen verstehe ich in die Software zu kommen und diese zu 
programmieren, ähnlich wie bei einem Smoothieboard und damit den 
Schrittmotortreiber (Siehe Bild im ersten Beitrag) zu betreiben..

Christophz schrieb:
> mit dem Multimeter (Mit Piepser) herausfinden womit er verbunden

Das habe ich mir fast gedacht, hab nur gehofft das es besser/schnellere 
Methoden gibt.

Ich denke das Board werde ich leider nicht nutzen können, da wie es auch 
klingt und ich gelesen habe, der Aufwand enorm ist. Allerdings hoffe ich 
durch reverse engineering wenigstens die Schrittmotortreiber zu benutzen 
(Das Bild im ersten Beitrag).

Habt Ihr da Tipps? Werde da mit dem Programm gschem versuchen den 
Schaltplan zu konstruieren um eine bessere Übersicht zu erhalten und 
ggf. die Pläne veröffentlichen zu können falls ich mal stecken bleibe.
Weitere Tipps?

Grüße
Maxi

Autor: -gb- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, das board ist jetzt nicht irre komplex. An den beiden FPGAs sind 
die meisten Pins nicht angeschlossen, ein teil des boards ist 
unbestückt. Das hat man an einem Tag durchgeklingelt.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich dunkel entsinne, braucht man fuer die etwas aeltlichen
Altera-Kaefer eine ebenso alte und abgehangene Software um
ueberhaupt etwas sinnvolles mit ihnen zu tun.
(Z.B. Mentor Leonardo)

Bzgl. des 68332 kann schon die Wahl des richtigen Wertes fuer
das Baseregister zu einem unfreundlichem Akt werden.
Und die CS-Register fuer die Peripherie wollen auch richtig
programmiert werden.

Insgesamt viel Aufwand mit einem ungewissen Ergebnis.

Autor: Max L. (maxl87)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
-gb- schrieb:
> die meisten Pins nicht angeschlossen, ein teil des boards ist
> unbestückt.

Mich wundert es auch, warum z.B. an diesen Pins keine Leitungen 
verlaufen. (siehe angehangenes Bild) z.B beim Motor 4.
Könnte zwischen der Oberen und Unteren Ebene auch Leitungen verlaufen 
die ich gerade nicht sehe? Sry für die dumme Frage, aber wie gesagt. Ich 
habe mich mit Hardware nie wirklich beschäftigt.

: Bearbeitet durch User
Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das meinte ich nicht. Das hier auf den Bildern ist vermutlich auf den 
inneren Lagen angeschlossen. Aber an den beiden FPGAs sind viele Pins 
unbelegt. Gut auch da könnte die Leiterbahn nach innen unter den Chip 
weggehen, ist aber unwahrscheinlich.

Autor: S. R. (svenska)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max L. schrieb:
> Mit reinkommen verstehe ich in die Software zu kommen und diese zu
> programmieren, ähnlich wie bei einem Smoothieboard und damit den
> Schrittmotortreiber (Siehe Bild im ersten Beitrag) zu betreiben..

Das kannst du direkt vergessen. Was du machen musst, ist effektiv eine 
komplette Neuentwicklung der gesamten Software auf einer vorgegebenen 
Hardware.

Die FPGA-Konfiguration ist fix, daran kannst du nichts ändern. Wenn sie 
nicht zu 100% auf deine Wünsche passt, musst du eine komplett eigene 
Alternative entwickeln und kannst dabei nichtmal auf die vorhandene 
Konfiguration zurückgreifen (der vorhandene Bitstream ist für dich 
nutzlos).

Die Software kannst du zwar reverse engineeren, und das wirst du für ein 
Verständnis der Hardware möglicherweise ohnehin tun müssen, aber 
Veränderungen darin kannst du effektiv nicht vornehmen. Das läuft auch 
auf eine Eigenentwicklung raus.

> Christophz schrieb:
>> mit dem Multimeter (Mit Piepser) herausfinden womit er verbunden
> Das habe ich mir fast gedacht, hab nur gehofft das es
> besser/schnellere Methoden gibt.

Nein. Du kannst einen Teil der Informationen aus der Software ziehen, 
aber Multimeter dürfte einfacher und schneller sein... und bei der 
Softwareanalyse helfen.

Autor: Max L. (maxl87)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es dem so ist, dann werde ich schauen das ich nur die 
Schrittmotortreiber nehme. Schließlich tun die ja nur das was Ihnen von 
der Steuerung gesagt wird und dienen dazu dem Motor saft zu geben und 
die Steuerung vor Bildspannung zu schützen. Bin gerade dabei die Treiber 
auszuklingeln und den GND PIN zu finden.

Gibt es da eine einfach Möglichkeit den richtigen PIN zu finden?

Ich überlege alle Pins an meinen Arduino Uno anzuschließen und diese 
nacheinander auf HIGH zu schalten... problem.. kp wo mein GND an den 
pins ist... Tipp?

Übrigens Danke für eure Unterstützung.

Grüße
Maxi

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und den GND PIN zu finden

Das ist nun wirklich die einfachste Uebung.
Such dir einen Kaefer wo das Pinout bekannt ist.
Z.B. den 68332.
Den Rest solltest du dir schon selber denken koennen.

Autor: S. R. (svenska)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max L. schrieb:
> Gibt es da eine einfach Möglichkeit den richtigen PIN zu finden?

Ich empfehle ja das Datenblatt...

Insbesondere Vcc und GND sind einfach zu finden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.