Revert "Working TX SLE"

This reverts commit 3a4451684f.
pull/3/head
Andy CA6JAU 9 years ago
parent 93e3f682b1
commit 3088c3240a

@ -34,31 +34,6 @@ volatile uint32_t AD7021_control_word;
uint32_t ADF7021_RX_REG0; uint32_t ADF7021_RX_REG0;
uint32_t ADF7021_TX_REG0; uint32_t ADF7021_TX_REG0;
volatile bool sle_request = false;
static void Send_AD7021_control_shift()
{
int AD7021_counter;
for(AD7021_counter = 31; AD7021_counter >= 0; AD7021_counter--) {
if(bitRead(AD7021_control_word, AD7021_counter) == HIGH)
io.SDATA_pin(HIGH);
else
io.SDATA_pin(LOW);
io.dlybit();
io.SCLK_pin(HIGH);
io.dlybit();
io.SCLK_pin(LOW);
}
}
static void Send_AD7021_control_nosle()
{
Send_AD7021_control_shift();
sle_request = true;
}
void Send_AD7021_control() void Send_AD7021_control()
{ {
int AD7021_counter; int AD7021_counter;
@ -416,7 +391,7 @@ void CIO::setTX()
{ {
// Send register 0 for TX operation // Send register 0 for TX operation
AD7021_control_word = ADF7021_TX_REG0; AD7021_control_word = ADF7021_TX_REG0;
Send_AD7021_control_nosle(); Send_AD7021_control();
#if defined(BIDIR_DATA_PIN) #if defined(BIDIR_DATA_PIN)
Data_dir_out(true); // Data pin output mode Data_dir_out(true); // Data pin output mode

@ -29,9 +29,6 @@ uint32_t m_frequency_rx;
uint32_t m_frequency_tx; uint32_t m_frequency_tx;
uint8_t m_power; uint8_t m_power;
extern volatile bool sle_request;
static volatile bool sle_pin = 0;
CIO::CIO(): CIO::CIO():
m_started(false), m_started(false),
m_rxBuffer(RX_RINGBUFFER_SIZE), m_rxBuffer(RX_RINGBUFFER_SIZE),
@ -155,25 +152,7 @@ void CIO::interrupt()
if (!m_started) if (!m_started)
return; return;
if (sle_request == true && m_tx) if(m_tx) {
{
if(CLK_pin() == 0)
{
sle_pin = 1;
SLE_pin(HIGH);
}
else if (sle_pin == 1)
{
SLE_pin(LOW);
SDATA_pin(LOW);
sle_request = false;
sle_pin = 0;
}
}
// we set the TX bit at TXD low, sampling of ADF7021 happens at rising clock
if (CLK_pin() == 0 && m_tx ) {
m_txBuffer.get(bit); m_txBuffer.get(bit);
#if defined(BIDIR_DATA_PIN) #if defined(BIDIR_DATA_PIN)
@ -187,9 +166,8 @@ void CIO::interrupt()
else else
TXD_pin(LOW); TXD_pin(LOW);
#endif #endif
}
// we sample the RX bit at rising TXD clock edge, so TXD must be 1 and we are not in tx mode } else {
else if (CLK_pin() == 1 && !m_tx) {
if(RXD_pin()) if(RXD_pin())
bit = 1; bit = 1;
else else
@ -198,7 +176,6 @@ void CIO::interrupt()
m_rxBuffer.put(bit); m_rxBuffer.put(bit);
} }
m_watchdog++; m_watchdog++;
m_modeTimerCnt++; m_modeTimerCnt++;
@ -264,8 +241,6 @@ void CIO::write(uint8_t* data, uint16_t length)
if (!m_tx) { if (!m_tx) {
setTX(); setTX();
m_tx = true; m_tx = true;
sle_pin = 0;
while (sle_request) { asm("nop"); }
} }
} }

@ -55,7 +55,6 @@ public:
void SLE_pin(bool on); void SLE_pin(bool on);
void CE_pin(bool on); void CE_pin(bool on);
bool RXD_pin(void); bool RXD_pin(void);
bool CLK_pin(void);
#if defined(BIDIR_DATA_PIN) #if defined(BIDIR_DATA_PIN)
void RXD_pin_write(bool on); void RXD_pin_write(bool on);

@ -171,17 +171,17 @@ void CIO::startInt()
// TXD pin is TxRxCLK of ADF7021, standard TX/RX data interface // TXD pin is TxRxCLK of ADF7021, standard TX/RX data interface
#if defined (__STM32F1__) #if defined (__STM32F1__)
attachInterrupt(PIN_TXD, EXT_IRQHandler, CHANGE); attachInterrupt(PIN_TXD, EXT_IRQHandler, RISING);
#else #else
attachInterrupt(digitalPinToInterrupt(PIN_TXD), EXT_IRQHandler, CHANGE); attachInterrupt(digitalPinToInterrupt(PIN_TXD), EXT_IRQHandler, RISING);
#endif #endif
#else #else
#if defined (__STM32F1__) #if defined (__STM32F1__)
attachInterrupt(PIN_CLKOUT, EXT_IRQHandler, CHANGE); attachInterrupt(PIN_CLKOUT, EXT_IRQHandler, RISING);
#else #else
attachInterrupt(digitalPinToInterrupt(PIN_CLKOUT), EXT_IRQHandler, CHANGE); attachInterrupt(digitalPinToInterrupt(PIN_CLKOUT), EXT_IRQHandler, RISING);
#endif #endif
#endif #endif
@ -228,11 +228,6 @@ bool CIO::RXD_pin()
return digitalRead(PIN_RXD) == HIGH; return digitalRead(PIN_RXD) == HIGH;
} }
bool CIO::CLK_pin()
{
return digitalRead(PIN_TXD) == HIGH;
}
#if defined(BIDIR_DATA_PIN) #if defined(BIDIR_DATA_PIN)
void CIO::RXD_pin_write(bool on) void CIO::RXD_pin_write(bool on)
{ {
@ -242,11 +237,7 @@ void CIO::RXD_pin_write(bool on)
void CIO::TXD_pin(bool on) void CIO::TXD_pin(bool on)
{ {
#if defined(BIDIR_DATA_PIN)
digitalWrite(PIN_TXD, on ? HIGH : LOW); digitalWrite(PIN_TXD, on ? HIGH : LOW);
#else
digitalWrite(PIN_CLKOUT, on ? HIGH : LOW);
#endif
} }
void CIO::LED_pin(bool on) void CIO::LED_pin(bool on)

@ -440,7 +440,7 @@ void CIO::Init()
#endif #endif
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure); EXTI_Init(&EXTI_InitStructure);
} }
@ -465,7 +465,7 @@ void CIO::startInt()
#endif #endif
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 15; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 15;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure); NVIC_Init(&NVIC_InitStructure);
@ -519,15 +519,6 @@ bool CIO::RXD_pin()
return GPIO_ReadInputDataBit(PORT_RXD, PIN_RXD) == Bit_SET; return GPIO_ReadInputDataBit(PORT_RXD, PIN_RXD) == Bit_SET;
} }
bool CIO::CLK_pin()
{
#if defined(BIDIR_DATA_PIN)
return GPIO_ReadInputDataBit(PORT_TXD, PIN_TXD) == Bit_SET;
#else
return GPIO_ReadInputDataBit(PORT_CLKOUT, PIN_CLKOUT) == Bit_SET;
#endif
}
#if defined(BIDIR_DATA_PIN) #if defined(BIDIR_DATA_PIN)
void CIO::RXD_pin_write(bool on) void CIO::RXD_pin_write(bool on)
{ {

Loading…
Cancel
Save

Powered by TurnKey Linux.