How Do I Switch from SPI Host Adapter GUI to Custom Software?
Rena Ayeras

Question from the Customer:

I am currently using the Cheetah SPI Host Adapter as a master device and another device as a slave, which is controlled through SPI. When I use the Cheetah GUI, I successfully write commands to the slave. However, I need to write a Python script to execute this same write command without the GUI. What are my options? Is source code available?

Response from Technical Support:

Thanks for your question! All Total Phase products include royalty-free API software, including the Cheetah Software API.

API Resources

The API packages include many functional code samples in multiple software languages:  C, Python, Visual Basic, and cheetah .dll /.h/.c files.

Here is a summary of API scripts that you can use as is, or modify as needed for your specifications:

  • detect - Detect Cheetah devices attached to the system.
  • blast - Shift a running 8-bit counter via SPI.
  • timing - Demonstrate the insertion of user defined delays in the middle of an SPI shifting sequence.
  • eeprom - Read from or write to an SPI serial EEPROM, such as the Atmel AT25080A found on the Activity Board.
  • flash - Read, write, verify, or erase a high-speed SPI flash memory. For early development, take a look at our SPI Flash demo board which includes the ST Micro M25P32
  • async - Demonstrate the use of the advanced asynchronous SPI shifting API.

For you, the eeprom.py script could be a good starting point. It demonstrates how to read from or write to an SPI serial EEPROM. Additional tools to consider are our activity boards, such as the High-Speed SPI Flash Demo Board, which includes M25P32, high-speed low voltage flash memory. You can emulate the same to test, develop, and debug your slave device.

For a full set of tools, we also have the SPI Development Kit, which includes a Beagle I2C/SPI Protocol Analyzer, a High-Speed SPI Flash Demo Board, as well as the Cheetah SPI Host Adapter.

Here is an article to look at for more information about using API:

Here is an overview about using activity boards:

We hope this answers your question. Additional resources that you may find helpful include the following:

If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.