SOPC -> RS232 ->

Gast #1882404
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!
Angehängte Dateien:
Gast #1884506
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren