-
Notifications
You must be signed in to change notification settings - Fork 2
PSoC Top Design Drawing
The PSoC is a very flexible CPU platform containing a ARM cortex M3 processor, assignable IO pins for analog and digital IO, and programmable analog and digital components (op amps, dividers, counters, UARTS, ADCs, DACs, Mux/Demux, clocks, Vref, logic, control and status registers, etc). These components are picked from a parts library and placed on a drawing sheet, connected with wires, and configured using the function blocks. Each component property page has the config options and also has a button for the data sheet PDF file. There is a library of examples as well, each with a PDF data sheet.
During program compile time a standardized API is automatically generated for each component. Most parts can operate standalone or be interfaced to the CPU core for program control. They can also be assigned to most any of the many IO pins. Some pins are optimized for analog for lower noise or different operating voltages.
A great benefit of this capability is little to no external components are needed and you can often make a hardware change just by changing the drawing - no new PCB or major rewiring usually needed.
It does have a voltage limit so appropriate protection and RF filtering is recommended on external IO connection as for any CPU. SIO designated pins have the extra feature of assignable voltage input and output voltage levels and thresholds. This is used in this project to output 3.3V to the USB hub board UART converter even though the CPU is at 5V. The CPU and the Nextion displays can be operated at 3.3 V also. The Nextion IO is actually 3.3V and tolerates 5V input levels and uses 5V power.
This link shows the hardware design on board the PSoC chip for this project. PSoC Top Design Schematic Drawings
If you just want basic power monitoring you can ignore all the extra stuff here. Add some voltage dividers and you can monitor voltages higher than 5V. Add relays/switches to the decoder outputs and you can start controlling transverters and/or antennas and amps as I am doing. For programming convenience I use a 4 port hub and leave the KitProg programming board attached to the hub full time. The compact version I used in a RF amplifier only uses a KitProg board and a small OLED display, a 5V regulator, and a few voltage divider resistors for 14V and 28V monitoring.
Items in Blue are possible external wires and components, they are not on chip. Most are optional.
The Amp and Antenna page drawing are all external but included here to show one way that I use this with the band decoding feature as used in my Multiband LO project from last year. Band decode set up for my specific needs centered around the new 5 band transverter from Q5 Signal (http://q5signal.com) for remote amp power and SPDT antenna selection for 4 of the bands. Also switches a SP5T coax switch to select the output of a Bird Line Section inline with each antenna or amp. The switch output runs to a local Bird peak reading meter with a 2nd buffered output feeding my RF wattmeter which then displays the results remotely via serial port and hopefully on a remote Nextion display via a 915Mhz LoRa wireless link soon.
The OTRSP and BCD input are mapped to outputs. Any pattern can be using in or out, not just BCD. The translations are hard coded today. See my Multiband LO project for how this can be configured with an LCD and Rotary encoder menu system. I plan to do similar with the Nextion display.
This is mostly external wiring but shows one example of how I connected things.
For use inside an amplifier the SWR is represented as a voltage. SWR from 1:1 to 5:1 is output as 0-4VDC by a DAC and is buffered by an on-chip programmable gain amp.
Some notes about the design. There are 2 UARTs connected via digital mux/demux components handling serial comms for the Nextion Display (if used) and N1MM using the OTRSP protocol for antenna/transverter selection control. Using the Desktop App Config page buttons, the host CPU is sent a command to switch the Nextion Tx and RX lines from the CPU to the USB UART converter. At the same time it will disconnect UART2 (N1MM interface) from the UART Converter. When in normal operating mode is active the muxes connect the CPU to the Nextion and the USB UART converter to UART2. IN this way there is no external wiring or switched involved allowing for complete remote programmatic control.
The Bootloader component is only enabled when using a KitProg programming board. It is simple to use, you hold the Kitprog reset switch and plug it in the USB cable, let go of the switch to put it into bootloader mode. Use the Cypress Bootloader host utility to select the board and upload the application files. Then power cycle the board and the program runs. You do need to configure the path to the the app files in the component first. That is already done for you unless you install the project files to a different directory then what is used in the download.
EEPROM creates the API for the storage.
Using one of 3 possible ADC type. In this case a Delta Sigma ADC type configured for 20 bit resolution and connected single ended. Analog Mux is used to select among the Forward and Reflected RF power detector outputs, and to various optional sensors such as 14V and 28V via external resistor voltage dividers, temperature of the ADL5519 in this case, and maybe a current sensor. Other components in the drawing are I2C master controller for communicating to an optional OLED display or BCD output drivers for antenna switch control (N1MM controlled). Also a hardware timer is used to generate an interrupt to pace the serial output messages and display updates to prevent overloading the serial ports with too much data too fast.