/*******************************************************************************
**	max3100.h
*******************************************************************************/

// Thomas P. Sullivan
// Enertech Consultants
// 11-18-98

#ifndef __MAX3100_H
#define __MAX3100_H

#define WRITEDATAMASK 	((ushort) 0x8000)				//for writing data to the MAX3100
#define FOURSECONDS		((long) 4000000)				//in microseconds
#define TWOSECONDS		((long) 2000000)				//in microseconds

#define RECBUFFSIZE (2048)		//Make this bigger if you think you need it
#define XMITBUFFSIZE (2048)

// Prototypes
bool 	MaxSendPort0(ushort *uCmd, ushort unCount);
bool	MaxSendPort1(ushort *uCmd, ushort unCount);
bool  mPutcPort0(int c);
bool  mPutcPort1(int c);
int	AppendBuffer0(unsigned char c);
int	GetNextBuffer0(void);
void	FlushBuffer0(void);
int	AppendBuffer1(unsigned char c);
int	GetNextBuffer1(void);
void	FlushBuffer1(void);
int	FillAndSendBuffer0(char *ucPtrSource, int nSize);
int	FillAndSendBuffer1(char *ucPtrSource, int nSize);

//	Lets create a device driver specification for our part
static QPBDev Max3100DevStruct0 = 
	{
	COM2_SLOT,				// qslot				our qspi slot (non-multiplexed connection to PCS0 -- tps)
	"Max3100_0\0",			// devName			C string with device name (15 max)
	42500000,				// maxBaud			maximum baud rate in Hz for device
	16,						// bits				Bits Per Transfer
	iaLowSCK,				// clockPolar		SPI Clock Polarity (iaHighSCK,iaLowSCK)
	captLead,				// clockPhase		SPI Clock Phase (captLead/captFall)
	true,						// contCSMulti		Continue CS assert between mult xfrs
	true,						// autoTiming		Auto adjust timing to clock flag
	0,							// psDelaySCK		Min. Delay Before SCK (picoSecs)
	0,							// psDelayTXFR		Min. Delay After Transfer
	0,							// *rcvData			pointer to received data buffer
	0							// xfrCount			words transferred
	};

static QPBDev Max3100DevStruct1 = 
	{
	COM3_SLOT,				// qslot				our qspi slot (non-multiplexed connection to PCS0 -- tps)
	"Max3100_1\0",			// devName			C string with device name (15 max)
	42500000,				// maxBaud			maximum baud rate in Hz for device
	16,						// bits				Bits Per Transfer
	iaLowSCK,				// clockPolar		SPI Clock Polarity (iaHighSCK,iaLowSCK)
	captLead,				// clockPhase		SPI Clock Phase (captLead/captFall)
	true,						// contCSMulti		Continue CS assert between mult xfrs
	true,						// autoTiming		Auto adjust timing to clock flag
	0,							// psDelaySCK		Min. Delay Before SCK (picoSecs)
	0,							// psDelayTXFR		Min. Delay After Transfer
	0,							// *rcvData			pointer to received data buffer
	0							// xfrCount			words transferred
	};

#endif
