• Content Count

  • Joined

  • Last visited

About miguel_rodrigues

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Yes, that is the correct approach. However, I would note that for the Zybo I had to modify the fdt_high and initrd_high from 0x20000000 to 0x10000000 in u-boot. This is because the DDR in Zybo has 512MB, like the Zedboard. This issue was noted right away as Linux started crashing. The way I did this was build everything from scratch, but maybe it is possible to modify these variables in a u-boot command prompt.
  2. The way I typically do this is reserve the first half of the DDR for the OS (in your case, Petalinux) and the other half for shared memory between CPU and FPGA. You can do that in the device tree, in the bootargs line by adding "mem = 512M". This will cause the OS to only "see" the first 512MB of memory, and you can safely use the remaining DDR for shared memory. In order to access it, you can either mmap it or create a generic-uio driver in the device tree. I recommend the latter. To do this, add the following to your device tree: { [email protected] { #address
  3. Hey soha, Yes, if you create a Device Driver that is mapped to 0x10000000 with a 4K memory space, you can only read/write to that space. You can read/write to other memory addresses using /dev/mem but I would not recommend it, as a buggy application could overwrite memory spaces that the kernel is using and then your OS would freeze/hang or worst. The correct way to do what you want is to create a Device Driver for each memory space you want to write to. Hope this helps
  4. Hey there, I had this issue before when I was powering the Zybo via Micro-USB. Powering the Zybo via an external power supply (5V, 3A) using the barrel plug solved the problem How are you powering the board?
  5. Dear tuan, I would suggest you to follow the tutorial first with the Zybo Base System from Digilent first and only if you succeed, try to adapt the tutorial to Xillybus. Regarding your question: "Are there any possibility to make OS reads the second half of memory but still allows user HW writes to it. Problem of read during write might occur but can be controlled if I divide the user HW memory to several banks and swapping them for read and write purpose. " The user can read/write to all memory. But the OS kernel will only use the first half of
  6. Hello Tuan, I was able to reproduce your error if I skipped this line: " source /opt/Xilinx/Vivado/2015.4/settings64.sh ". echo $PATH source /opt/Xilinx/Vivado/2015.4/settings64.sh echo $PATH It should give you different outputs between the first and the second time you echo. If it doesn't. ensure that the file (settings64.sh) is executable. If it is not: chmod +x /opt/Xilinx/Vivado/2015.4/settings64.sh and retry. Hope this helps
  7. Sorry tuan, I have no answer for your question about some HDMI devices working and others not. My experiences with HDMI here were only connecting the output of a laptop into the Zybo and it worked, never tried with other devices. If you want to understand why some work and why some don't, you would need to debug the HDMI IP and understand the details of the HDMI protocol. You will have better luck asking the developers of the HDMI IP (Digilent guys) on why. A possible answer (note I am only guessing) is that your display can read HDMI inputs with variable resolutions while the HDMI
  8. To write data to memory, you use the AXI Stream protocol. The AXI Stream will then be converted by an AXI Interconnect IP which will convert the AXI Stream into an AXI4, which connects to the S_AXI_HP0 of the PS, as you say. With the ILA's, can you confirm that data is being written to the memory AND from the memory correctly? By default, the OS will occupy the whole DDR (512MB). You will need to explicitly tell the OS to just use half of this memory (0x00000000 to 0x0FFFFFFF). The memory zone where the frames will be stored needs to be outside the OS memory zone, i.e., above 0x1000
  9. Dear tuan, I have done something similar as what you want to achieve. I will give you some general recommendations and if you have more specific questions, feel free to ask Capture the HDMI input using the IPs provided by Digilent, as in HDMI => VGA converter on ZYBO Use AXI Stream to send such amount of data to the DDR, triggering such DMA transaction using your own custom DMA controller (IP that writes to AXI DMA registers) Every time the DMA transaction ends, trigger a new one, always writing to the same DDR memory location. Use ANOTHER DMA transaction
  10. Hi there, I am considering to buy a Zedboard for a UAV project and I would like to know its weight, but I can not find this information anywhere. Do you know where this information is? If not, does someone who has access to a Zedboard can weigh it for me and share the results? Thanks in advance, Miguel
  11. For both the Zynq 7010 and Zynq 7020 commercial grade devices, the maximum operating frequency is 85C (page 23 in here). The Zybo has a Zynq 7010 while the Zedboard and the Pynq have a Zynq 7020. My experience while operating with the Zybo and with Parallella (Zynq 7020) is that they work fine under ambient temperatures of 40C. Never tried above that. Anyway, since the Zynq 7020 (in Parallella) heats a lot more when compared with the Zynq 7010, I have set an alarm for whenever the operating temperature of the chip is above 70C and automatically a fan starts spinning. On the other h
  12. Hello again. I am still having trouble while using AXI IIC IP (option 2). I think I connected the AXI IIC IP correctly in the PL but I am having trouble in sending the correct programming sequence to my device. I do not want to use interrupts (I want to use polling) and I can not find examples to do this. I want to know which routines to call and in what order to do the following: Write 0x00 to register 0x6B of device with ID 0x69 while(1) Read 14 bytes, beginning in register 0x3B of device with ID 0x69 Thanks in advance
  13. Thank you very much I have now been able to connect to my I2C device using option 1). Will certainly try option 2) with AXI IIC IP, thanks again
  14. Hello everybody, I want to connect my Zybo to a gyroscope that communicates via I2C but I have not been able to do it. I want to do this in bare-metal. What I gathered so far is that I have 2 options: 1) connect it directly to the MIO, i.e., to JF PMOD or 2) connect it to another PMOD and from the PL, instantiate an AXI IIC IP and access the values via AXI. Either of the options are fine by me. I have many questions regarding both options. Starting with option 1) Where do I physically connect my gyroscope SCL and SDA lines? Does it depend on the M
  15. Hello jkoller, I verified just now and it is in master-next. Instead of doing git clone -b master-next https://github.com/Digilent/u-boot-Digilent-Dev.git you should do git clone -b master-next https://github.com/DigilentInc/u-boot-Digilent-Dev.git Then if you run grep -r "zybo" you will find zynq_zybo.h under /include/configs/