Hallo liebes Forum, seit neustem bin ich im Besitz des Digilent Basys2 mit dem Xilinx Spartan 3e FPGA. Ich stehe noch am Anfang mit der VHDL Programmierung. Ich habe Probleme die 7 Segmentanzeige ansprechen zu können. Kurze Zeit habe ich mal mit einem Altera Board und Quartus gearbeitet. Dort konnte ich im Pinplanner die IO's für die einzelnen Segmente ansprechen. Bei dem Basys2 Board geht das leider nicht. Kennt jmd. einen Link zu einem Beispiel, wo mit dem Basys2 Board und einem einfachen VHDL Code irgendwas auf der 7 Segmment Anzeige ausgegeben wird oder generell einführende Beispielliteratur für das Board? Danke Euch Allen, liebe Grüße Xilinx
xilinx schrieb: > Kennt jmd. einen Link zu einem Beispiel, wo mit dem Basys2 Board und > einem einfachen VHDL Code irgendwas auf der 7 Segmment Anzeige > ausgegeben wird oder generell einführende Beispielliteratur für das > Board? Hast du einen Schaltplan? Das ist doch Dokumentation genug... ;-) Wie man mit ISE ein Projekt aufsetzt und ein Lauflicht macht (Und diese 7-Segmentansteuerung ist ja nichts anderes als ein aufwendiges Lauflciht), das siehst du dort: http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html
Ja, das habe ich bereits gemacht. Nur für die LED's habe ich eigene Ports. Somit konnte ich "G1" im PlanAhead der led zuordnen. Den Schaltplan habe ich vor mir liegen. Dort sind die Basys2 I/O circuits abgebildet. Dort eben auch die 7 Segm. Anzeige, wo die Anoden und Kathoden verdrahtet sind. Jedoch ist mir die Funktionsweise noch nicht so recht bewusst bzw. Sind die eizelnen Segmente der jeweiligen Ziffer die Anoden, welche dann mit AN1, AN2, AN3 und AN4 angesprochen werden?
xilinx schrieb: > Dort eben auch die 7 Segm. Anzeige, wo die Anoden und Kathoden verdrahtet > sind. Und: wieviele Anoden hast du pro Segment? Wieviele Kathoden?
Es sind 4 Anoden, und 8 Kathoden. Die vier Anoden für die jeweilige Anzeige und die 8 Kathoden für die jeweils 7 Segmente und den einem Punkt. Ok, das habe ich verstanden. Jedoch wie definiere ich beispielsweise die 1 im VHDL Code und wie verknüpfe ich diesen mit den IO'S? Die 1 auf der ersten Anzeige setzt sich zusammen aus der Anode1 mit der Kathode B und der Kathode C.
xilinx schrieb: > Jedoch wie definiere ich beispielsweise die 1 im VHDL Code und wie > verknüpfe ich diesen mit den IO'S? Ich würde den Zeichensatz als Array definieren:
1 | type z_t is array(0 to 9) of std_logic_vector(6 downto 0); |
2 | -- Segmente low-aktiv abcdefg
|
3 | signal zeichen : z_t := "0000001", -- 0 |
4 | "1001111", -- 1 |
5 | "0010010", -- 2 |
6 | :
|
7 | :
|
8 | "0000000", -- 8 |
9 | "0000100"; -- 9 |
Und dann muß ich nur noch über einen Index das passende Muster an die passenden Pins zuweisen. Und für den Anfang aktiviere ich mal nur 1 Anode:
1 | port ( anode : out std_logic_vector(3 downto 0); |
2 | kathode : out std_logic_vector(6 downto 0); |
3 | :
|
4 | ):
|
5 | |
6 | :
|
7 | :
|
8 | anode <= "0001"; -- schaltet nur eine Stelle ein |
9 | kathode <= zeichen(1); -- gibt eine 1 aus |
Wenn das geht, hast du mal eine grobe Idee...
xilinx schrieb: > Kennt jmd. einen Link zu einem Beispiel, wo mit dem Basys2 Board und > einem einfachen VHDL Code irgendwas auf der 7 Segmment Anzeige > ausgegeben wird oder generell einführende Beispielliteratur für das > Board? Lade dir mal von Digilent, dem Hersteller deines Basys2, das "Basys2 User Demo project" von der Produktseite (http://www.digilentinc.com/Products/Detail.cfm?Prod=BASYS2) herunter. Im ZIP File findest du eine SimpleSsegLedDemo.vhd
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.