Hallo, ich versuche mich gerade in VHDL einzuarbeiten und habe mir dafür vorgenommen, ein SPI-Signal von einem Arduino in einen CPLD zu senden. Hier möchte ich das Signal manchestercodieren und über eine LED an eine Photodiode senden. Die Photodiode geht wieder an den CPLD zurück und wird dort nach SPI dekodiert und von einem zweiten Arduino ausgelesen. Die Datenrate ist zunächst unbedeutend. Der Mikrocontrollerteil und der Analogteil ist leicht, der CPLD-Teil nicht. Ich habe mir die QuartusII IDE herunter geladen und habe hier ein kleines CPLD-Board mit einem MAXII vor mir. Ich habe die lezten Tage im Internet nach einem leicht verständlichen Tutorial, einer Appnote oder einem gut dokumentierten Code in VHDL für einen solchen Encoder/Decoder gesucht. Leider war ich nicht sehr erfolgreich. Ich habe eine AppNote von Xilinx finden können (Xapp339). Der dort besprochene Kodierer/Dekodierer ist mir aber viel zu umfangreich und unverständlich. Anderer Code ist meist nicht dokumentiert oder beschränkt sich nicht auf den Manchesterteil. Da ich das Denken in VHDL erst lernen muss, wäre mir ein einfaches, kurzes und gut dokumentiertes praktisches Beispiel sehr lieb. Die Theorie kommt danach. Vielleicht hat einer von euch ja so ein Beispiel oder kennt eine Adresse dafür. Ich wäre sehr dankbar. Mit freundlichem Gruß
Friedrich F. schrieb: > ich versuche mich gerade in VHDL einzuarbeiten und habe mir dafür > vorgenommen, ein SPI-Signal von einem Arduino in einen CPLD zu senden. Schritt 1 der Aufgabe: mach mal diesen Teil. Sende Daten zum MAX und zeige sie dort an. Lies die Stellung von Schaltern ein und gib sie an den uC zurück. Das mit dem Manschester-Code ist mehr Aufwand, wobei das Senden noch einfach ist, weil dort ja nur ein serieller Sender aufgebaut und die Ausgabedaten mit einem Takt ver-xodert werden müssen. Der Empfänger ist deutlich aufwändiger, weil dabei je erst mal der Takt zurückgewonnen und ein Resync eingebaut werden muss. Hier mal ein RC-5 Empfänger, dieses Protokoll ist ja auch Manchester codiert: http://www.lothar-miller.de/s9y/categories/50-RC-5
Friedrich F. schrieb: > Theorie kommt danach. Bin ja sicher kein CPLD-Experte aber diese Einstellung ist eigentlich überall die Falsche! Man sollte erst wissen, was man tun muss, was man tun will und dann beginnen, es zu tun. Ich werfe auch nicht 100 Bauteile auf die Platine und verlöte sie um dann zu verstehen, was da wohl passieren könnte.
Hallo Analog Opa, da hat du ja auch Recht mit. Aber es lernt sich motivierter am konkreten Beispiel und es festigt sich besser. Ich habe hier vor mir einige recht dicke Bücher und Skripte zum Thema VHDL, zahlreiche Appnotes zum MAX, dem Cyclone, der Quartus-Overfläche und habe auch schon viel gelesen. Aber was bringt der Abstrakte Begriff, das abstrakte Konstrukt wenn der Ansatz fehlt? Ich weiß was eine Entity, eine Architecture oder ein concurrent Statement ist. Weiß, dass ein deutlicher Unterschied zwischen dem MAX und dem Cyclone, nicht nur in der Flüchtigkeit des Speichers liegt. Ebenso habe ich bereits einige Erfahrung im Bereich Elektronik und Programmieren. Aber es fehlt die konkrete, gut erklärte Anleitung, wie man diese Fragmente für dieses Problem zusammen bekommt. Wie man es denken muss. Daher: lernen am Beispiel. Mit freundlichem Gruß
Das sind aber zwei Dinge: VHDL und FPGA lernen und dann Digitales lernen. Vielleicht tut es einfach mal ein Digitalkurs an der Uni oder der VHS? Könntest Du die Schaltung auflöten? Dann ist der Schritt zum FPGA schon halb getan.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.