Forum: FPGA, VHDL & Co. SOPC -> RS232 ->


von Franki C. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Bin grad dabei mir mit Quartus ein FPGA mit RS-232 Schnittstelle zu 
basteln.
Als SOPC Vorlage habe ich das Design vom Altera Tutorial genommen:

http://www.altera.com/literature/tt/tt_nios2_system_architect.pdf?GSA_pos=1&WT.oss_r=1&WT.oss=nios%20ii%20architect%20tutorial

Dann noch im SOPC Builder die uart_rs232 Schnitstelle angelegt s1 mit
cpu.data_master und clk mit cpu_clk verbunden. Dann auf generate und
alles ist wunderbar. Nun weiß ich nicht genau ob ich beim FPGA Fehler 
mache. Ich habe einen Input an RxD (default VCC) und einen Output an TxD 
gelegt. Bei Alignment -> Pins habe ich für beide dann willkürlich eine 
Pinverbindung angelegt. Compiliert und weiter zu Nios II IDE.
Dort als Programm zur Kommunikation folgendes:

FILE *fp;

fp = fopen("/dev/uart_rs232", "w+"); // also used wb+, w+
if(fp){
printf("Verbindung erfolgreich"\n");
fwrite('a', sizeof('a'), 1, fp); // also used 
fwrite('a',strlen('a'),1,fp);
fclose(fp);
}
else{
printf("Error rs232");
fclose(fp);
}


Bekomme ein "Verbindung erfolgreich" aber keine Daten werden geschickt!
Kann mir einer weiter helfen? Gerne auch mit einem fertigen Quartus File
;-) denke nämlich das es daran liegen müsste...

Vielen Dank schon mal!

von Duke Scarring (Gast)


Lesenswert?

Franki C. schrieb:
> Bei Alignment -> Pins habe ich für beide dann willkürlich eine
> Pinverbindung angelegt.

Und das soll gehen? Schau dochmal in den Schaltplan zu Deinem Board. Da 
sollten die entsprechenden Pins rauszubekommen sin.

Duke

von Franki C. (Gast)


Lesenswert?

Ich finde leider nichts über die RS232 Verbindung bzw. über RxD und Txd 
und auf der Seite von Altera gibt es bei download Versuchen immer einen 
Fehler.

von Franki C. (Gast)


Angehängte Dateien:

Lesenswert?

So hab da endlich was gefunden. Das HSMC Multimedia Board. auf der IO 
Bank 1 sind die Pinne RxD und TxD zu finden, jedoch existieren diese 
nicht im Pin Planer.. Ich werd wahnsinnig! Bitte um Hilfe!

von Flint (Gast)


Lesenswert?

Und PIN_J4 und PIN_K4 findest du auch nicht im Pin Planner?

von Duke Scarring (Gast)


Lesenswert?

Mir ist noch nicht ganz klar, wie Dein System aussieht.

Willst Du nur mit einem "virtuellen" Board simulieren, oder hast Du 
echte Hardware auf Deinem Schreibtisch? Wenn ja, welche?

Duke

von Franki C. (Gast)


Lesenswert?

Also für Alle die es interessiert:

Es handelt sich um ein Nios II Embedded Evaluation Kit.

Das mit der Pin-zuordnung habe ich jetzt nach langem hin und her 
geregelt.

Als erstes muss im SOPC Builder noch ein Baustein mit eingefügt werden.
Periphals->FPGA Periphals-> Remote Update Controller.
Mit CPU clk verbinden und das System generieren.
Danach in Quartus das FPGA einfügen und mit den Pins verbinden.
Bei TXD und RXD handelt es sich um die HSMC Pins 115 und 119.
Die heißen auf der HSMC Seite HC_UART_RXD und HC_UART_TXD. Bis dahin 
ganz einfach zu verstehen. Wenn man nun auf die shematic vom cyclon III 
schaut sind diese nur dadurch zu finden, da der HSMC Baustein gleich 
aussieht. Dort geht man dann von den Pins 115 und 119 aus. Hier heißen 
diese Pins jedoch HSMC_TX_n10 und HSMC_TX_p11 ;-) Und die verweisen auf 
IO Bank 6 an dem dann die Pins E18 und H17 Diese stehen nun für RXD und 
TXD.

Kurz:

-Baustein in SOPC Builder einfügen verbinden und generieren
-Im Pin Planer Pin E18 für RXD und Pin H17 für TXD
-Jetzt noch Assignments->Device->Device and pin options, unter der 
Rubrik Configuration Active Parallel und Remote einstellen. Unter der 
Rubrik Dual Purpose Pins alle bis auf DCLK auf "use as regular IO" 
stellen.
Compilieren und alles ist wunderbar.

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
Noch kein Account? Hier anmelden.