Hallo, wer hat Erfahrung mit dem Xilinx Spartan3 StarterKitBoard und der RS232 Schnittstelle? Suche zuverlässig laufenden Core bzw. VHDL-Code für die Datenübertragung über RS232 (mit meinem Windowsprogamm). Hat da jemand etwas im Einsatz und auch schon getestet ? Sicherlich ja, wäre toll wenn ich den Code downloaden könnte! Gruss und vielen Dank in vorraus Ralf. Ps.:Habe schon mal mit dem "PicoBlaze Core von Ken Chapman (Xilinx Ltd) October 2002" und den "UART Transmitter Version 1.00 von Ken Chapman, Xilinx Ltd, Benchmark House" getestet, hatte damit allerdings Synchronisationsprobleme, so das immer mal wieder Zeichen nicht korrekt oder gar nicht vom FPGA gelesen wurden.
Danke für die schnellen Antworten und schon wieder Fragen Welchen CORE habt ihr denn im Einsatz ? Läuft der "RS232 system controller" der "Serial UART" oder der "miniUART" stabil ? Habt ihr evt. auch Beispielcode und Anwendung in VHDL ? Danke in vorraus Ralf
@Ralf Hagemann >Ps.:Habe schon mal mit dem "PicoBlaze Core von Ken Chapman (Xilinx Ltd) >October 2002" und den "UART Transmitter Version 1.00 von Ken Chapman, >Xilinx Ltd, Benchmark House" getestet, hatte damit allerdings >Synchronisationsprobleme, so das immer mal wieder Zeichen nicht korrekt >oder gar nicht vom FPGA gelesen wurden. Dann machst du einen Fehler. Das Gespann läuft sehr gut. Richtige Baudrate? Alles korrekt verdrahtet? MFG Falk
Hallo Falk, Also ich habe an ein Synchronisationsproblem gedacht, aber ich habe da noch keine Lösung. Falls du Lust hast kannst du ja mal in mein Minimalisiertes ISE-Projekt nebst PicoBlaze-Assembleprogramm schauen. Die Software sollte eigendlich anhand diesen minimalen Beispiels ein Echo von jedem Zeichen was z.B. über Hyperterminal geschickt wird zurückschicken. Das klappt aber nicht stabil bei jedem Zeichen. (9600 Baud, 8 Datenbits, 1 Stopbit, No Parity) http://home.edvsz.fh-osnabrueck.de/~hagemann/vhdl/Mpch.zip Danke in vorraus. Gruss Ralf
@Ralf Hagemann >Falls du Lust hast kannst du ja mal in mein Minimalisiertes ISE-Projekt >nebst PicoBlaze-Assembleprogramm schauen. Hmm. 1.) Deine baud_x16 is leicht daneben, bei 50 MHz und 9600 Baud brauchst du einen Teiler von 325,5, also entweder 325 oder 326. Du teilst aber durch 327, denn du zählst von 0..326. Der Fehler von 0,4% ist aber nicht Ursache der Übertragungsprobleme. 2.) Ich nehme an, dass stelltisch.psm dein ASM Programm ist (ist ja das einzige *.psm). Naja, noch reichlich im Anfangsstadium. Allerdings solltest du dir angewöhnen, von Anfang an möglichst nicht rumzumurksen. Du definierst viele Registernamen, benutzt sie dann aber nicht konsequent. Das fällt dir auf die Füsse. >SCHLEIFE: > CALL CALL_Read_char_from_UART Das empfangene Byte befindet sind nun in s0 > LOAD UART_data, USB_SYNC Hier lädst du den konstanten Wert USB_Sync($F0) in das Register UART_data(sF) > CALL CALL_Send_char_to_UART >;--------------------CALL_Send_char_to_UART---------------------------- -------- >; >; Datenbyte aus Register s0 >; an UART-Sender uebergeben >;--------------------------------- >; >CALL_Send_char_to_UART: > IN s1, uart_status_port ; UART Status einlesen > AND s1, uart_tx_full ; Sender-fifo-stack voll? > JUMP NZ, CALL_Send_char_to_UART ; Ja => warten bis Platz frei > OUT UART_data, uart_tx_port ; Nein => Byte an Sender geben Es wird NICHT s0, sondern sF gesendet! > RET Versuch mal bissel Struktur in dein Projekt zu bekommen. Alle Dateien in ein Verzeichnis ist sehr unübersichtlich, die Xilinxprojekte sind sowieso schon reichlich chaotisch. MfG Falk
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.