Search the Community

Showing results for tags 'i2c'.

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 41 results

  1. Hello, I am a new user of analog discovery. I have an Arduino talking to my sensor through a 5v to 3.3 V level converter using I2C protocol. The code works fine and gets me the desired output on the serial port but when I try to connect the SDA and SCL lines to the analog discovery on the pin 7 (Data) and Pin 15 (clock) lines, I dont see any signals getting recorded. I am interested in seeing the clock and data lines with the addresses and data that is being written on the lines. But it either gives me Error status or no result after getting triggered. The snapshot is attached below: I wanted to know if I am following all the necessary steps in initializing the analog discovery. 1. Connect the wires to the 2 digital lines of analog discovery ( Pin 7,15 here) 2. Assign the right DIO pins as data and clock lines in the waveforms software. 3. Click the Red T button to set the trigger option. --> Start signal as trigger is the condition I used in the image below. but I also tried different trigger settings like, SDA = Ignore and SCL = Rising edge. Both of them gives me the error blocks as below. 3. Click Run button 4. Reset the Arduino. 5. Stop. I am interested in seeing the start, addresses in hex, ACK/ NACK signals labeled. Can anybody tell me if there is some required program to be run before I able to see them? Thanks & Regards,
  2. Would it be possible to emulate a I2C slave using the digital discovery (using scripting)? If not, is this something that could potentially be added in the future, or are there any HW limitations that make this infeasible?
  3. smutlu1

    SDK Coding

    Its been a few months since I've been introduced to FPGA design and have successfully completed some basic projects, however, while trying to effectively establish communication with devices via protocols such as uart, spi, and i2c I usually fall short. From what I understand you must enable these through the ZYNQ7 processor on block design or drop in their respective IP blocks. How to actually connect these to external devices becomes fuzzy for me and interpreting/modifying the SDK code is very difficult. In short I'm looking for some help/resources to get the ball rolling on these type of projects, and how to actually understand/develop the C code for processor myself, on both the Microzed and Zybo development boards. Thank you
  4. I'm working with a sensor that uses clock stretching to tell the master when data is ready. When using the AD2 as an I2C master, the analyzer insists there's a NACK after an address somewhere, but I can't see where. The first attached picture shows a write to 0x40, ACK, 0xF1, restart, read from 0x40, ACK, then slave holds both SCL and SDA low. About 68ms later (seen in the second attached picture), the slave releases the bus indicating the data is ready. The protocol analyzer shows the correct sequence from its point of view, then shows "NACK after address" even though all bytes were clearly ACK'd. From what I can tell, I'm using everything correctly. Does WaveForms 2015 actually support I2C clock stretching when acting as an I2C master? As a matter of curiosity, you might be wondering why I chose to use an analog analyzer to view the I2C lines. That's because I can't seem to coerce the logic analyzer to behave while I was also using the protocol analyzer. Is that a software limitation, a bug, or am I just using it wrong?
  5. Hi there, I am using the chipKIT Wi-FIRE with the basic I/O shield and MPLABX IDE. I want to read out the temperature sensor of the I/O shield via I2C and write the value to the OLED display. I do see a value on the OLED-display that reacts on the sensors environment (i.e. it increases when I put my finger on the sensor), however it is clearly wrong as I get 360°C for room temperature (before anyone asks: I know I have to multiply the sensor value with 2^-4 to get a the correct numerical value). To initialize the bus and read out the sensor value I followed an example found on, but it goes much beyond what I actually want to accomplish and modifying that code just leads to the result mentioned above. So here is my question: is there some starter code to simply read out the temperature sensor in this setup?
  6. I just got myself an Analog Discovery 2. I tried probing an I2S stream on a CODEC, using the Logic Analyzer function. I noticed that the software is capable of decoding Left and Right channel samples as hex or singed decimal numbers - which is not much help when trying to make sense of audio signals. Is there any way to reconstruct left and right channel audio wave-shapes represented as analog charts for better observation? Can it be exported as channels on the oscilloscope and compared with other analog signals or Is it possible to see the spectrum of the Left and Right channel audio streams from the I2S signals?
  7. zoggx003

    Zybo audio codex setup

    I am currently trying to setup the ssm2603 audio codex on the zybo board to output audio, with a purely rtl design. I am having issues setting up the audio codex via i2c. I am wondering about how you should send the address information to the audio codex to initialize the setup registers. Below is an RTL state machine of how I am trying to write the register values to the codex. Can someone verify that this is the correct way to address the registers? I am unable to get anything out from the audio codex currently, and I don't think my initialization is working. always @(*) begin next_state = IDLE; address = 7'h0F; data = 8'hFF; case(state) IDLE: begin start = 0; address = 7'h0F; data = 8'hFF; next_state = (setup_audio_codex) ? WR_POWER_MGNT : IDLE; end WR_POWER_MGNT: begin start = (busy) ? 0 : 1; address = 7'h06; //power management data = 8'b00000111; //PWROFF,CLKOUT,OSC,OUT,DAC,ADC,MIC,LINEIN next_state = (ready) ? WR_DIG_AUDIO_IF : WR_POWER_MGNT; end WR_DIG_AUDIO_IF: begin start = (busy) ? 0 : 1; address = 7'h07; //digital audio I/F data = 8'b00000010; //BCLKINV,MS,LRSWAP,LRP,WL,FORMAT next_state = (ready) ? WR_DIG_AUDIO_PATH : WR_DIG_AUDIO_IF; end WR_DIG_AUDIO_PATH: begin start = (busy) ? 0 : 1; address = 7'h05; //digital audio path data = 8'b00000000; //HPOR,DACMU,DEEMPH,ADCHPF next_state = (ready) ? WR_ANA_AUDIO_PATH : WR_DIG_AUDIO_PATH; end WR_ANA_AUDIO_PATH: begin start = (busy) ? 0 : 1; address = 7'h04; //analog audio path data = 8'h00010010; //SIDETONE_ATT,SIDETONE_EN,DACSEL,BYPASS,INSEL,MUTEMIC,MICBOOST next_state = (ready) ? IDLE : WR_ANA_AUDIO_PATH; end endcase end
  8. Hi, I have a problem with my i2c communication with digilent pmod CMPS. I've routed i2c-0 via EMIO to the Pmod. Pullups are enable. I can send only one frame with initialization data and then I can't send anything. I checked the transmission using logic analyzer, and I have no idea why the i2c port is blocked. To send another frame i have to restart system. I would be grateful for any help. I2c is rather OK because gyroscope works fine.
  9. Hello guys; Can you refer me to a quick guide about how to use Audio signal on ZYbo board? I just want to know if there is any simple tutorial about how to get data from audio jack and have in on Arm side. Appreciate your comments in advance.
  10. Hi, I recently bought an Arty Board to get myself acquainted with FPGA/µC development. Currently I focus on µC programming using Microblaze. Following the tutorials provided under I managed to read out a PmodMaxSonar using UART and PWM, using a pmod_bridge configured in the Block Design within Vivado, and write the measured values on a PmodSSD seven segment display. Next I would like to work with I2C to read from a PmodTMP2 temperature sensor. Currently I am not very successful in doing so. I again use a pmod_bridge where the Top-row is set to i2c and the bottom row to none. Attached to the bridge I have a axi iic ip core, which is then integrated using the connection automation of vivado. I was trying to make use of the provided examples in the SDK for axi_iic. Analyzing the bus using a oscilloscope I measure voltage level of 1.6V for both scl and sda. I understand that both should be pulled up using resistors. I would expect that this is taken care of by the pmod_bridge or the axi_iic blocks. I attached the corresponding block design as system.pdf. Using: Status = XIic_SetAddress(&Iic, XII_ADDR_TO_SEND_TYPE, 0x4B); Status = XIic_Start(&Iic); I manage to acquire the attached measurement (see screenshot), after the following command is processed. Status = XIic_MasterSend(&Iic, &registerAddress, 1); Ch B (green) is attached to scl, and Ch A (yellow) to sda. Given what I have leaned so far about i2c it looks a bit alike. However, the voltage levels are off and the timing also does not look convincing. I would appreciate any feedback that could help me to figure out what I'm doing wrong. Regards system.pdf
  11. Hello, I am exploring the Arty board. I get the a Microblaze Base system up and running and like to start programming the system, more specific - the I2C (SCL/SDA) (HIH6130 sensor) - SPI pin (TLC5947). - Build IP block written in VHDL (PWM driver). Any starting points are welcome. Regards, J.
  12. 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 MIO configuration? To which MIO should I assign I2C? Should I use I2C 0 or I2C 1? Which functions are available for reading/writing from/to the I2C interface? Could you provide an example for reading/writing from/to a certain memory position? And for option 2) Which are the constraints I need to place on the SCL and SDA signals? How to I connect the SCL and SDA signals to the I2C port that is on the AXI IIC IP? Which functions are available for reading/writing from/to the I2C interface? Could you provide an example for reading/writing from/to a certain memory position? I know this may be simple and intuitive but I have not been able to discover it by myself. Thank you very much in advance Best regards, Miguel
  13. Dear forum I'm trying to log the activity on the I2C bus using my Analog Discovery 2 and the Logic Analyzer tool. I remember someone posted a script that will let you log all of the data. Can someone refer me to that post? Also, the specific protocol that I'm trying to decode is SVID (Serial voltage ID, Intel) that is based on I2C but with lower voltage threshold (0 to ~1V). I cannot find the option to change the threshold in Logic Analyzer. Within a script, could this be achieved? Thanks !
  14. moez

    Pmode AD2

    Hi Sir I attempts de modify the code Nexys3_AD2_DA1_source for measuring a sinousidal signla at 50Hz in V0in voice, but the limitation by 100Hz from clkDivSecondary (whish is drived by clkDivMain compoent) component prevent this and my signal whish I can observe through screen by Rs232 connection at 115200Baud and using Matlab for this perpose, so the curve is too bad. the modification of frequency of ClkDivMain or clkDivSecondary does not mush, Then I try to modifie the finit machine by titing in pmpdAD2_ctrl component exactely the "waitCount" but in vain. how I can perform this, thank you a lot.
  15. On the chipKIT Uno32, uC32, DP32 and WF32, the interrupt is raised for every byte in I²C slave mode. The corresponding MCUs are the PIC32MX320F128, PIC32MX340F512H, PIC32MX250F128B and PIC32MX695F512L. I don't know for other boards / MCUs as I've only tested with those I own. This bug/feature was confirmed at chipKIT forum and there's a related issue at the GitHub repository I2C wire library & repeated start (Sr) onReceive(handler) issue Slave Receive Problems I2C Wire Library Limited to 1 Byte in Slave Mode Unfortunately, the question hasn't received any official answer yet. The suggested work-around isn't reliable as it requires to be set for every I²C master. Is it a bug?
  16. What I feel would be a really neat addition to Waveforms would be an serial terminal, allowing you to use a pair of the digital signals as TX and RX. It wouldn't have to be anything too feature-rich - just something like the Arduino GUI's serial monitor would be perfect. I would find it quite useful for playing around with DIP microcontrollers, avoiding the hassle of finding my FTDI breakout board, a USB cable and freeing up a USB port. Also, some way to send I2C commands would be very cool, but I don't know what it would look like.... maybe somewhere where you can type in hex, and use a question mark to indicate a read. > 47 34 00 00 > 46 34 ? ? 00 00 Mike PS. The Waveforms 3 beta is running really well on my Cubieboard - no need for a PC on my bench!