19#define SPISPEED 1000000
32#include <wiringPiSPI.h>
37static const bool gverbose =
true;
40static const bool gverbose =
false;
69 void SendWord(
short cselect,
unsigned char *buf, uint8_t nbytes);
71 uint8_t
Exch8(
short cselect, uint8_t data){
SendWord(cselect, (
unsigned char*)&data, 1);
return data; }
73 uint16_t
Exch16(
short cselect, uint16_t data){
SendWord(cselect, (
unsigned char*)&data, 2);
return data; }
75 uint32_t
Exch24(
short cselect, uint32_t data){
SendWord(cselect, (
unsigned char*)&data, 3);
return data; }
77 uint32_t
Exch32(
short cselect, uint32_t data){
SendWord(cselect, (
unsigned char*)&data, 4);
return data; }
81 void ResetHV(){ digitalWrite(RSTHV, LOW); usleep(100); digitalWrite(RSTHV, HIGH); }
83 void EnableQP(
bool on =
true){ EnQP( on?HIGH:LOW );}
87 void StopADC(){ digitalWrite(START, LOW);}
89 static uint32_t
SpiConvert(
const uint32_t &input,
unsigned short nbytes = 4);
92 void EnQP(
int level = HIGH){ digitalWrite(ENQP, level);}
95 const char addrbit[3] = { ADDR0, ADDR1, ADDR2 };
Class to control GPIO and SPI communication from a nanoPi Neo2.
Definition nanopi.h:50
bool HasGPIO()
Check whether GPIO was correctly initialized.
Definition nanopi.h:60
void SendWord(short cselect, unsigned char *buf, uint8_t nbytes)
Send data word via SPI.
Definition nanopi.cc:82
void StopADC()
Set ADC start pin LOW.
Definition nanopi.h:87
void ResetHV()
Set reset pin on HV ADC and DAC.
Definition nanopi.h:81
void StartADC()
Set ADC start pin HIGH.
Definition nanopi.h:85
bool InitSPI()
Initialize SPI communication, not specific to LoLX.
Definition nanopi.cc:36
uint32_t Exch24(short cselect, uint32_t data)
Exchange 3 bytes.
Definition nanopi.h:75
uint8_t Exch8(short cselect, uint8_t data)
Exchange 1 byte.
Definition nanopi.h:71
bool HasSPI()
Check whether SPI was correctly initialized.
Definition nanopi.h:58
void SetAddr(short addr)
Select SPI device via the SPI channel select encoder.
Definition nanopi.cc:62
static uint32_t SpiConvert(const uint32_t &input, unsigned short nbytes=4)
Shuffle bytes around for correct SPI order and back.
Definition nanopi.cc:93
void EnableQP(bool on=true)
Enable/disable charge pump.
Definition nanopi.h:83
uint16_t Exch16(short cselect, uint16_t data)
Exchange 2 bytes.
Definition nanopi.h:73
uint32_t Exch32(short cselect, uint32_t data)
Exchange 4 bytes.
Definition nanopi.h:77
bool InitGPIO()
Initialize GPIO communication for LoLX-specific pins.
Definition nanopi.cc:10
void AddrOff()
Set the SPI channel select encoder to zero, i.e. select no SPI device.
Definition nanopi.cc:54
void ResetAll()
Set reset pin on all SPI devices.
Definition nanopi.h:79