Post Go back to editing

ADF4159 eval board eeprom

Hello Everyone. 

I have the ADF4159 evaluation board, and i have made a custom implementation of it. I want to use the ADF4159 PLL software. The evaluation board uses a Cypress CY7C68013 usb controller to program the registers. The same controller uses an eeprom to load some settings. 

I have been looking and trying for the last 3-4 hours about how to program the eeprom to now avail. The closest was that thread:

https://ez.analog.com/rf/f/q-a/71178/adf4159-eval-onboard-eeprom with the equivalent title, but the answer doesn't appear to be valid anymore. 

On that answer, 3 things are provided. EEPROM programmer link and screenshot with settings. Unfortunately neither the programmer works, neither the screenshot is anywhere to be found. 

With that being said i found the eeprom programmer which crashes instantly on windows 10.

Can anyone provide a working proceduce on what to do?, where to find the eeprom programmer, and most importantly where to find the file to be programmed on the eeprom. 

Thanks. 

Parents
  • Hi,

    For the thread you have linked there the EEPROM that's referring to is the data that's stored in chip U7 on on our eval boards. This chip just contains a hardware ID and a hex string also contained in the EVB GUI and the two are checked to match up when the interface board is connected to eval board and the software GUI. Is this what you are trying to re-program on your custom board? Or are you trying to reprogram the EEPROM on the Cypress chip?

    Regards,
    Alex

  • Hi Alex. Correct. I am trying to program the U7 chip, and i couldn't find any reference whatsoever about what i need to write there. 
    To clarify why i wanted to do that,  the plan of attack is that i wanted to solve one problem at a time. This means that i want to have a robust and working digital section (like the one on your evaluation board) for initial use on the custom pcb and use it with your GUI, so we dont have to debug both things at the same time (eventually i will write completely custom firmware using another microcontroller). 
    At the moment i have reached a point where i can program the RAM of the cypress chip, and i can connect to it from the GUI, but of course every time that they power is cycled i need to reflash the firmware on the RAM. 

    I was wondering if maybe its something simple like i have to write that same HEX on the eeprom? I didn't wanted to try that without being sure. 

  • Figured out.

    Here is the process for future reference for any poor guy that looks for this in google or here.

    Download the GUI code from this link, 

    https://ez.analog.com/rf/f/discussions/75270/adf4158-and-adf4159-software-source-code

    or the actual evaluation software from the product page. Both should work.

    www.analog.com/.../EVAL-ADF4159.html

    https://www.analog.com/media/en/evaluation-boards-kits/evaluation-software/ADF4158-9_Setup_v4_10_6.zip

    inside the debug folder there are, besides the compiled files, the hex files for the  CY7C68013 usb controller, as well as the assembly reference for it.

    (not in the subject, but having these on this folder is poor practice. Also for anyone using git with the normal ignores you have to move these files somewhere else and edit the source code to link them again because they will be ignored. just a warning).

    ADF4158-9\ADF4158-9\bin\Debug

    adf4xxx_usb_fw_1_0.hex

    adf4xxx_usb_fw_2_0.hex

    CyUSB.dll

    Now on the microcontroller part. (I am using the evaluation board of the microcontroller CY3684, but i am fairly certain that the process would be equivalent on any custom board. )

    This microcontroller has only ram so no permanent storage and it is using an eeprom to either store a full firmware, or just the device information.

    What the gui does is that it checks the device id, and if it matches what it expects, it flashes one of the hex files (mentioned above), to the ram directly.

    So we need to write the correct device id to the eeprom.

    The process is the following. 

    Download cy3684kit_RC8.zip from the cypress website. 

    https://www.cypress.com/documentation/development-kitsboards/cy3684-ez-usb-fx2lp-development-kit

    The program will be installed on C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1

    If the drivers are not installed automatically, they can be installed from the device manager. they are located on 

    C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Drivers

    now you should able to open the control center which is located on 

    C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Windows Applications\Application Source files\c_sharp\controlcenter\bin\Release\CyControl.exe

    And it should display the default state of the device. "Cypress FX2LP blablabla"

    If you want to test the HEX file directly you can load the hex file mentioned above (adf4xxx_usb_fw_2_0.hex)

     by program / FX2 / RAM. This will change this as Analog Devices Eval Board.

    if not, you dont have the drivers installed. If you just got the source code, you may not have the drivers installed you have to install the evaluation software from the product page.

    www.analog.com/.../EVAL-ADF4159.html

    https://www.analog.com/media/en/evaluation-boards-kits/evaluation-software/ADF4158-9_Setup_v4_10_6.zip

    Now your temporary programmed microcontroller it should connect with the GUI as the evaluation board does.

    This is only for testing and NOT what you want.

    Power cycle (ie remove the usb), the micro controller and it should turn back on the default state

    Take the attached eeprom zip file extract it and burn it to the eeprom using the control center. In

    Program/Small EEPROM/"select the iic file"

    In this case i used 24LC00 eeprom, but 24LC64/128 should work, you just have to select the LARGE EEPROM on the menu

    eeprom.zip

    The device should change again.

    This is permanent. Now every time that the ADF4158-9 connects it will see the correct device information and will flash the appropriate hex file. 

    and you are all set. 

  • Hi George,

    I have to say thanks for sharing the steps here and sorry for the headache it took to get there.

    We have a more reliable way to reprogram the EEPROM on newer boards which use the SDP interface board using that application in the link thread from your initial post. The ADF4159 doesn't have an SDP connector, so I don't know why that EEPROM procedure was shared back then. Anyway, I myself didn't even have the full procedure for reprogramming the EEPROM with the Cypress chip interface board - I was typing a reply here that I would be trying to locate it for you but then I see your response. Anyway, glad you figured it out

    Regards,
    Alex

  • I figured it out. I had written a comprehensive reply with all the steps, but unfortunately it got flagged as spam from this website, and i cannot even see it. 

    Since i dont want to write that whole thing again. Create a hex file with 5 bytes 'C0 56 04 0D B4' and save it as eeprom.iic 

    this is the analog devices vendor information. You can load this on the eeprom using the CYControl center (CY3684 evaluation kit software from cypress website) and the device will appear as the correct id.

    The ADF4158-9 gui will flash the correct firmware on the ram of the microcontroller every time that it connects. 

