Jump to content

ilovefpga

Members
  • Posts

    7
  • Joined

  • Last visited

Posts posted by ilovefpga

  1. I followed this forum and changed the constraint files of the Zybo Z720 in Vivado and successfully generate bitstream and the xsa file to import into Vitis. https://forum.digilentinc.com/topic/8943-pmod-as-input-and-output-gpio/

    #Pmod Header JE                                                          

    set_property -dict { PACKAGE_PIN V12  IOSTANDARD LVCMOS33 } [get_ports { je_pin1_io }];  

    set_property -dict { PACKAGE_PIN W16  IOSTANDARD LVCMOS33 } [get_ports { je_pin2_io }];           

    set_property -dict { PACKAGE_PIN J15  IOSTANDARD LVCMOS33 } [get_ports { je_pin3_io }];            

    set_property -dict { PACKAGE_PIN H15  IOSTANDARD LVCMOS33 } [get_ports { je_pin4_io }];          

    set_property -dict { PACKAGE_PIN V13  IOSTANDARD LVCMOS33 } [get_ports { je_pin7_io }];      

    set_property -dict { PACKAGE_PIN U17  IOSTANDARD LVCMOS33 } [get_ports { je_pin8_io }];       

    set_property -dict { PACKAGE_PIN T17  IOSTANDARD LVCMOS33 } [get_ports { je_pin9_io }];         

    set_property -dict { PACKAGE_PIN Y17  IOSTANDARD LVCMOS33 } [get_ports { je_pin10_io }];   

    I am able to control the GPIO pins of port JF on the Zybo Z720 using the following code, how do I edit this so that I am able to turn on/off LEDs using the Pmod port JE instead.

    #include "xil_cache.h"

    #include "xparameters.h"

    #include "stdio.h"

    #include "xparameters.h"

    #include "xuartps.h"

    #include "xtime_l.h"

    #include "xgpiops.h"

    #include "sleep.h"

    #include "xil_io.h"

    #include "xil_types.h"

    #include "xil_printf.h"

    #include "sleep.h"

    #include "stdlib.h"

    #include "string.h"

     

    #define HOST_UART_DEVICE_ID XPAR_PS7_UART_1_DEVICE_ID

    #define HostUart XUartPs

    #define HostUart_Config XUartPs_Config

    #define HostUart_CfgInitialize XUartPs_CfgInitialize

    #define HostUart_LookupConfig XUartPs_LookupConfig

    #define HostUart_Recv XUartPs_Recv

    #define HostUartConfig_GetBaseAddr(CfgPtr) (CfgPtr->BaseAddress)

    #define PMODESP32_UART_BASEADDR XPAR_PMODESP32_0_AXI_LITE_UART_BASEADDR

    #define PMODESP32_GPIO_BASEADDR XPAR_PMODESP32_0_AXI_LITE_GPIO_BASEADDR

    #define COUNTS_PER_SECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ /2)

    #define TIMER_FREQ_HZ 100000000

    #define MAX_WIDTH 320

    #define MAX_HEIGHT 240

    #define MAX_BUTTON 16

     

    #ifdef __MICROBLAZE__

    #define HOST_UART_DEVICE_ID XPAR_AXI_UARTLITE_0_BASEADDR

    #define HostUart XUartLite

    #define HostUart_Config XUartLite_Config

    #define HostUart_CfgInitialize XUartLite_CfgInitialize

    #define HostUart_LookupConfig XUartLite_LookupConfig

    #define HostUart_Recv XUartLite_Recv

    #define HostUartConfig_GetBaseAddr(CfgPtr) (CfgPtr->RegBaseAddr)

    #include "xuartlite.h"

    #include "xil_cache.h"

    #else

    #define HOST_UART_DEVICE_ID XPAR_PS7_UART_1_DEVICE_ID

    #define HostUart XUartPs

    #define HostUart_Config XUartPs_Config

    #define HostUart_CfgInitialize XUartPs_CfgInitialize

    #define HostUart_LookupConfig XUartPs_LookupConfig

    #define HostUart_Recv XUartPs_Recv

    #define HostUartConfig_GetBaseAddr(CfgPtr) (CfgPtr->BaseAddress)

    #include "xuartps.h"

    #endif

     

    #define PMODESP32_UART_BASEADDR XPAR_PMODESP32_0_AXI_LITE_UART_BASEADDR

    #define PMODESP32_GPIO_BASEADDR XPAR_PMODESP32_0_AXI_LITE_GPIO_BASEADDR

    #define BLOCK_SIZE 40

     

    void startup();

     

    XGpioPs_Config *ConfigPtr;

    XGpioPs output;

     

    int main() {

      startup();

      while(1)

      {

      XGpioPs_WritePin(&output, 13, 1); //led on (pin 1,2,3,4)

      XGpioPs_WritePin(&output, 10, 1);

      XGpioPs_WritePin(&output, 11, 1);

      XGpioPs_WritePin(&output, 12, 1);

    }

     

      void startup(){ //initialize pins for JF

     

      ConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);

      XGpioPs_CfgInitialize(&output, ConfigPtr, ConfigPtr->BaseAddr);

     

      XGpioPs_SetDirectionPin(&output, 13, 1);

      XGpioPs_SetOutputEnablePin(&output, 13,1); //pin1 JF1

     

      XGpioPs_SetDirectionPin(&output, 10, 1);

      XGpioPs_SetOutputEnablePin(&output, 10,1); //pin2 JF2

     

      XGpioPs_SetDirectionPin(&output, 11, 1);

      XGpioPs_SetOutputEnablePin(&output, 11,1); //pin3 JF3

     

      XGpioPs_SetDirectionPin(&output, 12, 1);

      XGpioPs_SetOutputEnablePin(&output, 12,1); //pin4 JF4

    }1874415418_Screenshot2022-01-10095818.thumb.png.b4ce8838000b9d20d665646c374943af.png

  2. Hi, I am currently working on IOT control using ZYBO-Z7 FPGA with the Pmod ESP32, my goal is to read multiple data across 8 fields simultaneously, my current method is reading data from individual fields manually using the code given from this user from a digilent forum (https://forum.digilentinc.com/topic/21634-retrieve-data-from-thingspeak-through-using-pmod-esp32/), this method makes the control for IOT very slow as I have to individually wait for 8 fields of data one by one. My current solution I am testing out is to read json data using the C++ code below, however the json file is a placed in constant and can only read from that specific array and does not update real time data from thingspeak, how do I get my ZYBO-Z7 to process multiple data from a single feed with 8 fields all from one json URL? Much needed help please and thanks.

    Sorry if I am not clear i can clarify more if need be.

    Current code which reads data from fields 1 by 1 

    backup2 19112021.txt 

    Testing code using json format

    jsontest.txt

  3. I am coding C++ in Vitis 2019.2 on the Zybo Z720 and I am only able to get temperature readings from pin 1-6 of the Pmod port. Currently trying to get the Pmod HYGRO to be able to read from both top 6 pins and bottom 6 pins, how do I do that? Attached are the code used and readings which I got from the top 6 pins and bottom 6 pins respectively. 

    pmodpins.png.ca949d4e2dc9afdb3102f7c616885700.png

    This is my Vitis code

    Hygrocode.png.0a6a044b9ecc8b28109bb28614f5e7ad.png

    Readings from top 6 pins of the Pmod port (accurate reading)

    Hygroworking.png.178bbedca163a9a1cbe7a95cd725ea85.png

    Readings from bottom 6 pins of the Pmod port (error reading)

    Hygrofail.png.a69ac47eb4e2403fb4afbda7ce6ef96a.png

×
×
  • Create New...