kopia lustrzana https://github.com/DL7AD/pecanpico10
Minor change to USB console init. Refactoring portab WIP.
rodzic
f2fe098feb
commit
6ae3f3674a
|
@ -111,30 +111,35 @@ void pktConfigSerialDiag(void) {
|
|||
#endif
|
||||
}
|
||||
|
||||
/*void pktConfigSerialPkt(void) {
|
||||
/**
|
||||
* TODO: Move this into pktradio.c or make it an Si446x function in si446x.c
|
||||
* The GPIO assignments per radio should be in the radio record.
|
||||
*/
|
||||
ioline_t pktSetLineModeICU(const radio_unit_t radio) {
|
||||
(void)radio;
|
||||
palSetLineMode(LINE_ICU, PAL_MODE_INPUT | PAL_MODE_ALTERNATE(2));
|
||||
return LINE_ICU;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktradio.c or make it an Si446x function in si446x.c
|
||||
* The GPIO assignments per radio should be in the radio record.
|
||||
*/
|
||||
/*ioline_t pktSetLineModeRadioGPIO1(const radio_unit_t radio) {
|
||||
(void)radio;
|
||||
palSetLineMode(LINE_RADIO_GPIO1, PAL_MODE_INPUT_PULLDOWN);
|
||||
return LINE_RADIO_GPIO1;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktconf.h and use general GPIO to setup.
|
||||
* TODO: Move this into pktradio.c or make it an Si446x function in si446x.c
|
||||
* The GPIO assignments per radio should be in the radio record.
|
||||
*/
|
||||
void pktSetLineModeICU(void) {
|
||||
palSetLineMode(LINE_ICU, PAL_MODE_INPUT | PAL_MODE_ALTERNATE(2));
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktconf.h and use general GPIO to setup.
|
||||
*/
|
||||
void pktSetLineModeRadioGPIO1(void) {
|
||||
palSetLineMode(LINE_RADIO_GPIO1, PAL_MODE_INPUT_PULLDOWN);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktconf.h and use general GPIO to setup.
|
||||
*/
|
||||
void pktSetLineModeRadioGPIO0(void) {
|
||||
/*ioline_t pktSetLineModeRadioGPIO0(const radio_unit_t radio) {
|
||||
(void)radio;
|
||||
palSetLineMode(LINE_RADIO_GPIO0, PAL_MODE_INPUT_PULLDOWN);
|
||||
}
|
||||
return LINE_RADIO_GPIO0;
|
||||
}*/
|
||||
|
||||
/*
|
||||
* Read GPIO that are used for:
|
||||
|
@ -152,7 +157,6 @@ uint8_t pktReadIOlines() {
|
|||
void pktSerialStart(void) {
|
||||
#if ENABLE_SERIAL_DEBUG == TRUE
|
||||
pktConfigSerialDiag();
|
||||
//pktConfigSerialPkt();
|
||||
sdStart(SERIAL_CFG_DEBUG_DRIVER, &debug_config);
|
||||
#endif
|
||||
/* Setup diagnostic resource access semaphore. */
|
||||
|
|
|
@ -273,15 +273,15 @@ extern "C" {
|
|||
void pktConfigSerialDiag(void);
|
||||
void pktConfigSerialPkt(void);
|
||||
void pktConfigureCoreIO(void);
|
||||
void pktSetLineModeICU(void);
|
||||
void pktSetLineModeRadioGPIO1(void);
|
||||
void pktSetLineModeRadioGPIO0(void);
|
||||
ioline_t pktSetLineModeICU(const radio_unit_t radio);
|
||||
ioline_t pktSetLineModeRadioGPIO1(const radio_unit_t radio);
|
||||
ioline_t pktSetLineModeRadioGPIO0(const radio_unit_t radio);
|
||||
void pktSerialStart(void);
|
||||
void dbgWrite(uint8_t level, uint8_t *buf, uint32_t len);
|
||||
int dbgPrintf(uint8_t level, const char *format, ...);
|
||||
void pktWrite(uint8_t *buf, uint32_t len);
|
||||
void pktPowerUpRadio(radio_unit_t radio);
|
||||
void pktPowerDownRadio(radio_unit_t radio);
|
||||
//void pktPowerUpRadio(radio_unit_t radio);
|
||||
//void pktPowerDownRadio(radio_unit_t radio);
|
||||
radio_freq_t pktCheckAllowedFrequency(radio_unit_t radio, radio_freq_t freq);
|
||||
uint8_t pktReadIOlines(void);
|
||||
uint8_t pktGetNumRadios(void);
|
||||
|
|
|
@ -110,32 +110,34 @@ void pktConfigSerialDiag(void) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Configure packet dump output
|
||||
* TODO: Move this into pktradio.c or make it an Si446x function in si446x.c
|
||||
* The GPIO assignments per radio should be in the radio record.
|
||||
*/
|
||||
/*void pktConfigSerialPkt(void) {
|
||||
ioline_t pktSetLineModeICU(const radio_unit_t radio) {
|
||||
(void)radio;
|
||||
palSetLineMode(LINE_ICU, PAL_MODE_INPUT | PAL_MODE_ALTERNATE(2));
|
||||
return LINE_ICU;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktradio.c or make it an Si446x function in si446x.c
|
||||
* The GPIO assignments per radio should be in the radio record.
|
||||
*/
|
||||
/*ioline_t pktSetLineModeRadioGPIO1(const radio_unit_t radio) {
|
||||
(void)radio;
|
||||
palSetLineMode(LINE_RADIO_GPIO1, PAL_MODE_INPUT_PULLDOWN);
|
||||
return LINE_RADIO_GPIO1;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktconf.h and use general GPIO to setup.
|
||||
* TODO: Move this into pktradio.c or make it an Si446x function in si446x.c
|
||||
* The GPIO assignments per radio should be in the radio record.
|
||||
*/
|
||||
void pktSetLineModeICU(void) {
|
||||
palSetLineMode(LINE_ICU, PAL_MODE_INPUT | PAL_MODE_ALTERNATE(2));
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktconf.h and use general GPIO to setup.
|
||||
*/
|
||||
void pktSetLineModeRadioGPIO1(void) {
|
||||
palSetLineMode(LINE_RADIO_GPIO1, PAL_MODE_INPUT_PULLDOWN);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Move this into pktconf.h and use general GPIO to setup.
|
||||
*/
|
||||
void pktSetLineModeRadioGPIO0(void) {
|
||||
/*ioline_t pktSetLineModeRadioGPIO0(const radio_unit_t radio) {
|
||||
(void)radio;
|
||||
palSetLineMode(LINE_RADIO_GPIO0, PAL_MODE_INPUT_PULLDOWN);
|
||||
}
|
||||
return LINE_RADIO_GPIO0;
|
||||
}*/
|
||||
|
||||
/*
|
||||
* Read GPIO that are used for:
|
||||
|
|
|
@ -270,9 +270,9 @@ extern "C" {
|
|||
void pktConfigSerialDiag(void);
|
||||
void pktConfigSerialPkt(void);
|
||||
void pktConfigureCoreIO(void);
|
||||
void pktSetLineModeICU(void);
|
||||
void pktSetLineModeRadioGPIO1(void);
|
||||
void pktSetLineModeRadioGPIO0(void);
|
||||
ioline_t pktSetLineModeICU(const radio_unit_t radio);
|
||||
ioline_t pktSetLineModeRadioGPIO1(const radio_unit_t radio);
|
||||
ioline_t pktSetLineModeRadioGPIO0(const radio_unit_t radio);
|
||||
void pktSerialStart(void);
|
||||
void dbgWrite(uint8_t level, uint8_t *buf, uint32_t len);
|
||||
int dbgPrintf(uint8_t level, const char *format, ...);
|
||||
|
|
|
@ -845,9 +845,18 @@ bool Si446x_radioStartup(const radio_unit_t radio) {
|
|||
|
||||
/* Assert SDN low to perform POR wakeup. */
|
||||
palClearLine(LINE_RADIO_SDN);
|
||||
/* Set MCU GPIO input for CTS and POR of radio from GPIO1 and GPIO0. */
|
||||
pktSetLineModeRadioGPIO1();
|
||||
pktSetLineModeRadioGPIO0();
|
||||
/*
|
||||
* Set MCU GPIO input for POR and CTS of radio from GPIO0 and GPIO1.
|
||||
* TODO: Add function to get radio_list record for this radio number.
|
||||
* Then get LINE_GPIO_XXX from the radio record.
|
||||
* Should these setups go into coreIO function?
|
||||
*/
|
||||
palSetLineMode(LINE_RADIO_GPIO0, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetLineMode(LINE_RADIO_GPIO1, PAL_MODE_INPUT_PULLDOWN);
|
||||
ioline_t cts = LINE_RADIO_GPIO1;
|
||||
//return LINE_RADIO_GPIO1;
|
||||
//ioline_t cts = pktSetLineModeRadioGPIO1(radio);
|
||||
//pktSetLineModeRadioGPIO0(radio);
|
||||
/* Wait for transceiver to wake up (maximum wakeup time is 6mS).
|
||||
* During start up the POR state is on GPIO0.
|
||||
* This goes from zero to one when POR completes.
|
||||
|
@ -855,7 +864,7 @@ bool Si446x_radioStartup(const radio_unit_t radio) {
|
|||
*/
|
||||
chThdSleep(TIME_MS2I(10));
|
||||
/* Return state of CTS after delay. */
|
||||
return pktReadGPIOline(LINE_RADIO_GPIO1) == PAL_HIGH;
|
||||
return pktReadGPIOline(cts) == PAL_HIGH;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,11 +33,20 @@ THD_FUNCTION(pktConsole, arg) {
|
|||
CHN_CONNECTED | CHN_DISCONNECTED | CHN_INPUT_AVAILABLE);
|
||||
console_state = CON_CHN_READY;
|
||||
|
||||
/* Initialisation done. Wait for start from initiator. */
|
||||
/* Next run the handshake protocol to start the control thread. */
|
||||
|
||||
/*Wait for start from initiator. */
|
||||
thread_t *initiator = chMsgWait();
|
||||
(void)chMsgGet(initiator);
|
||||
|
||||
/* Release the initiator which then enables the channel. */
|
||||
/* Release the initiator which next enables the channel. */
|
||||
chMsgRelease(initiator, MSG_OK);
|
||||
|
||||
/* Wait for channel to be started. */
|
||||
initiator = chMsgWait();
|
||||
(void)chMsgGet(initiator);
|
||||
|
||||
/* Release the initiator which then completes. */
|
||||
chMsgRelease(initiator, MSG_OK);
|
||||
|
||||
while(true) {
|
||||
|
@ -157,10 +166,15 @@ msg_t pktStartConsole(void) {
|
|||
if(console == NULL)
|
||||
return MSG_TIMEOUT;
|
||||
|
||||
/* Wait for thread to start. */
|
||||
msg_t smsg = chMsgSend(console, MSG_OK);
|
||||
|
||||
/* Start serial over USB. */
|
||||
sduStart(&SDU1, &serusbcfg);
|
||||
|
||||
/* Signal thread to enter event monitoring. */
|
||||
smsg = chMsgSend(console, MSG_OK);
|
||||
|
||||
return smsg;
|
||||
}
|
||||
|
||||
|
|
|
@ -96,11 +96,11 @@ THD_FUNCTION(pktPWMispatcher, arg) {
|
|||
*
|
||||
* @api
|
||||
*/
|
||||
ICUDriver *pktAttachICU(radio_unit_t radio_id) {
|
||||
ICUDriver *pktAttachICU(radio_unit_t radio) {
|
||||
/* For now there is only one radio and a fixed ICU association.
|
||||
* TODO: Implement Radio <-> ICU association code and data structure.
|
||||
*/
|
||||
(void)radio_id;
|
||||
//(void)radio_id;
|
||||
|
||||
/*
|
||||
* Initialize the RX_DATA capture ICU.
|
||||
|
@ -113,7 +113,7 @@ ICUDriver *pktAttachICU(radio_unit_t radio_id) {
|
|||
/* The RX_DATA input is routed to ICU timer.
|
||||
* Set in portab.c
|
||||
*/
|
||||
pktSetLineModeICU();
|
||||
(void)pktSetLineModeICU(radio);
|
||||
|
||||
/* If using PWM mirror to output to a diagnostic port. */
|
||||
pktSetGPIOlineMode(LINE_PWM_MIRROR, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
|
|
|
@ -178,7 +178,7 @@ extern "C" {
|
|||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Alias for convenience of pktStopDecoder.
|
||||
* @brief Alias of pktStopDecoder for convenience.
|
||||
*
|
||||
* @param[in] radio radio unit ID
|
||||
*
|
||||
|
|
Ładowanie…
Reference in New Issue