Search the Community

Showing results for tags 'pmod'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments
    • LabVIEW
    • FRC
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 178 results

  1. I've been working on a project and it is looking pretty nice. It is an ESP32 microcontroller, talking SPI to a PMOD AD5 that has two inputs across a 1 ohm 5W current sense resistor. At the highest ADC gains the steps are 2.5nA, but full range is about 20mA. I am currently currently running with a gain of 8, and can measure currents from a few nA through to about 300mA. Below is a graph of the startup current of another ESP32, with a spike a little after 30s when I get an image over WiFi - for now the data is just logged to a serial port at 50S/s and then I graphed in a Google Sheet. I intend to use it to test the deep-sleep performance in various modes, and to see the impact of firmware changes.
  2. YakirP

    Pmod wifi SDK problem

    Hi i'm using Vivado 2018.2 + Zedboard, my goal is to use the WiFiScan from the examples attached to Pmod WiFi folder. i have build the project in vivado section and exported it to SDK at that point i'm creating new application project, choose C++ project and select finish. i'm getting the following errors: flexible array member 'DHCPDG_T::options' not at end of 'struct DHCPMEM_T' DHCP.h ‪/proj_bsp/ps7_cortexa9_0/include/DEIPcK/utility‬ line 216 C/C++ Problem flexible array member 'DHCPDG_T::options' not at end of 'struct DHCPMEM_T' DHCP.h ‪/proj_bsp/ps7_cortexa9_0/libsrc/PmodWIFI_v1_0/src/DEIPcK/utility‬ line 216 C/C++ Problem flexible array member 'SMGR_T::rgPages' not at end of 'class TCPSocket' HeapMgr.h ‪/proj_bsp/ps7_cortexa9_0/include/DEIPcK/utility‬ line 145 C/C++ Problem flexible array member 'SMGR_T::rgPages' not at end of 'class TCPSocket' HeapMgr.h ‪/proj_bsp/ps7_cortexa9_0/libsrc/PmodWIFI_v1_0/src/DEIPcK/utility‬ line 145 C/C++ Problem flexible array member 'SMGR_T::rgPages' not at end of 'class UDPSocket' HeapMgr.h ‪/proj_bsp/ps7_cortexa9_0/include/DEIPcK/utility‬ line 145 C/C++ Problem flexible array member 'SMGR_T::rgPages' not at end of 'class UDPSocket' HeapMgr.h ‪/proj_bsp/ps7_cortexa9_0/libsrc/PmodWIFI_v1_0/src/DEIPcK/utility‬ line 145 C/C++ Problem flexible array member 'SMGR_T::rgPages' not at end of 'struct DNSMEM_T' HeapMgr.h ‪/proj_bsp/ps7_cortexa9_0/include/DEIPcK/utility‬ line 145 C/C++ Problem flexible array member 'SMGR_T::rgPages' not at end of 'struct DNSMEM_T' HeapMgr.h ‪/proj_bsp/ps7_cortexa9_0/libsrc/PmodWIFI_v1_0/src/DEIPcK/utility‬ line 145 C/C++ Problem thanks for the help
  3. I'm trying to run the PMOD SD IP core on a Nexys 4 DDR, using simple drag and drop from the board tap. I also add a microblaze and an UARTlite for communication. I wish to run the SDK (autogenerated) example of the SD PMOD IP core. I have used the same approach with the OLED and several other PMOD and it worked out fine. But with the SD card it fails, I get these critical warnings. I am surprised there is a problem at all, since I only used the PmodSD IP core, written by Digilent. See below. The file of concern below: Thanks for any help!
  4. hello, I am new to designing with pmod wifi. I want to send audio files from pc to the zybo via pmod wifi and then process it then play it via output port. is it as easy as that example showed here? Bests, Meysam Sh.
  5. So for my senior design project we're using a microblaze to poll a number generator and then write that data to an SD card. I've adapted the demo code provided in the PMOD microsd driver files to take input variables and write them to a string. Then I take that string and write it to the SD card. My problem is that no matter what I try I can't print to multiple lines. I've looked in the DFATFS.h file where all the functions are abstracted but I'm at a bit of a loss. I'll attach a text file containing the subroutine that writes to the SD card (it gets called when ever there is a new value to write). Let me know if theres any other details i didn't provide. sd write.txt
  6. Hi there, I am in need of help communicating with my Pmod AD5 using the SPI on raspberry pi 3. I am pretty new to SPI and have troubleshooted and searched the web for solutions over the past week but have yet to solve this problem. Here are some of the steps that I have done: 1) managed to read values using the Arduino Library linked on the product page and with an Arduino UNO, by connecting VCC of Pmod AD5 to 5V (I am not sure what I cannot read anything when connected to 3.3V) 2) understood what SPI is about and what the Arduino Library is doing (or what I think was logical) - read through the whole AD7193 datasheet to understand the registers etc.. 3) extracted the outputs (Binary/hexa format) that the Arduino was sending to the Pmod AD5, understood them, and attempted to use them in raspberry pi with the spidev library but with no progress .. 4) tested by raspberry pi's SPI (they are enabled) using the same spidev library and successfully communicated and got values from a simpler ADC: mcp3008 using this 5) checked the wiring to ensure everything is intact and correctly connected For my application, I intend to read ADC values up at speeds up to 1kHz over 2 channels and hence have chosen this Pmod AD5. For testing wise, I have connected a potential divider across A1 and A2 on the AD5 and am able to read the voltage changes when using Arduino but not in raspberry pi 3. Here's my python code using the spidev on raspberry pi 3 (have connected to CE0): ####################### START OF CODE ################ import spidev import time spi = spidev.SpiDev(),0) spi.max_speed_hz = 50000 spi.mode=0b00 resp = spi.xfer2([0xFF, 0xFF, 0xFF, 0xFF, 0xFF]) print('Resetting...', resp) time.sleep(0.5) ##resp = spi.xfer2([0x08, 0x18, 0x00, 0x60]) ##print('Enable DAT_STA Bit', resp) ##time.sleep(0.5) resp = spi.xfer2([0x10, 0x00, 0x01, 0x10]) print('Set PGA Gain = 1, Buffer = 1', resp) time.sleep(0.5) ##resp = spi.xfer2([0x08, 0x18, 0x00, 0x64]) ##print('Setting filter rate select bits to 100', resp) ##time.sleep(0.5) ## ##resp = spi.xfer2([0x08, 0x98, 0x00, 0x64]) ##print('Initiate internal calibration, starting w zero-scale', resp) ##time.sleep(0.5) ## ##resp = spi.xfer2([0x08, 0xB8, 0x00, 0x64]) ##print('Full-scale calibration...', resp) ##time.sleep(0.5) while True: #choose channel resp = spi.xfer2([0x10, 0x00, 0x01, 0x00]) resp = spi.xfer2([0x58, 0x00, 0x00, 0x00]) time.sleep(0.1) print('data:', resp) ####################### END OF CODE ################ Here's what most of my output looks like when I run the code (kind of the same code regardless of whether I have or not have anything connected in A1/A2 - it is unreactive even when I connect my potential divider and change the potential): Resetting... [254, 170, 128, 193, 255] Set PGA Gain = 1, Buffer = 1 [0, 0, 0, 0] data: [0, 0, 0, 0] data: [0, 0, 0, 0] data: [0, 40, 128, 0] data: [0, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 232, 191, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 232, 191, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 232, 191, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 232, 191, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 255, 255, 255] data: [255, 232, 191, 255] data: [255, 255, 255, 255] etc... etc... This was the code I used to successfully read from the simpler MCP3008 ADC: ####MCP3008 ## adcnum = 0 #### r = spi.xfer2([1, (8+adcnum)<<4,0]) ## r = spi.xfer2([1, 0x80, 0]) ## print(r) #### result = ((r[1]&3) << 😎 +r[2] #### print(result) ## time.sleep(0.1) For more clarity, this is the Arduino code that I was using and got working with UNO: /************************************************************************ * * Test of the Pmod * ************************************************************************* * Description: Pmod_AD5 * The result of the A / D conversion of the AIN1 channel is displayed on the serial monitor. * * * Material * 1. Arduino Uno * 2. Pmod AD5 (do not touch the jumper and * dowload library * ************************************************************************/ #include <SPI.h> // Call of libraries #include <AD7193.h> AD7193 AD7193; // Creation of the object AD7193 unsigned long valeur; float tension; void setup() { Serial.begin(9600); // initialization of serial communication Init_AD7193(); } void loop() { valeur = AD7193.ReadADCChannel(0); // conversion A/N on input 1 valeur = valeur >> 8; // Extraction of value tension = AD7193.DataToVoltage(valeur); // Recovery of tension Serial.println(""); Serial.print("Valeur="); Serial.print(valeur); Serial.print('\t'); // tabulation Serial.print("Tension="); Serial.print(tension); Serial.println("V"); } // Initialisation du module Pmod AD5 void Init_AD7193(void) { AD7193.begin(); // initialization of Pmod AD5 module AD7193.AppendStatusValuetoData(); // configuration of Pmod AD5 module AD7193.SetPGAGain(1); AD7193.SetAveraging(100); AD7193.Calibrate(); AD7193.ReadRegisterMap(); } Would highly appreciate if anyone can help to give me tips on how to proceed or whether I am doing or understanding anything wrongly. Thank you very much.
  7. varun332

    Pmod CMPS2

    Hi, I am working with the Pmod CMPS2 and an Arduino Uno to get an accurate reading of the direction a user is facing for a personal project. I am having trouble writing the code since the code on the website on Reference Materials is giving me a lot of errors. Is there any other code I can try?
  8. Hi all I'm currently working on a project based on ultrasound. I've created a pulsetransmitting board already which hooks into the zedboards FMC-LPC connector (I needed 64 high-speed channels), yet now I need to make a receiving side as well. Since returning signals are in the range of 250-300kHz, I was looking into ADCs of around 1MSps@12 or 14bits. (max. 4 channels needed) Now is the problem that I can't find any spec on the frequency the zedboard PMODs can handle. Is it possible to have speeds of approx 20MHz or is this out of range of the (high-speed) PMOD connectors? Would it be a better idea to make a board with a female-male connector on top of each other so I can pass the signals which need to be passed to the previous made board (as I only need a couple of its transmitting channels, stack the boards with the FMC-LPC connector) and use the other connections for an ADC board, since the FMC should be capable of higher speeds? any thoughts? Thanks!
  9. Hi! A couple of months ago, I bought a ZYBO Z7-10 board for one of my university labs. Just recently, I was using the JE PMOD ports to interface with an external LCD display. The board was programmed through QSPI Flash through the micro USB port. Unfortunately, a external 5 volt supply leaked into the 3v3 JE PMOD peripheral when the board was powered through the micro USB port. I immediately turned off the power supply and the ZYBO board once this had happened. After turning back on the ZYBO with all PMOD connections detached (to test if the board was still functional), the default demo program that the FPGA should run (with flashing all LEDs in a smooth manner) is a very erratic version of what it once was (LEDs flash randomly). While in the QSPI Flash mode (after the incident), I am not able to reprogram my FPGA design as Vivado does not recognize the ZYBO board anymore through the USB connection. When I change the programming mode jumper to either TJAG or MicroSD, Vivado CAN recognize the ZYBO board and I can successfully field-program the board and run the program. Is it possible that I have permanently damaged the QSPI Flash (or even something worse). If not, is there anything I could do to fix this?
  10. Hi, I am working on Zybo and not entirely sure how the outputs will behave when 2 leds are connected as the figure shows. Pins JE1 and JE2 are configured as PWM outputs for the PL on the same port (JE single-ended standard Pmod port) and the VCC and GND pins shown in the figure are located on the same port as well. The usual thing to do is to supply energy to the external led as shown on the left of the figure, but can I connect a second led as shown on the right at the same time? I understand the if the pin is an output, then current should exit from it, but what happens when current enters? By the way.. I've tested both circuits independently (i'll wait an answer to connect both circuits at the same time) and they turn on the led with the respective duty cicle of each PWM, but still why does it work when a current enters the output pin?
  11. NiLo

    Nexys 3 Pmod Nav Problem

    Hi, I am doing a project on Nexys 3 FPGA board and I am trying to connect Pmod Nav in order to display barometric pressure on PmodOLEDrgb. I am in trouble with Pmod Nav. I have created a Controller that reads via SPI Protocol the 24 bits of 3 data registers and then I have divided this result with value 4097 counts/hPa as it is mentioned in LPS25HB, in order to take the absolute pressure in hPa. The final value should be in range of 260- 1260 hPa. The problem is that the final absolute value of barometric pressure, that I take, is 4095, which means that all bits are stored in 3 registers PRESS_OUT_H, PRESS_OUT_L and PRESS_OUT_XL take the value of '1'. The pins that I have connected are SDI, SDO, SPC, CS_ALT. I have no idea on how to deal with this problem. I would appreciate if someone helped me. Thank you Nik
  12. Serial digital interface (SDI) is a digital video interface used with the most of professional video cameras. It uses BNC connector and operates at speeds of 3 Gb/s or about, depending on the standard. The more detailed specification can be found in wikipedia. Most of the SDI adapters for FPGA use FMC connectors, like this one. There is no FMC connector on Zybo Z7 board, but it does have multiple PMOD ports. Could they probably substitute? If some simple extra circuitry is required, we maybe could build it on the top of some generic PMOD adapter like this. My major doubts are, would such interface be fast enough? I am not aware at which frequency Zybo PMOD port and the custom circuitry attached to it could operate.
  13. Our team has been using the Digilent PmodCAN CAN-Spi module and have been running into issues related to reading the messages from the CANBus. We are using the mcp_can library that is compatible with this module to read messages from the CANBus, but the messages are coming in out of order and will sometimes miss messages when the CANBus is loaded with a higher number of messages in a short amount of time. I have attached the code I am using that returns messages out of order or misses messages completely. The code will miss around half of the messages when the CANBus has a Bus message load higher than 40% and some of the caught messages are out of order. mcp_can.h.txt mcp_can_dfs.h.txt CANTest.ino.txt mcp_can.cpp.txt
  14. Hello All, I am getting a make error when attempting to build the PMOD ESP32 driver in Xilinx SDK. I will attach a picture of the the error and my SDK flow. I included all the path directories for the console application folder in the C/C++ Build Directories. The problem is essentially that "XPAR_PS7_UART_0_DEVICE_ID" doesn't exist. Is it under a new name perhaps? Should I export "Main.C" to the "src" folder? Any help is appreciated! **This is the line of code that is giving me the issue** "#define HOST_UART_DEVICE_ID XPAR_PS7_UART_0_DEVICE_ID"
  15. Hey All, I am trying to make a simple IP block design in Vivado 2018.3 to test the ESP32 PMOD out using AT commands for data transmission. I will attach a picture of my current block diagram to this post. I am getting a critical error (reference below) that says the IP has a packaged board value of "" which is for the Zybo z7 board. My questions are: Q1)Will this design work regardless of this error, as the Zybo and Zed boards are similar and both run off the zynq-7 architecture? Q2)If the answer to Q1 is "no", is there a method of adapting this IP for the Zedboard? (I should be using the latest IP library from Digilent) [IP_Flow 19-4965] IP PmodESP32_axi_gpio_0_0 was packaged with board value ''. Current project's board value is ''. Please update the project settings to match the packaged IP.
  16. Hi , I am confronting dimensions mismatch in my design . So could I solve this issue by manipulating the dimension of PmodDA3_0 (pin : AXI_LITE_GPIO_wdata[31:0] ) , and keeping the rest of my design untouched ? If yes , how ? If no, what should I do? Kindly see the attached picture . Kind Regards
  17. Ahmed Alfadhel


    Hi , I am wonder why there are many Pins in the PmodDA3 IP core, while there are only six in the actual model ! Kindly, your explanations. I attached two pictures. Thanks,
  18. Ahmed Alfadhel


    Hi , I have encountered this error during runnuing Vivado Simulator : "formal port ja_pin3_io of mode inout cannot be associated with actual port ja_pin3_io of mode out " What I can do for avoid this error ? Kind Regards
  19. Hi, I wonder how fast I can trigger the HB3 Pmod (H-Bridge). Neither the datasheet or schematic give the references for its transistors and FETs. Is there somewhere I can find this information? Datasheet: Schematic:
  20. Hello Technicians, I want to output a signal (FHSS_TX) in 2nd picture via a Pmod_DA module. In fact, I have the IP core of this Pmod (Pmod_DA3) , but I don't know how to merge the second design (my project in 2nd picture) with the first (Pmod & microbalze 1st picture) to out put my signal via the Pmod_DA3 , Kindly , find the attached pictures . Looking forward your supports . Thanks in advance.
  21. Ahmed Alfadhel


    Hi , Am I need to use Microblaze processor with Pmod ? In fact I read that in this link : Is there any way simpler to use Pmod IP ? Thanks in advance.
  22. Hi all, I've built with the Nexyx4 DDR board a system running Linux. In my running HW design, I've added the onboard temperature sensor of the board and the PMOD A connector to connect a I2C TMP3 temperature sensor. The HW interface for the onboard temperature sensor is the AXI IIC interface. For the TMP3 sensor with the Digilent's vivado library (as explained in:, it's the AXI LITE IIC interface. With the Linux I2C tools, I see the onboard sensor: nexys4ddr:/# uname -r 4.14.0-00493-gb68293ad2c93-dirty nexys4ddr:/# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- 4b -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- And I can read temperature with the Linux I2C API: nexys4ddr:/# tsttemp TEMP=29.2 oC nexys4ddr:/# But I don't see the I2C TMP3 sensor. My questions are: - The vivado TMP3 instance has a I2C interface (AXI LITE IIC). Can I use the Linux I2C API? If yes, on the PMOD ja port, what are the pins of the connector corresponding to SCL, SDA (easy for ground and 3V3 ;-)? I didn't find this information in the Digilent's vivado library. - If I I can't use the Linux I2C API, I must generate by hand and by software the SCL and SDA signals and what is the role of AXI LITE IIC interface? In this case, would it better to use directly the IIC AXI interface as with the onboard sensor and precise after in a XDC file connexions between to the PMOD A port and TMP3 sensor? Thank you for your help. Pat.
  23. Hi all, This is a quick and dirty howto. This howto describes how to use I2C modules (onboard and through PMOD connector) under embedded Linux. I've chosen to build my own Linux distro based on Linux kernel source for MicroBlaze softcore and busybox project for the init RAM DISK. My board is the Nexys4 DDR board. If you respect the following requirements for the HW design compatible with Linux, you can use Petalinux too. HW Vivado requirements (according to Xilinx UG1144) design to boot Linux: MicroBlaze with MMU support by selecting either Linux with MMU or Low-end Linux with MMU configuration template in the MicroBlaze configuration wizard. External memory controller with at least 32 MB of memory. Dual channel timer with interrupt connected. UART with interrupt connected. Ethernet with interrupt connected. Note that all peripherals you use must be interrupt capable. For the UART peripheral, if you have not enabled interrupts, you have no Linux console outputs. For the Nexys4 DDR, you can follow this online tutorial: At this stage, for the Nexys4 DDR board, you can add the onboard i2C temperature sensor (ADT7420) that uses the AXI IIC IP block. I've added a second external temperature sensor (PMOD TMP3) connected to PMOD JA pins of the Nexys4 DDR board. I've chosen to connect SCL TMP3 pin to JA1 PMOD JA pin (C17 FPGA pin) and SDA MP3 pin to JA2 PMOD JA pin (D18 FPGA pin). You connect GND and 3V3 pins from PMOD JA connector to corresponding TMP3 pins. You have finally 4 pins to connect. You obtain the Vivado design shown below. Notice that both AXI IIC IP blocks have interrupts connected for Linux compatibility. For the TMP3 sensor, I have an external port named temp3_sensor. I've created a XDC file containing: set_property -dict { PACKAGE_PIN D5 IOSTANDARD LVCMOS33 } [get_ports { eth_ref_clk }]; # Sch=eth_ref_clk set_property -dict { PACKAGE_PIN C17 IOSTANDARD LVCMOS33 } [get_ports { tmp3_sensor_scl_io }]; set_property -dict { PACKAGE_PIN D18 IOSTANDARD LVCMOS33 } [get_ports { tmp3_sensor_sda_io }]; You can see that: tmp3_sensor_scl_io signal is for SCL I2C signal. tmp3_sensor_sda_io signal is for SDA I2C signal Please respect notation: xxx external I2C port gives xxx_scl_io and xxx_sda_io signal names in the XDC file. Generate .bit file. Launch Vivado SDK tool, install the device tree plugin and generate Device Tree files. You can follow this link: Copy the generated pl.dtsi file (under project_1/project_1.sdk/device_tree_bsp_0/ directory) into arch/microblaze/boot/dts/ Linux directory. Use the generated system-top.dts file (under project_1/project_1.sdk/device_tree_bsp_0/ directory) to create the xilinx.dts file into arch/microblaze/boot/dts/ Linux directory. Be carefull with stdout options in the xilinx.dts file if you want Linux output enabled. Mine is: /dts-v1/; /include/ "pl.dtsi" / { chosen { bootargs = "console=ttyUL0,9600"; linux,stdout-path = &axi_uartlite_0; stdout-path = &axi_uartlite_0; }; aliases { ethernet0 = &axi_ethernetlite_0; serial0 = &axi_uartlite_0; i2c0 = &axi_iic_0; i2c1 = &axi_iic_1; }; memory { device_type = "memory"; reg = <0x80000000 0x8000000>; }; }; &axi_ethernetlite_0 { local-mac-address = [00 0a 35 00 00 00]; }; Generate your init RAM Disk for root File sytem. I suppose that you can do this. Generate your Linux kernel. I suppose that you can do this: $ make ARCH=microblaze CROSS_COMPILE=microblazeel-xilinx-linux-gnu- simpleImage.xilinx -j 4 Program the FPGA device and download the simpleImage.xilinx file (kernel + init RAM Disk) under arch/microblaze/boot directory into RAM with the JTAG interface and finally execute. That's all folks! Ramdisk addr 0x00000000, Compiled-in FDT at c03ad4f8 Linux version 4.14.0-00493-gb68293ad2c93-dirty (kadionik@ipcchip) (gcc version 8 setup_cpuinfo: initialising setup_cpuinfo: Using full CPU PVR support wt_msr_noirq setup_memory: max_mapnr: 0x8000 setup_memory: min_low_pfn: 0x80000 setup_memory: max_low_pfn: 0x88000 setup_memory: max_pfn: 0x88000 Zone ranges: DMA [mem 0x0000000080000000-0x0000000087ffffff] Normal empty Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000080000000-0x0000000087ffffff] Initmem setup node 0 [mem 0x0000000080000000-0x0000000087ffffff] On node 0 totalpages: 32768 free_area_init_node: node 0, pgdat c0525af4, node_mem_map c07a2000 DMA zone: 256 pages used for memmap DMA zone: 0 pages reserved DMA zone: 32768 pages, LIFO batch:7 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists, mobility grouping on. Total pages: 32512 Kernel command line: console=ttyUL0,9600 PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 121948K/131072K available (3765K kernel code, 121K rwdata, 1312K rodata) Kernel virtual memory layout: * 0xffffe000..0xfffff000 : fixmap * 0xffffe000..0xffffe000 : early ioremap * 0xf0000000..0xffffe000 : vmalloc & ioremap NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 irq-xilinx: /amba_pl/interrupt-controller@41200000: num_irq=5, edge=0x6 /amba_pl/timer@41c00000: irq=1 clocksource: xilinx_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_is xilinx_timer_shutdown xilinx_timer_set_periodic sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 21474836475ns Calibrating delay loop... 49.15 BogoMIPS (lpj=245760) pid_max: default: 4096 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) random: get_random_u32 called from bucket_table_alloc+0x2e4/0x35c with crng_ini0 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 191s NET: Registered protocol family 16 clocksource: Switched to clocksource xilinx_clocksource NET: Registered protocol family 2 TCP established hash table entries: 1024 (order: 0, 4096 bytes) TCP bind hash table entries: 1024 (order: 2, 20480 bytes) TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 128 (order: 0, 6144 bytes) UDP-Lite hash table entries: 128 (order: 0, 6144 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. random: fast init done Skipping unavailable RESET gpio -2 (reset) workingset: timestamp_bits=30 max_order=15 bucket_order=0 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) io scheduler mq-deadline registered io scheduler kyber registered Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled 40600000.serial: ttyUL0 at MMIO 0x40600000 (irq = 5, base_baud = 0) is a uartlie console [ttyUL0] enabled brd: module loaded libphy: Fixed MDIO Bus: probed xilinx_emaclite 40e00000.ethernet: Device Tree Probing xilinx_emaclite 40e00000.ethernet: Failed to register mdio bus. xilinx_emaclite 40e00000.ethernet: MAC address is now 00:0a:35:00:00:00 xilinx_emaclite 40e00000.ethernet: Xilinx EmacLite at 0x40E00000 mapped to 0xF02 i2c /dev entries driver NET: Registered protocol family 17 Freeing unused kernel memory: 2296K This architecture does not have kernel memory protection. Hostname : nexys4ddr Kernel release : Linux 4.14.0-00493-gb68293ad2c93-dirty Kernel version : #120 Thu Dec 6 16:51:57 CET 2018 Please press Enter to activate this console. nexys4ddr:/# For the first I2C sensor (onboard ADT7420 sensor of the Nexys4 DDR board), we must use the /dev/i2c/0 (or /dev/i2c/i2c-0) character driver file (Major=89 minor=0). For the second I2C sensor (external TCN75A PMOD TMP3 sensor), we must use the /dev/i2c/1 (or /dev/i2c/i2c-1) character driver file (Major=89 minor=1). nexys4ddr:/# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- 4b -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- nexys4ddr:/# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- You can now use the Linux API for reading the I2C sensors... Pat.
  24. Hi, I want to connect Pmod to Arduino Uno. From Arduino pins we get 5V so does this refer only to power supply (which we have on Arduino board) or for others pins too? Is it safe to connect it directly to Arduino or I have to use voltage dividerfor other pins? Thank you.
  25. Hi, I have started using PMOD BLE recently and I can make a connection in between BLE and PC using a terminal (with Nexys4DDR making a direct connection in between). However, when I write a VHDL code, describing what I made on the terminal one by one, the BLE device stucks at rebooting. For both applications I use the following sequence that is described in "RN4871_user_guide.pdf" page 59 : - Send $$$ - Wait a second - Send SS,40<CR> (this is to select UART Transparent feature only) - Wait a second - Send R,1<CR> - Wait a second - Wait for an ASCII entry but, at "R,1<CR> ", the BLE device turns the blue LED on (which is LD1 on schematic) and it does not shuts it off no matter what. While so, (I mean when the LED is ON) the iOS application SmartDiscover (or anyother terminal) cannot see the module. So, I cannot reach the device at all. Besides, the device returns this when connected via PC terminal (through cable) => CMD> AOK<\r><\n>CMD> Rebooting<\r><\n>%REBOOT% and returns this when FPGA communicates with the device directly => CMD> AOK<\r><\n>CMD> Rebooting<\r><\n> so, it does not return me %REBOOT% string, but seems like it stucks at some point where it is trying to reboot itself. Any help with this would be very nice at this point, Thanks in advance, Bera