Cypress Maker Lab - The burns have healed | Cypress Semiconductor
Cypress Maker Lab - The burns have healed
This weekend I took the plunge and soldered some headers onto the motor board and the PSoC prototyping kit. I ended up choosing the CY8CKIT-059 for no other reason than I already had one (and had forgotten to order some more). So I was a little worried that I would burn up the chip and look a bit silly while I wait for a replacement. The device on that kit has oodles more CPU power (ARM Cortex-M3) and peripheral resources then I am going to need but is still only $10.
|It is fair to say that I am not a natural "solderist". But I did actually manage not to set anything on fire or lose any flesh. I watched a video on the Adafruit site and read some how-to sites. The smart move would then be to practice a few times but let's be realistic - if I was smart I would not be doing this. The Adafruit guy said the joints should look like tiny Herschey's Kisses…||Mine do not look like that. His are like cute, little, slightly concave cones. Mine are a mix of blobs, pancakes and stalagmites. I won’t show you close up photos of my work - forgive me, it's just too embarrassing - but I will tell you how I used PSoC to prove they were all good!|
First, I checked the motor. All I wanted to do there was to use a breadboard to wire up power and logic to drive the dog wheels. Here is a picture of how I wired it up.
Here are some descriptions of the pins, which are documented in more detail on Adafruit's excellent site.
The power is applied to VMotor because it is protected against wiring up the source backwards. The VM terminal is used as an output for the logic side of the board. In real-life it looked like this. Spinny wheels!
You'll notice that I use the same source to power to the motors and also for the logic. That limits me to 5V or I will start blowing stuff up. I toyed with the idea of having a high voltage source for the motor and a low power choice for the PSoC. But I figured that I am not making a sports dog here - and this test pretty much confirmed that I can get all the speed I need from 4 AA batteries and the PSoC kit is going to only steal a tiny fraction of my total power budget. Oooh, "power budget", doesn’t that sound fancy! Now you might be thinking that 4 AA batteries give me 6V and I am asking for trouble but I solved that quandary with rechargeable batteries. These run at 1.2V and so I am at a nice comfy 4.8V total.
On the logic side I drove one side of each H-bridge high and the other low for full speed operation. I connected AIN1 and BIN2 low and, conversely, AIN2 and BIN1 high so the wheels run in the same direction. The SLP is held high because it is basically an enable pin, which I will figure out how to control from PSoC in the next blog. The FLT is a fault signal that can be generated from the board which I am ignoring for now in keeping with my general devil-may-care attitude!
The next step was checking the PSoC kit. I soldered 12 pins onto both sides of the kit. Two of the pins are for power and ground and the rest are for me to play with. Did I solder them all correctly? Well, clearly not, but did I do it just about well enough that the PSoC runs and the I/Os work? PSoC to the rescue! I thought about writing a program that reads a pin and either lights or extinguishes the LED on the prototyping kit. But running that 24 times would be dull so I created this PSoC Creator schematic, which lets me test 8 pins at a time so I only had to make three versions to test all the pins.
I named the pin components with the physical pins they will be connected to so that I would get the mapping right. I also configured them to have a pull-up resistor so that the NAND gate inputs are driven low when I connect the pin to ground (it’s safer than pulling the pin lower and connecting power). If I connect any pin to ground then the NAND outputs a 0 and the active-high LED turns on. No C program needed. The logic '1' sitting in the place where P2_1 should be is there because that pin is actually wired up the LED, so I am just holding it high (off) and not testing input on that pin. I programmed this into the PSoC kit and verified that I am a soldering superstar in a few seconds. No-one was around to cheer, but I know it was a pretty awesome moment.
So now I know that I have hardware that works. Next time I shall assemble the dog and get into the actual PSoC design that will drive the wheels at less than full speed…