Reply
  • I figured it out. I had written a comprehensive reply with all the steps, but unfortunately it got flagged as spam from this website, and i cannot even see it. 

    Since i dont want to write that whole thing again. Create a hex file with 5 bytes 'C0 56 04 0D B4' and save it as eeprom.iic 

    this is the analog devices vendor information. You can load this on the eeprom using the CYControl center (CY3684 evaluation kit software from cypress website) and the device will appear as the correct id.

    The ADF4158-9 gui will flash the correct firmware on the ram of the microcontroller every time that it connects. 

Children
  • Hi George,

    I'm not sure what happened there, but I was able to briefly see your previous post and I had a comment under it that was also deleted when I hit refresh. I've contact our EZ admins to try and get your reply restored as it was an excellent and helpful comment.

    Anyway, I'm glad you got all this sorted and sorry for all the headache getting there. And thanks for taking the time to post the procedure here.

    As I posted in my previously deleted reply, we have a reliable way to reprogram the EEPROM on our newer boards that use the SDP interface board and that's what the application in the thread you linked initially is for. I'm not sure why this procedure was recommended to work with the ADF4159 back then as this board doesn't have an SDP connector so it won't work. 

  • I see. Thank you for your help and your response. Good to know. 

    In any case this was only for testing and i plan to use an ARM- Cortex or something equivalent for the rest of the implementation. I feel that it would be easier to make it from scratch than understanding and modifying the Cypress firmware.

    Kind regards