- Cypress Semiconductor PSOC 5LP part CY8C5267AXI-LP051
- Core: ARM Cortex M3
- Data Bus Width: 32 bit
- Maximum Clock Frequency: 67 MHz
- Program Memory Size: 128 kB
- Data RAM Size: 32 kB
- ADC Resolution: 12 bit
- Data RAM Type: SRAM
- Interface Type: I2C
- Number of ADC Channels: 1
- Number of I/Os: 72
- I/O Number of Timers/Counters: 4
- Timer Program Memory Type: Flash
- Works on all Raspberry Pi cards with 40 pin GPIO (A+/B+/Pi2/Pi3/Zero)
- All 29 Raspberry Pi I/O lines are connected to the PSOC
- Configuration EEPROM
- LED (see below for details)
- Fuses on 3.3V and 5V power
- Two I/O connectors 14 + 16 = 30 I/O pins
- Each of the two I/O connectors can be 3.3V or 5V
What is a PSOC?
It is a Programmable System on a Chip. The beauty of the Cypress part is that it includes both analog and digital logic which can be programmed to be whatever you want it to be. In addition, you get a 32-bit ARM processor.
More about the PSoC 5LP
- 32-bit ARM Cortex-M3 CPU
- 32 interrupt inputs
- 24-channel direct memory access (DMA) controller with data transfer between both peripherals and memory
- 24-bit fixed-point digital filter processor (DFB)
- 20+ Universal Building Blocks and Precise Analog Peripherals
- Up to 62 CapSense® sensors with SmartSense™ Auto-tuning
- Multiplexed AFE with programmable Opamps,
- 12-bit SAR ADC
- 8-bit DAC
Programable Routing & Interconnect
This frees you to re-route signals to user selected pins, shedding the constraints of a fixed-peripheral controller. In addition, global buses allow for signal multiplexing and logic operations, eliminating the need for a complicated digital-logic gate design.
Configurable Analog and Digital Blocks
The combination of configurable analog and digital circuitry is the basis of the PSoC platform. You configure these blocks using pre-built library functions or by creating your own. By combining several digital blocks, you can create 16-, 24-, or even 32-bit wide logic resources. The analog blocks are composed of an assortment of switch capacitor, op-amp, comparator, ADC, DAC, and digital filter blocks, allowing complex analog signal flows.
PSoC offers a sophisticated CPU subsystem with SRAM , EE PROM, and flash memory, multiple core options and a variety of essential system resources including:
- Internal main and low-speed oscillator
- Connectivity to external crystal oscillator for precision, programmable clocking (not included in this design)
- Sleep and watchdog timers
- Multiple clock sources that include a PLL
PSoC devices also have dedicated communication interfaces like I2C, Full-Speed USB 2.0, CAN 2.0, and on-chip debugging capabilities using JTAG and Serial Wire Debug.
Example Programming Files
We've got a few examples of files that can get you started. We also provide the pinout files as your starting point for creating your.
How Many Ways Can You Blink the LED on the PI-SOC Hat?
It's a silly question since there are dozens of ways. But here's a few.
- "Wire" the LED from the PSOC chip to one of the GPIO lines from the Pi. For this one, the Pi flashes the LED under program control.
- Program the ARM processor to blink the LED. This is like the familiar Arduino Blink Sketch and it runs independently from the Raspberry Pi.
- Use a Hardware counter on the PSOC and output the counter most significant bit to the LED.
- Here's an out of the box idea. Configure the PSOC to generate a sine wave and add a comparator to check the level of the sine wave. Route the comparator output to the LED.
- How about blinking an LED while a button is pressed by using both hardware and the PSOC's CPU?
Here's the schematic:
- Here's the code.
What's going on with the 30 LEDs in the video?
That's another simple design.It consists of two counters that are running at 1 Hz. Each of the counters has the same clock but one counts to 14 and the other counts to 16. The output of the counter is sent to a de-multiplexer which takes the 4 bit count and lights each light one at a time.
The other is an ex-or chain of all of the lines from the Raspberry...Read more »