The API for this device has 'CyProgUserFlash'. Does this allow writing the area modified by 'Cypress USB-Serial Configuration Utility'? If so can this be used to change the configuration? Is the layout of this area documented anywhere (i.e. on a byte by byte basis rather then just the summary given in the datasheet).
I would like to be able offer my users some of the configuration options in the config utility but not all (and in a more use-specific presentation). Maybe could the config utility be open-sourced so we can see how to do this?
The utility 'Cypress USB-Serial Configuration Utility' updates the particular memory area which cannot be modified by the API 'CyProgUserFlash'. Please refer the API guide for more details on the API and the area of the flash that it can program "CyProgUserFlash".
The internal memory details and source code of the utility are confidential and cannot be shared.
May I know why you want to use the APIs to configure the flash instead of using the utility?
I also need to program SCB0/SCB1 to I2C/SPI/UART without using the utility. The reason is that I want a fresh new card to be dropped and let the operating software to configure it without any additional installation (your Configuration Utility). I understand that the flash location and the configuration details are private but I wonder if you could provide and additional API that would let me do that.
An alternative would be a command line interface to your Configuration Utility where I could specify SCB0/SCB1 configuration.
Yes. I am designing a test instrument based on this chip. It uses GPIO pins to configure settings such as operating voltage and signal routing and also supports multiple serial protocols (UART/SPI/I2C/JTAG). I would like to be able to offer a configuration utility specific to the application to avoid errors and make it more user-friendly. For example, GPIO6 and GPIO7 control the set point of a variable voltage regulator in the instrument. I do not want the user setting these other than DRIVE 0 or DRIVE 1, and I'd prefer to offer radio buttons labelled with the four voltages so the user does not have to look up the binary code in documentation.
I could, I suppose, offer the GPIO controlled configuration using the API, but then it'd be volitile - I do not want it changing to a different voltage every time you replug the USB! Also there is no way of changing serial mode via the API. Finally, I do not want it to be easy to accidently break the device driver by changing the VID or PID for example.
If your concern is to make it harder for chip pirates to clone the chip, maybe a compromise would be to allow reading and writing of selected areas of the configuration flash through the API? You would not need to reveal the layout and you could purposly omit areas such as VID and PID.
I need to program SCB0/SCB1 to I2C/SPI/UART in an automated mode, without using the USB Serial Configuration Utility. The reason is that I want a fresh new card to be dropped and let the operating software to configure it without any additional installation (your Configuration Utility). I understand that the flash location and the configuration details are private but I wonder if you could provide an additional API that would let me do the above.
An alternative would be a command line interface to your Configuration Utility where I could specify the SCB0/SCB1 configuration.