Adding CE pin control, for ADF7021 reset.

pull/2/head
Andy CA6JAU 9 years ago
parent 9d292fa809
commit 932f5e244e

@ -142,6 +142,12 @@ void CIO::ifConf()
uint32_t ADF7021_REG4 = 0;
uint32_t ADF7021_REG13 = 0;
// Toggle CE pin for ADF7021 reset
CE_pin(LOW);
delay_rx();
CE_pin(HIGH);
delay_rx();
// Check frequency band
if( (m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX) ) {
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO

@ -39,6 +39,7 @@ m_watchdog(0U)
{
Init();
CE_pin(HIGH);
LED_pin(HIGH);
PTT_pin(LOW);
DSTAR_pin(LOW);

@ -50,6 +50,7 @@ public:
void SDATA_pin(bool on);
bool SREAD_pin(void);
void SLE_pin(bool on);
void CE_pin(bool on);
bool RXD_pin(void);
#if defined(BIDIR_DATA_PIN)

@ -30,6 +30,7 @@
#define PIN_SREAD PB7
#define PIN_SDATA PB6
#define PIN_SLE PB8
#define PIN_CE PC14
#define PIN_RXD PB4
#define PIN_TXD PB3
#define PIN_CLKOUT PA15
@ -49,6 +50,7 @@
#define PIN_SDATA 4 // 2 in Arduino Zero Pro
#define PIN_SREAD 5
#define PIN_SLE 6
#define PIN_CE 12
#define PIN_RXD 7
#define PIN_TXD 8
#define PIN_CLKOUT 2 // 4 in Arduino Zero Pro
@ -92,6 +94,7 @@ void CIO::Init()
pinMode(PIN_SDATA, OUTPUT);
pinMode(PIN_SREAD, INPUT);
pinMode(PIN_SLE, OUTPUT);
pinMode(PIN_CE, OUTPUT);
pinMode(PIN_RXD, INPUT);
pinMode(PIN_CLKOUT, INPUT);
pinMode(PIN_LED, OUTPUT);
@ -164,6 +167,11 @@ void CIO::SLE_pin(bool on)
digitalWrite(PIN_SLE, on ? HIGH : LOW);
}
void CIO::CE_pin(bool on)
{
digitalWrite(PIN_CE, on ? HIGH : LOW);
}
bool CIO::RXD_pin()
{
return digitalRead(PIN_RXD) == HIGH;

@ -36,6 +36,9 @@
#define PIN_SLE GPIO_Pin_8
#define PORT_SLE GPIOB
#define PIN_CE GPIO_Pin_14
#define PORT_CE GPIOC
#define PIN_RXD GPIO_Pin_4
#define PORT_RXD GPIOB
@ -180,6 +183,12 @@ void CIO::Init()
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(PORT_SLE, &GPIO_InitStruct);
// Pin CE
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Pin = PIN_CE;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(PORT_CE, &GPIO_InitStruct);
// Pin RXD
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Pin = PIN_RXD;
@ -327,6 +336,11 @@ void CIO::SLE_pin(bool on)
GPIO_WriteBit(PORT_SLE, PIN_SLE, on ? Bit_SET : Bit_RESET);
}
void CIO::CE_pin(bool on)
{
GPIO_WriteBit(PORT_CE, PIN_CE, on ? Bit_SET : Bit_RESET);
}
bool CIO::RXD_pin()
{
return GPIO_ReadInputDataBit(PORT_RXD, PIN_RXD) == Bit_SET;

Loading…
Cancel
Save

Powered by TurnKey Linux.