Member Since: November 3, 2009

Country: United States

  • +1, Thanks for the hint. Just wanted to chime in on this. I had issues with communication with this breakout board, after removing the pull-ups and replacing the input resisters on both the SDA and SCK lines with shorts (solder jumper), this board worked like a charm.

  • There are also I2C multiplexers that can create sub-buses to allow two devices with the same address to co-exist, at the cost of overhead (I2C commands switch between the multiplexed devices).

    Or you could use standard multiplexers at the cost of more pins.

    [EDIT]: For those those curious about I2C muxes here is a good starting point: http://ics.nxp.com/products/i2cmuxes/

  • No worries. Dan's my good friend. I will give him a friendly punch for unknowingly trying to take credit for this project. =)

    Truth be told I am surprised this project was worthy enough for a news item; I was hoping to have built something on top of this project but I got distracted with other projects that I have been working on.

  • Funny you mention QPSK communication that is exactly what I used system generator for back in my senior year when I was taking a VLSI with Signal Processing course. Glad I am not the only one that had those issues with it =)

    Man...when we started getting into QAM16 (and I think we barely touched QAM64) I had nightmares about IQ impairments for weeks. Those DSP designs got really ugly. But I guess it would be more manageable in comparison to Verilog or VHDL code.

  • I have had plans to post my code a while ago, and seeing this article gives me renewed interest in discussing my code. My plan is first to just discuss my LCD controller code and then go from there. I have an article that is partly written up but I got distracted with other projects. I will try to get this posted in the next couple days.

    As I mentioned above, it is for educational purposes and I have had this FPGA for several years so it was only an investment in time for me.

  • Yep, really nothing special, it is purely educational. I could have done this same thing on my Arduino in 2minutes instead of on the FPGA which took me a couple days to design on the FPGA. An important part of designing big projects is to tackle the small ones first and modularize the results. This project got me a sweet LCD controller module and a data parsing module.

  • This was built while using ISE11 Webpack but any version should work, there really wasn't any special IP cores that I needed, everything was coded from the ground up.

    My FPGA board has an 8051 Cypress chip on it that has an ISP which allows for JTAG programming through USB (there is also an external jtag for cases where this solution does not work, such as chipscope). I can use either the traditional method of using iMPACT or I can use a tool that came with my FPGA board that is very streamlined (FPGAconf). Both methods allow me to write to either the FPGA RAM or the boot PROM.

  • I made a fairly large update today that adds a handful of new methods. I also changed a lot of the declarations, the main ones to notice are the getRDS and getRSQ, instead of having a bunch of pointers, I created a set of structures that contain the data. I think it will make adding to the library a little less troublesome and will help reduce breaking code on people trying to update to the latest repository version. See my blog post for some more info on the update: link
    I would recommend people who decide to try this new version to back up their existing project files, just in case there are any unforeseen issues (i.e. I might have forgotten to copy over a variable or something like that).

  • Good job on setting this up. I created a fork with some more updates namely a getRSQ method that allows the user to get the receive signal quality of the tuned station. I also added to your readRDS method to retrieve the program type (PTY) so that users can see what category the station they are tuned to is (i.e. rock, top 40, news, weather, etc). Note the PTY bits that are sent are dependent on the region; North American RBDS uses a different Lookup Table than the original European RDS LUT. I have only bothered to setup the North American LUT.

  • Great job, Tom. The work you have done on this looks professional and well thought out. Keep up the good work.

No public wish lists :(