Livt packages

Livt.IO

Version 1.8.1

Memory, UART, I2C, SPI, and Ethernet input/output components for Livt hardware designs.

Published files (126)

src/spi/ISPITransactions.lvt

namespace Livt.IO

/**
 * Scheduled, exclusive SPI byte transactions in the caller's context. One owner
 * serializes Select, Transfer and Deselect. Calls complete before returning;
 * Transfer requires selection. Reset releases chip select. No arbitration.
 */
interface ISPITransactions
{
	/**
	 * Asserts chip select and waits for setup time; requires an idle bus.
	 */
	fn Select()

	/**
	 * Exchanges a byte MSB first while keeping chip select asserted.
	 */
	fn Transfer(value: byte) byte

	/**
	 * Releases chip select after hold time; requires a selected bus.
	 */
	fn Deselect()
}