This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DDC264EVM: CUSTOM SOFTWARE ON WINDOWS TO PROGRAMM DDC264

Part Number: DDC264EVM

Hi,

tanks a lot for the DLL code we are able to write our personal GUI, in your code there was some bugs that we have fixed. During test however the EVM give an error and the application crash, after this error also your SOFTWARE is not able to write or read the board register, message is Error to writing/reading config Reg.

To unblock the board we need to press SW2 near the usb port connector of board and programm another time the FPGA and the DDC register. 

if we launch the command to write the DDC264 register by ourself and despite we follow the istructions at letter:

2. Configuring DDC Registers:
First use XferINTDataOut() to send data to board and configure DDC register.
Since the function at a time writes to only one register, the function has to be executed for
multiple times to write to the below mentioned registers in FPGA. The first two digits represent
RegH & RegL and the last two digits represent DataH & DataL.
Data to be sent in sequence: 0000, 0000, 1100, 1200, 1C<DDC_High_Reg Value>,
1D<DDC_Low_Reg Value>, 1F01, 0000, 0000, 1E01

the boards are not able to collect correct data as if the command haven't effects.

if we launch the command to write the CFG REG of DDC264 from your software ( button under DCC264 register)  after that we have progammed the FPGA register with OUR Software the boards works again.

Moreover the HARD RESET OF DDC instructions says:

To Hard Reset the DDD device use XferINTDataOut() to send the following register values. The first two digits represent RegH & RegL and the last two digits represent DataH & DataL.
Data to be sent in sequence: 0000, 15FF, 15FF, 1500, 1500, 15FF, 15FF.

How is possible to pass to XferINTDataOut() function 7  pairs of 2 bytes ?? In the DLL the func is defined so: XferINTDataOut( int *USBdev, int *Data01, int *Data02, int *Data03, int *Data04)

We expect that the istruction to apply a reset passes an even number of pairs like the previous for write the register.

It's clear that there is some wrong info on document....can you provide us ONLY the code enclodes in the 2 buttons of your software HARD RESET DDC and WRITE CFG / VERIFY CFG to understand whats wrong in our software?

we are blocked again and in "terrificant late" to provide the data of test we must do with your board , we risk losing the contract.

 thank you so much for any help to reach our goal.

