User Modules and the PSoC
Development Process
The development process for the PSoC device differs from that of a traditional fixed function microprocessor. The configurable analog and digital hardware blocks give the PSoC architecture a unique flexibility that pays dividends in managing specification change during development and by lowering inventory costs. These configurable resources, called PSoC Blocks, have the ability to implement a wide variety of user-selectable functions. Each block has several registers that determine its function and connectivity to other blocks, multiplexers, buses, and to the IO pins. Iterative development cycles permit you to adapt the hard- ware as well as the software. This substantially lowers the risk of having to select a different part to meet the final design requirements.
To speed the development process, the PSoC Designer Inte- grated Development Environment (IDE) provides a library of pre-built, pre-tested hardware peripheral functions, called “User Modules.” User modules make selecting and implementing peripheral devices simple, and come in analog, digital, and mixed signal varieties. The standard User Module library con- tains over 50 common peripherals such as ADCs, DACs Tim- ers, Counters, UARTs, and other not-so common peripherals such as DTMF Generators and Bi-Quad analog filter sections.
Each user module establishes the basic register settings that implement the selected function. It also provides parameters that allow you to tailor its precise configuration to your particular application. For example, a Pulse Width Modulator User Mod- ule configures one or more digital PSoC blocks, one for each 8 bits of resolution. The user module parameters permit you to establish the pulse width and duty cycle. User modules also provide tested software to cut your development time. The user module application programming interface (API) provides high- level functions to control and respond to hardware events at run-time. The API also provides optional interrupt service rou- tines that you can adapt as needed.
The API functions are documented in user module data sheets that are viewed directly in the PSoC Designer IDE. These data sheets explain the internal operation of the user module and provide performance specifications. Each data sheet describes the use of each user module parameter and documents the set- ting of each register controlled by the user module.
The development process starts when you open a new project and bring up the Device Editor, a pictorial environment (GUI) for configuring the hardware. You pick the user modules you need for your project and map them onto the PSoC blocks with point- and-click simplicity. Next, you build signal chains by intercon- necting user modules to each other and the IO pins. At this stage, you also configure the clock source connections and enter parameter values directly or by selecting values from drop-down menus. When you are ready to test the hardware configuration or move on to developing code for the project, you perform the “Generate Application” step. This causes PSoC Designer to generate source code that automatically configures
the device to your specification and provides the high-level user module API functions.
| | Device Editor | |
| User | Placement | Source |
| and |
| Module | Code |
| Parameter |
| Selection | Generator |
| -ization |
| | |
| | Generate |
| | Application |
| Application Editor |
| Project | Source | Build |
| Code |
| Manager | Manager |
| Editor |
| | |
| | Build |
| | All | |
| | Debugger | |
| Interface | Storage | Event & |
| Breakpoint |
| to ICE | Inspector |
| Manager |
| | |
User Modules and Development Process Flow Chart
The next step is to write your main program, and any sub-rou- tines using PSoC Designer’s Application Editor subsystem. The Application Editor includes a Project Manager that allows you to open the project source code files (including all gener- ated code files) from a hierarchal view. The source code editor provides syntax coloring and advanced edit features for both C and assembly language. File search capabilities include simple string searches and recursive “grep-style” patterns. A single mouse click invokes the Build Manager. It employs a profes- sional-strength “makefile” system to automatically analyze all file dependencies and run the compiler and assembler as nec- essary. Project-level options control optimization strategies used by the compiler and linker. Syntax errors are displayed in a console window. Double clicking the error message takes you directly to the offending line of source code. When all is correct, the linker builds a ROM file image suitable for programming.
The last step in the development process takes place inside the PSoC Designer’s Debugger subsystem. The Debugger down- loads the ROM image to the In-Circuit Emulator (ICE) where it runs at full speed. Debugger capabilities rival those of systems costing many times more. In addition to traditional single-step, run-to-breakpoint and watch-variable features, the Debugger provides a large trace buffer and allows you define complex breakpoint events that include monitoring address and data bus values, memory locations and external signals.