Bypassing is essential. In fact, you need to have this done completely as specified in the data sheet (so at least 4 caps). Do not forget a (small) capacitor on reset.
And have a look at AN88619.
I am using the 4014SXI-420 which is very similar (ie: almost the same...) as your chip. I have a proto board I use for programming that just bypasses Vcc (Pin 3) to GND on Pin 5. Then I am connecting pins 1,4,5,8 to the MiniProg3. If you are having issues connecting, make sure that pins 1 and 8 aren't reversed.
I was seeing the Arm M0 Device error, when the settings where for Reset and not powercycle. So recheck that setting.
Can you see it with PSoC Programmer? It is easier to play with setting using it and then set them in PSoC Creator afterwards.
Which version of Creator are you using? I am using v4.1 with success...
Ok, so I figured it out - and I am extremely annoyed.
I removed parts from my circuit board one by one until I discovered that some resistors in a divider being removed let me read the chip. This baffled me as they were on an input on a totally different pin, P1.6. I looked at the datasheet again and on a table on page 7, on the right hand column under "alternate functions" there is a note on that line and at the bottom of that page it says there shouldn't be any ground load during POR. It is absolutely not clear that it's talking about the whole pin rather than just that function (compare out of the TCPWM block), and NOWHERE else is this documented. Not in the hardware design considerations, not in the programming specifications - nowhere.
But that's the problem. If you use P1.6 as an input on a PSOC4 and have any load to ground, you will not be able to program using the POR method. Which basically means all the SOIC8 chips cannot use P1.6 as an input. I would think this is a pretty big and important issue that should be highlighted prominently and made very clear. Not tucked away as a footnote on a column of a table where it's not clear at all that it's referencing the P1.6 pin.
And just to rant a bit more - this is my biggest complaint with Cypress - important information is spread out over so many different places. Even in the hardware design document linked above, this issue is nowhere to be found. And in that document and in the programming document, both state that a reset pin is required for programming and neither show the 4-wire POR programming connection method. I know the method because I've used it for a long time with PSOC1, but why isn't it documented anywhere other than as some sort of forgotten footnote or something the user is supposed to just know or figure out?
Don't even get me started trying to figure out interrupts on PSOC1... the necessary information is spread over about 3 or 4 application notes, it seems.
Luckily, it appears that by increasing my voltage divider resistor values by a lot, it worked... but this is obviously a hack/workaround and contrary to what Cypress states in the datasheet. My alternative would be to leave this resistor off the board and add it after programming (a HUGE hassle) or program chips prior to installing on board (equally a hassle).
Or, y'know... would have been nice to know that P1.6 is output only on the SOIC8 part.
Ahh! Good info there! I am using P1.6 for Cmod in my project. So a 2.2nF cap and 220K resistor to ground. I was also previously using it as a PWM output. But moved that to P1.1 so I guess I was just lucky! Course I let the software assign pins the first time through.
I agree that PSoC Creator should have some sort or warning message though. That seems like a fairly critical piece of info! If only I could figure out how to get ADC and PWM working together on the 4014 I would be happy!
It would be great if there was a warning in PSoC Creator for this, but I would also say there should be something very prominent in the datasheet. POR programming is the only way to program the SOIC8 parts because they have no XRES pin, so an issue like 'this pin cannot have any load to ground during POR' is *really* important information to know. They don't say the reason in the datasheet, but I found out the hard way - it either keeps the chip in reset or prevents it going into reset but either way, it means you can't program it. That's a huge, massive design consideration. Cypress is, again IMO, notorious for creating endless app notes when the info really should have been front and center in the datasheet to begin with.
Side note to any Cypress employees reading this - if I sound harsh, it's because I LOVE Cypress chips and I don't want noobies to get scared away. Your product is fantastic and IMO, if everyone knew the power and flexibility of the PSoC platform, everyone would use it. But it's little things like this that cause hours/days of lost time and frustration that cause newcomers to go with PIC instead.
Morantz, what is the issue you're having with the ADC/PWM on the 4014? I haven't used them on the 4014 part specifically but I have extensive experience with both the ADC and PWM functionality of PSoC... maybe I can offer some help?
I went to clean up the code a bit before packaging it to show you, and decided to remove the ISR since I wasn't really using it. (It just cleared the interupt...) That fixed most of the problem. So it appears an ISR interupts the PWM counter, which was causing my LED panel to flicker ALOT. As the panel is used to view XRay Images, it wasn't acceptable! Earlier versions of my project are in the ADC to PWM posts.