This is the way primitive components should be made. This documents and distributes the SC/CT block super primitive. This component is designed to be imported into your workspace and provide you with a template component that you can start to use and modify immediately. The component brings out all connections for the hardware and makes them available for connections on the top level schematic. The component includes pre-made header and C files that include all definitions for all registers needed to configure the SC/CT block in any way possible. The header file also includes bit masks, modes, and shifts for all associated registers, making writing code for the super primitive incredibly easy. The C file comes with pre made stub init, enable and start APIs with critical clock and pump configuration already taken care of. The C file also includes a commented out example init function for enabling the DeltaSigma modulator mode of the SC/CT block as reference for creating your own init function.

Sounds good you say? I’m not done! The component also comes packaged with a complete component debug file, allowing you to see, and reconfigure your super primitive component in the debugger with insane ease. This is by far one of the most useful features of the super primitive.

But wait! There’s more! The super primitive also comes pre-packed with a DMA capability file, giving you easy access to all registers associated with the SC/CT block in the DMA wizard tool. Why would you want that? I DON’T KNOW, BUT I GAVE IT TO YOU ANYWAY!

The super primitive eliminates 99% of the mundane work when creating a component, leaving you to design, create, and explore the limitless capabilities of PSoC. Feel free to use the super primitive as the base for any new component you wish to build on the SC/CT blocks. If you find any mistakes, please let me know so I can update the super primitive.