Gill

Members
  • Content Count

    4
  • Joined

  • Last visited

Posts posted by Gill

  1. Hey @JColvin,

    So my buddy was able to get the DA4 working on our Arduino Uno. So the chip works well and appropriately.

    I'm beginning to think the problem is with the output signals of the Arty's Pmod ports. When looking on an oscilloscope, the Arduino Uno has better pulse shapes compared to the Pmod signals (rise and fall times on the Pmod signal are not that good). I guess for now, the goal is to find out why, and either fix it or work with it. Any insights or leads on the Pmod ports, other than that what is in the reference manual, would be much appreciated.

    If my partner and I do find a fix to our problem, we'll be sure to post back with the solution.

    Thanks, 

    Gill

  2. Hey @JColvin,

    The screenshot captured above was from Vivado's simulation.

    I've revised my test bench to now have a 20 MHz clock and to also span over a longer duration, so we can see both the reference voltage command and data output commands. I'll post the screenshot below. The lowest clock frequency my project allows is 4 MHz, and I've tested at that frequency with the same results as before.

    Also, I was able to get captures from my oscilloscope (I'll post these below). These captures are directly from my Arty's pmod JA port. I'm able to pass data through these ports using Vivado's SDK. I know this because when I run my application in SDK, I see pulses on the oscilloscope for where the data is on the wave form (the 12 bits directly after address bits). So I think everything is taken care of on the FPGA side of it, but the DAC is still not responding.

    I also had an Arduino laying around that I thought I could use as another test for the DAC. I went ahead and stripped some of the code out of the "Simon Says" project and uploaded it , but once again I don't get a response from the DAC.

    Thanks,

    Gill

    da4_simulation_1.thumb.PNG.20b34e15131ebc9bbdb129154f87ce58.PNG

    Yellow - Chip Select

    Blue - Data Out

    cs_vs_data.png.96533b88b8ddd7020d8d394da7eb5e58.png

    Yellow - Chip Select

    Blue - Serial Clock

    cs_vs_clock.png.8824834749659fcddefa0139676e93ac.png

  3.  @JColvin

    Thanks for the quick reply.

    I suspected that was the case for the command, so for my project I'll just stick with command 3.

    My sclk is at 20 MHz right now (generated in the clock wizard of my block design), so it shouldn't be much of a problem. But I read more into the SPI specs and I saw something about clock polarity and phase. I note that in "Simon Says" that the SPI mode is 0 (clock polarity = 0, clock phase = 0), and I was wondering if that was my issue, that the data is being captured and sent at the wrong edge of my clock. I will post a simulation timing diagram along with this post, and maybe we could draw something from it.

    cs - chip select (pin1)

    data_out - mosi (pin2)

    sclk - serial clock (pin4)

    d_clk - 20 MHz input clock (even though it's 100 MHz in the picture)

    Thanks,

    Gill

    da4_simulation.thumb.png.37c66e04907dd854691a85e9d7a4809b.png

  4. Hello,

    I am trying to use the pmod DA4 with my Arty S750 board. I'm aware that Digilent does not offer an IP for interacting with the Pmod, so I took it upon myself to design one.

    Anyways, things seemed to be going well until I actually tested the DA4. I know that the DA4 uses SPI to communicate, so I programmed the IP to communicate that way, and it does (outputs from the pmod connector correctly seen on an oscilloscope), but every time I connect it to the DAC I can't get much of anything to come out of the channels.

    I've read through the AD5628 reference manual, but a few things were ambiguous to me. First the commands on table 9. I don't really understand the difference between writing to the register (command 0) and writing to the DAC channel (command 3), and which I should be using for my project. And second, I plan on using an internal voltage, and it says that setting up the internal voltage is the first step. As I have it now, it's the first thing my program does and I'm afraid that the DAC is unable to read this input (maybe I should add a brief delay? I saw a brief delay in the "simon says" code).

    I know it's been a long post, but any answers or insights on the DA4 or any other part of my post is much appreciated.

    Thanks,

    Gill