mikrocontroller.net

Forum: FPGA, VHDL & Co. Zynqberry als Knoten für ein CAN Bus System


Autor: Mert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Ich versuche mit einem Zynqberry TE0726-03 (SoC XC7Z007SCLG225) einen 
CAN Bus Knoten zu entwickeln. Es soll eine bare-metal Applikation sein. 
Ich bin recht neu in diesem Themengebiete und in diesem Forum. Ich 
versuche alles wichtige aufzulisten, was für die Hilfe notwendig ist. Da 
der SoC in Processing System und Programable Logic aufgeteilt ist, soll 
die Kommunikation vom µC zum CAN-Controller im PS  über den EMIO zum PL 
und dann auf die Pins am Zynqberry stattfinden. Sowohl Senden und 
Empfangen.

Bis jetzt habe ich ein HW Design mit dem IP Integrator in Xilinx Vivado 
entwickelt. Welches aus dem PS besteht und darin den CAN_0 aktiviert, 
Die Ausgänge habe ich dann external gemacht. Danach wurde das Design in 
HDL gewrappt, synth., rtl analyse, I/0 ausgewählt und schlussendlich der 
Bitstream generiert. Die HW wurde im HW Manager connected. Danach wurde 
der Bitstream auf die HW exportiert und das SDK geöffnet.

Im SDK habe ich eine fsbl applikation erstellt. Aus der Xilinx 
Bibliothek habe ich die Source Datei xcanps_polled_example.c in ein 
standalone Projekt eingebettet. LOOPBACK Modus wurde auf Normal Modus 
umgeändert. Danach habe ich ein bootimage als mcs Datei angelegt und mit 
der Reihenfolge die Dateien angelegt, fsbl.elf(bootloader), 
bitstream(datafile), can-projekt(datafile). Das Bootimage habe ich auf 
den QSPI geflashed und danach den FPGA programmiert ( grüne LED ging 
dann aus :/). Nachdem habe ich das can_project gerunned und da beginnen 
die Probleme. Mit dem Oszilloskop kann ich nicht mal ordentliche Signale 
empfangen.

Meine Frage jetzt erstmal, hab ich Schritte vergessen? Ist was im Code 
falsch? Ich kann nicht mal debuggen aber bei run-> Launch on HW(gdb) 
läuft es aber ich kriege keine CAN Signale am Oszilloskop? Ich bedanke 
mich schon im Voraus.

mfg Mert

Autor: Mert Arat (Firma: Student) (me_ar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mein richtiger Account, habe mich wohl vergessen anzumelden.

mfg Mert

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hast du den can bus terminiert?
Was heißt keine richtigen Signale?
Schau dir vor dem tranciever mal das can.tx Signal an

Autor: Mert Arat (Firma: Student) (me_ar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe bis jetzt nicht den Transceiver angeschlossen. Ich habe 
lediglich den zynqberry via USB mit meinem Laptop angeschlossen und 
versuche mit Messspitzen (mit Oszi. angeschlossen) an den jeweiligen 
Pins Spannungen abzulesen, die wie ein CAN- Signal aussehen. Mache ich 
da was falsch. Ich entschuldige mich für meine Unerfahrenheit. Wie würde 
es richtig aussehen? Ist es normal dass beim *program FPGA* die grüne 
LED ausgeht?

mfg Mert

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne dein Board nicht und welches Signal liegt an der LED an?
Wenn es das Done Signal ist und bei nicht konfiguriertem Fpga leuchtet 
kann es sein das diese LED nur anzeigt das der Fpga korrekt konfiguriert 
wurde sprich das bitstream file geladen und akzeptiert wurde.

Can rx und tx kannst du verbinden und damit den tranciever für erste 
loopback Tests weg lassen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
https://wiki.trenz-electronic.de/display/PD/TE0726+CPLD
Schau mal in der Mitte die LED Beschreibung..

LED Description
GREEN  ON when Zynq Done pin is down else OFF
RED  UART activity

Heißt also das der Fpga konfiguriert ist wenn die LED aus ist.

Autor: Mert Arat (Firma: Student) (me_ar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe jetzt die Pins verbunden und am Oszi. eine Spannung 
aufgenommen, jedoch sieht es nach einem Einschaltvorganng auf 5V aus. 
Könntest du eine detaillierte Anweisung geben, was ich machen sollte. 
Danke Voraus.

mfg Mert

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
5v wären schon mal zu viel an den io Pins von dem Fpga.
Auf welche Pins hast du die Signale denn gelegt.
Hast du im Schaltplan geschaut ob die Pins komplett frei sind vom Fpga 
bzw SoC

Autor: Mert Arat (Firma: Student) (me_ar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja aufjedenfall es wäre zuviel. Ich habe es auf den GPIO2 und GPIO3, das 
wären dann Zynq PIN K15 und J14.

mfg Mert

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich gehe davon aus, dass dein Oszi da etwas falsch misst.
Die 2 Pins haben einen Pullup auf 3,3V was erstmal nicht schlimm ist.
Das ist bei CAN TX auch der Idle Zustand der Pins.

Du solltest an den Core mal einen Pin durch routen und einen Userpin 
einfach toggeln lassen.

Was hast du eigentlich an Erfahrungen mit dem Thema Controller und 
FPGAs?

Autor: Mert Arat (Firma: Student) (me_ar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne mich mit der Theorie (Aufbau/Funktionsweise) aus und hatte mal 
ein paar kleine Programmieraufgaben gemacht, aber mit xilinx vivado und 
sdk nicht wirklich was am Hut. Ich habe mir bis jetzt alle Schritte 
durch Foren und Tutorials selber beigebracht. Sonst nichts.

Ich habe jetzt bei vivado die I/O auf PULLUP eingestellt.

"Du solltest an den Core mal einen Pin durch routen und einen Userpin
einfach toggeln lassen."

Was meinst du damit? Ich habe das nicht verstanden :/ Soll ich noch 
einen Pin aktivieren?

mfg Mert

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist, ob der Core läuft und nicht nur die Logik konfiguiert 
ist.
Das sind zwei komplett verschidene Dinge.
Daher würde ich versuchen einen IO Pin vom Core mal durch die Logik mit 
einem Package Pin zu verbinden und durch ein "C" Programm wackeln zu 
lassen.

Kommst du per Jtag mit Vivado in einen Debug Modus um dein Programm zu 
debuggen?

Wenn du mir ein Board zur freien Verfügung stellst könnte ich es selbst 
mal zu Hause versuchen :)

Autor: Mert Arat (Firma: Student) (me_ar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schätze die Logik ist nur konfiguriert. Ich kann dir leider das 
Gerät nicht versenden. Ich habe dir jedoch eine pn geschrieben.

mfg Mert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.