• Content Count

  • Joined

  • Last visited

About Max_van_Daalen

  • Rank

Recent Profile Visitors

401 profile views
  1. Hi @jpeyron, Thanks for the reply! I have made some progress... It appears that you can only merge bit-streams with ELFs intended for soft processors like MicroBlaze (in Vivado use "add sources" and then the tools "associate ELF files" option), but you can't do it for the Zynq's built in ARM cores. So instead I've created a BOOT.ini file containing the FSBL, the bit-stream and the Ada ELF. I then boot this from an SD card and this works perfectly. I need to see if I can find a USB/JTAG driver for the AdaCore GPS IDE (not sure if this exists). I now have a secondary problem, the Ada run-time doesn't seem to be able to access my custom AXI components. The C code generated by the SDK works, so I assume it's doing some additional initialisation. More fun! Regards, Max
  2. Hi all, I've recently started to learn / play with Ada using the GNAT GPS 2017 IDE from AdaCore, so far on STM32 systems. I very much like Ada, I hadn't realised that it was such a capable low level development language and as a bonus strongly typed. Anyway, in the free version of GPS, AdaCore supply "small" and "full" Ravenscar run-times for the Zynq. As an experiment, I've used GPS to write some Ada that compiles into an ELF and appears to be correctly built for "Zynq7 Processing System" (in terms of initialisation, vectors etc. Cleaned using an ELF viewing tool). The one thing I can't figure out is how to merge the Ada ELF file with my Vivado BIT file. In Vivado I've built a simple processing example that uses a custom AXI component to operate the LEDs on my Zybo. I've written a C version of my Ada using the Vivado make sure the BIT file works. I can finds lots of posts on-line explaining how to merge BIT and ELF files for the MicrobBlaze processor, but nothing for the built-in Zynq ARM cores. I had naively assumed it would be something you could do from within Vivado (you can for the MicroBlaze). I've tried to use the "updatemem" command but have struggled to find some of the input files that it requires and I'm not even sure if it will do what I want. Does anyone have any suggestions? Many thanks! Max
  3. Thanks for the reply Gau. i did eventually figure this out via the Xilinx app note posted earlier and the Digilent schematics. I ended up building a x2 PMOD PCB to interface my Raspberry Pi CAM2, although it's now redundant as I just brought a Z7-20 (needed the bigger FPGA).
  4. That's interesting, thanks for pointing it out! I did wonder if this would happen, I'm keen to see how it works. I did eventually manage to get most of my own implementation working with the Raspberry Pi camera, it has a few annoying bugs and loose ends which I really must make some time to sort out. Once it's fully working I'll upload it to GitHub and post a link.
  5. Hi Sagi, I also have an OV13850, although for my first attempt I'll be targeting the Raspberry Pi camera (v2 with the Sony IMX219 part) as the newer Zybo-Z7 has an appropriate connector and the Xilinx recommended termination (as linked to in my second post, worth a look if you've not seen it). This project is purely personal, I would be nice to have a copy of the spec, perhaps one day I'll get to see it as part of a commercial project. Having said that, I've now read so many posts and seen a number of other open source implementations that many of the details are out there, but in a very diffuse sense. The latest version of Vivado (2017.3) does include the MIPI core, but you need a license to be able to instantiate an instance (I've not tried, but I believe you can get a 30 day evaluation for free). I do find it interesting that Digilent have included a MIPI port / interface on the new Zybo, especially considering the closed nature of MIPI. I suspect that the new Zybo will trigger a few more open source examples, perhaps mine will be one of them if I can get it going. Cheers, ...Max
  6. Hi Sagi, Many thanks for the answer, it's very helpful and I will definitely take a look at that part. This project is already and will continue to be a voyage of discovery. With respect to the IP core, my plan was to try and have a go at implementing one based on the open source VHDL at the link below. I've not started yet with any implementation as I'm still at the stage where I'm figuring stuff out. As the Zybo-Z7 now has a MIPI interface, I hope there'll be a few more examples to look at in the future. If I succeed in getting something that works, I'll definitely publish it up at GitHub for others to play. It's a shame that MIPI is a "closed" standard. Cheers, ...Max
  7. Hi @jpeyron, thanks for the reply! I've continued to investigate this and as far as I can tell the Raspberry Pi v2 camera uses the "high speed" version of D-PHY and from the Zilinx app note it looks as if I can use the LVDS_25 IO Standard. This also corresponds to the equivalent configuration in the XDC file for the Z7 boards. I did also notice that the Vcco pins on both old and new Zybo boards were all fixed at 3v3, but perhaps this doesn't matter when the LVDS IOs are being used as inputs, not completely sure on this (although I did also see a forum post elsewhere reporting an attempt to do something similar with a reasonable degree of success). So I reckon / hope that I can use Pmod JD on the original Zybo. I selected JD as it's the only Pmod with a set of SRCC differential clock pins, which I would use for the CSI-2 clock lane. I would also need to use a second Pmod, but only for the "cam clock" and "cam gpio" signals. I was planning to make up an adaptor PCB / custom PMod. Looking forward to reading what find out about the CSI-2 receiver. I'm based in the UK and annoyingly none of the distributors here have yet stocked up on the new Z7 boards. I will buy one, possible imported from Digilent directly, but in the mean time I'd like to have a go with my trusty Zybo (if it's possible). Thanks again for you help!
  8. Since posting my question, I've come to realise that implementing the "electrical" MIPI interface is a bit more involved than I first realised. Having studied the schematic for the Zybo-Z7 I can that the guidelines suggested in the following Xilinx application note have been implemented. I'm still not clear as to whether or not the Zybo's IO blocks/banks are wired in such a way to allow me to do this via the PMODs. However, to keep life simple I think I'll buy a Z7 and experiment with my 2-lane Raspberry Pi v2 camera. I'd still appreciate any comments from anyone that knows about this. Cheers!
  9. Hi all, I have a Zybo and have been using it successfully for a variety of HDMI / VGA video projects. I'd like to have a go at interfacing a Raspberry Pi V2 camera. I understand that I need to implement a MIPI CSI-2 receiver in VHDL and I have a reasonable idea of how to proceed. This may take a bit of effort, but that's part of the fun! However, what I'm not sure about is whether I can specify the appropriate 1.2v IO Standard that's required on the Zybo board via the high speed PMOD ports? Or, will I need to buy one of the newer Zybo-Z7 boards? I realise that the newer Zybo-Z7 boards have a 2 lane MIPI connector (which is very convenient), so I'm assuming that the connected Zynq pins can run in the appropriate 1.2v differential IO Standard. But for this to work does the newer Zybo-Z7 have a specific 1.2v VCC supply to facilitate this? (that perhaps the Zybo doesn't have) I will probably upgrade to the newer board anyway, but would like to understand if this is possible on the older Zybo. Many thanks!