|
The chips were purchased from Digikey a few weeks ago and are not marked ES1 on the top. Nor is there an ES1 in the device selector. There are a couple of parts in the device selector with an explicit ES1.
From what I've seen in the header files, ES1 is defined during the build, and probably based on the device selected. Here are the defines:
cytypes.h
/* Device is PSoC 5 and the revision is ES1 or earlier */
#define CY_PSOC5_ES1 ((CYDEV_CHIP_MEMBER_USED == CYDEV_CHIP_MEMBER_5A) && \
(CYDEV_CHIP_REVISION_USED <= CYDEV_CHIP_REVISION_5A_ES1))
#define CYDEV_CHIP_REVISION_USED CYDEV_CHIP_REVISION_5A_PRODUCTION
#define CYDEV_CHIP_REVISION_5A_ES1 1
#define CYDEV_CHIP_REVISION_5A_PRODUCTION 1
#define CYDEV_CHIP_MEMBER_USED CYDEV_CHIP_MEMBER_5A
As you can see, the 'production' version of the chip is version 1, which is ES1 by the macro. This means all the ES1 code in the library is executed, which I'm not sure is correct. Oddly as well, is the definition for CY_PSOC5_ES2:
#define CY_PSOC5_ES2 (CY_PSOC5A && \
(CYDEV_CHIP_REVISION_USED > CYDEV_CHIP_REVISION_5A_ES1))
Which means every PSOC5 part is either ES1 or ES2, if CY_POSOC5A is defined. I'm not sure of the meaning of that define, but it appears to be defined for every part I tried.
I put the following code in a test project
#if (CY_PSOC5_ES1)
#error shouldnt be ES1!
#endif
And built it using a sampling of PSOC 5 parts and every single one failed. This is with PSOC Creator 2.1 with component pack 4.
I thought perhaps the issue was I had Creator 2.0 and 2.1 insalled - I uninstalled 2.0 and I still have the same issue.
Parts seem to work, but I'm a bit concerned I've setup the project incorrectly such that this macro is defined.
|