Giuseppe

  • Hello Guiseppe,

    I have attached the code snippet for the HARD_RESET_DDC (refer to page 8) and WRITE CFG/VERIFY CFG functions.

    /cfs-file/__key/communityserver-discussions-components-files/73/WRITE_5F00_CFG-and-HARD_5F00_RESET_5F00_DDC_2D00_Code-snippet.docx

    The function XferINTDataOut()  only writes one register at a time, the function has to be called multiple times to write to the registers in FPGA.

    For example, 15FF is split into 4 data words and sent using the function. This is repeated for the other data as well.

  • Hi,

    Thank you so much now we are able to write DDC CFG reg and Reset the chip, we have only last mistake I suppose in the streambit to Write FPGA Reg. I say this because if we try to execute following action:

    • Power up the board
    • Reset from our software (thanks to the new info)
    • Write and READ FPGA from our software
    • Write CFG DDC with our software

    NOT WORK!

    if instead we try to execute following action:

    • Power up the board
    • Reset from our software (thanks new info)
    • Write and READ FPGA from YOUR software using button "write" under the register of FPGA
    • Write CFG DDC with our software

    IT WORKS!!

    below OUR funciton to write and read FPGA  confguration 20 bit that seems work because we read what we write in correct way. Changing value we readback the new value but we are not able to read values with both software.

    Public Module leggifpga
    Public Function fpga()
    Dim RegsIn(256) As Integer
    Dim RegsOut(256) As Integer
    Dim RegEnabler(256) As Integer
    Dim indicece As Integer
    For indicece = 0 To 255
    RegEnabler(indicece) = 0
    Next
    For indicece = 0 To 255
    RegsIn(indicece) = 0
    Next

    RegEnabler(0) = 1
    RegEnabler(1) = 1
    RegEnabler(2) = 1
    RegEnabler(3) = 1
    RegEnabler(4) = 1
    RegEnabler(5) = 1
    RegEnabler(6) = 1
    RegEnabler(7) = 1
    RegEnabler(8) = 1
    RegEnabler(9) = 1
    RegEnabler(10) = 1
    RegEnabler(11) = 1
    RegEnabler(12) = 1
    RegEnabler(13) = 1
    RegEnabler(14) = 1
    RegEnabler(15) = 1
    RegEnabler(16) = 1
    RegEnabler(17) = 1
    RegEnabler(18) = 1
    RegEnabler(19) = 1
    RegEnabler(20) = 1
    RegEnabler(22) = 1
    RegEnabler(32) = 1
    RegEnabler(55) = 1

    RegEnabler(81) = 1
    RegEnabler(82) = 1
    RegEnabler(83) = 1
    RegEnabler(84) = 1
    RegEnabler(87) = 1


    RegsIn(94) = 1
    RegsIn(95) = 1
    RegsIn(96) = 1
    RegsIn(97) = 1
    RegsIn(98) = 1
    RegsIn(99) = 1

    RegsIn(220) = 1

    RegsIn(222) = 1

    Dim i As Integer
    RegsIn(2) = 6
    RegsIn(3) = 63
    RegsIn(5) = 6
    RegsIn(6) = 63
    RegsIn(7) = 119 'ok clk freq
    RegsIn(8) = 1 ' or running
    RegsIn(9) = 16 '24
    RegsIn(11) = 1
    RegsIn(12) = 255 'ok ignore
    RegsIn(14) = 4
    RegsIn(19) = 50
    RegsIn(20) = 200


    RegsIn(21) = 1

    RegsIn(28) = 7

    RegsIn(31) = 1
    RegsIn(32) = 51
    RegsIn(34) = 1
    RegsIn(81) = 6
    RegsIn(82) = 14
    RegsIn(83) = 6
    RegsIn(84) = 14
    RegsIn(86) = 1
    RegsIn(87) = 1
    RegsIn(94) = 2
    RegsIn(95) = 144

    RegsIn(220) = 4
    RegsIn(222) = 1


    i = WriteFPGARegsC(0, 0, RegsIn(0), RegsOut(0), RegEnabler(0))

    Return 0

    End Function

    We think there is some command we not send to FPGA that is enclosed in one of our funtions marked in red:

           Call Me.WriteRegsC_Click(eventSender, eventArgs)

           If FPGARegsOk = False Then GoTo ErrorHandler

           Call Me.Wait_Time(100)

    .......

               TempStr = ReadOnePacketInFromEndPoint6()

              If Len(TempStr) = 0 Then Exit Do

               If i > 4096 Then GoTo ErrorHandler

               i = i + 1

               System.Windows.Forms.Application.DoEvents()

    any idea on where are we wrong?

    si it possibile share your functions ? I can give you my direct email contact.

    Thank you.

    Giuseppe

  • Hi,

    Thank you so much now we are able to write DDC CFG reg and Reset the chip, we have only last mistake I suppose in the streambit to Write FPGA Reg. I say this because if we try to execute following action:

    • Power up the board
    • Reset from our software (thanks to the new info)
    • Write and READ FPGA from our software
    • Write CFG DDC with our software

    NOT WORK!

    if instead we try to execute following action:

    • Power up the board
    • Reset from our software (thanks new info)
    • Write and READ FPGA from YOUR software using button "write" under the register of FPGA
    • Write CFG DDC with our software

    IT WORKS!!

    below OUR funciton to write and read FPGA  confguration 20 bit that seems work because we read what we write in correct way. Changing value we readback the new value but we are not able to read values with both software.

    Public Module leggifpga
    Public Function fpga()
    Dim RegsIn(256) As Integer
    Dim RegsOut(256) As Integer
    Dim RegEnabler(256) As Integer
    Dim indicece As Integer
    For indicece = 0 To 255
    RegEnabler(indicece) = 0
    Next
    For indicece = 0 To 255
    RegsIn(indicece) = 0
    Next

    RegEnabler(0) = 1
    RegEnabler(1) = 1
    RegEnabler(2) = 1
    RegEnabler(3) = 1
    RegEnabler(4) = 1
    RegEnabler(5) = 1
    RegEnabler(6) = 1
    RegEnabler(7) = 1
    RegEnabler(8) = 1
    RegEnabler(9) = 1
    RegEnabler(10) = 1
    RegEnabler(11) = 1
    RegEnabler(12) = 1
    RegEnabler(13) = 1
    RegEnabler(14) = 1
    RegEnabler(15) = 1
    RegEnabler(16) = 1
    RegEnabler(17) = 1
    RegEnabler(18) = 1
    RegEnabler(19) = 1
    RegEnabler(20) = 1
    RegEnabler(22) = 1
    RegEnabler(32) = 1
    RegEnabler(55) = 1

    RegEnabler(81) = 1
    RegEnabler(82) = 1
    RegEnabler(83) = 1
    RegEnabler(84) = 1
    RegEnabler(87) = 1


    RegsIn(94) = 1
    RegsIn(95) = 1
    RegsIn(96) = 1
    RegsIn(97) = 1
    RegsIn(98) = 1
    RegsIn(99) = 1

    RegsIn(220) = 1

    RegsIn(222) = 1

    Dim i As Integer
    RegsIn(2) = 6
    RegsIn(3) = 63
    RegsIn(5) = 6
    RegsIn(6) = 63
    RegsIn(7) = 119 'ok clk freq
    RegsIn(8) = 1 ' or running
    RegsIn(9) = 16 '24
    RegsIn(11) = 1
    RegsIn(12) = 255 'ok ignore
    RegsIn(14) = 4
    RegsIn(19) = 50
    RegsIn(20) = 200


    RegsIn(21) = 1

    RegsIn(28) = 7

    RegsIn(31) = 1
    RegsIn(32) = 51
    RegsIn(34) = 1
    RegsIn(81) = 6
    RegsIn(82) = 14
    RegsIn(83) = 6
    RegsIn(84) = 14
    RegsIn(86) = 1
    RegsIn(87) = 1
    RegsIn(94) = 2
    RegsIn(95) = 144

    RegsIn(220) = 4
    RegsIn(222) = 1


    i = WriteFPGARegsC(0, 0, RegsIn(0), RegsOut(0), RegEnabler(0))

    Return 0

    End Function

    We think there is some command we not send to FPGA that is enclosed in one of our funtions marked in red:

           Call Me.WriteRegsC_Click(eventSender, eventArgs)

           If FPGARegsOk = False Then GoTo ErrorHandler

           Call Me.Wait_Time(100)

    .......

               TempStr = ReadOnePacketInFromEndPoint6()

              If Len(TempStr) = 0 Then Exit Do

               If i > 4096 Then GoTo ErrorHandler

               i = i + 1

               System.Windows.Forms.Application.DoEvents()

    any idea on where are we wrong?

    si it possibile share your functions ? I can give you my direct email contact.

    Thank you.

    Giuseppe

  • Any news about we try all days different solution but with our function has not effect. Please provide us code enclose in button write of FPGA. Thanks. Giuseppe
  • Hi at  All

    Problem resolved using a sniffer on USB, we use reverse enginnering to find the correct streambit.

    I strong suggest to update your document 7167.USB_IO_for_VB6_DLL_User_Guide because it's wrong in many point and it poor of fudamental info to use correctly your DLL.

    We lost a lot of time to write a simple application thet with right info we could write in 2 weeks. 

    Regards

    Giuseppe