Hi,
I am new to microzed and would like some help on how to build a CAN decoder in PL.
How can I use the CAN PS peripherals? What are they for? How are they different from any GPIO?
Any help would be great, thank you!
Paulo
Hi,
I am new to microzed and would like some help on how to build a CAN decoder in PL.
How can I use the CAN PS peripherals? What are they for? How are they different from any GPIO?
Any help would be great, thank you!
Paulo
Hi there,
To give you a really 100% solution, I would need more information about your system / design - however, based on what you have provided, it sounds like you want to use the PS to perform CAN communications - however use the PL IO.
Assuming the above, I would suggest that you use the AXI CAN IP block. You can locate this by creating a new Block Design in Vivado (Under IP integrator in the Project Navigator flow on the left hand side). From there, you can configure to your configuration / pinout / etc. Lastly, build your design and export to the SDK tool.
You will need to ensure you have the proper driver chips external to the PL IO as the pins are NOT protected as a proper CAN bus physical interface chip would be. Using the MicroZed, you can attach this circuit to a PL PMOD connector.
If instead, you want to use the PS CAN bus interface, you can do so by utilizing the PS PMOD and doing everything within the PS. You might need to give something else up as the configuration matrix is limiting based on the available IO pins. You can see this by dropping the Zynq7 Processing System IP into the Block Design and opening it. Then navigate to the Peripheral I/O Pins tab. From there you can see the interactive matrix for configuration of the EMIO pins.
--Dan