QSpice C-Block code and schematics to implement custom SPI master & slave components.
See the SpiIO_Dev_Doc.pdf document for information about using and customizing these components for specific use cases.
At this point, this is Proof of Concept stuff. The code is not well-thought-through, well-tested, well-organized, nor well-commented.
You have been warned.
- SpiIO_Dev_Doc.pdf — Developer documentation for using/modifying the components.
- DemoSpiIO.qsch — The top-level QSpice schematic demonstrating the master and slave components.
- SpiMaster.qsch — Master component ADC/DAC driver schematic.
- SpiMaster.cpp — SPI master component code. Drives the ADC and DAC slave components.
- SpiMaster.dll — Compiled SpiMaster DLL.
- SpiADC.qsch — 8-bit ADC component schematic.
- SpiADC.cpp — 8-bit ADC component C-Block code.
- SpiADC.dll — Compiled SpiADC DLL.
- SpiDAC.qsch — 8-bit DAC component schematic.
- SpiDAC.cpp — 8-bit DAC component C-Block code.
- SpiDAC.dll — Compiled SpiADC DLL.
- PinIO.h — Header file containing "pin" state management classes.
- SpiIO.h — SPI serial buffer class and SPI mode management code.
The code compiles with MS VC.
These two files demonstrate how easy it is to use the SpiIO framework to implement a new SPI slave device. This SPI potentiometer slave started with a copy of DemoSpiIO.qsch, a copy of SpiDAC.qsch, and my voltage-controlled potentiometer subcircuit/symbol (see Pot_Vctrl.qsym in the Miscellany folder). No C-Block code changes required.
- DemoSpiIO_Pot.qsch — The top-level demonstration schematic.
- SpiPot.qsch — The SPI potentiometer slave device.