From 0ac47a5a22887dcd7679e0ca85c2cac31494dbe1 Mon Sep 17 00:00:00 2001 From: Iceman Date: Wed, 7 Feb 2018 12:11:48 +0100 Subject: [PATCH 1/4] Update appmain.c FIX: start up,MUXSEL_HIPKD(PA19),MUXSEL_LOPKD(PA20) are floating state. Should adapt FPGA image aswell. --- armsrc/appmain.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 64768922..76eda19e 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -1408,6 +1408,12 @@ void __attribute__((noreturn)) AppMain(void) // Reset SSC AT91C_BASE_SSC->SSC_CR = AT91C_SSC_SWRST; + // set pins LOW + LOW(GPIO_MUXSEL_HIPKD); + LOW(GPIO_MUXSEL_LOPKD); + LOW(GPIO_MUXSEL_HIRAW); + LOW(GPIO_MUXSEL_LORAW); + // Load the FPGA image, which we have stored in our flash. // (the HF version by default) FpgaDownloadAndGo(FPGA_BITSTREAM_HF); From 1618a18e899bcec7f6a1c4ad884b84472fa67655 Mon Sep 17 00:00:00 2001 From: Iceman Date: Wed, 7 Feb 2018 19:39:04 +0100 Subject: [PATCH 2/4] fix: Configure MUX to push-pull state --- armsrc/appmain.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 76eda19e..bfab8eb6 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -1408,6 +1408,19 @@ void __attribute__((noreturn)) AppMain(void) // Reset SSC AT91C_BASE_SSC->SSC_CR = AT91C_SSC_SWRST; + // Configure MUX + AT91C_BASE_PIOA->PIO_OER = + GPIO_MUXSEL_HIPKD | + GPIO_MUXSEL_LOPKD | + GPIO_MUXSEL_LORAW | + GPIO_MUXSEL_HIRAW; + + AT91C_BASE_PIOA->PIO_PER = + GPIO_MUXSEL_HIPKD | + GPIO_MUXSEL_LOPKD | + GPIO_MUXSEL_LORAW | + GPIO_MUXSEL_HIRAW; + // set pins LOW LOW(GPIO_MUXSEL_HIPKD); LOW(GPIO_MUXSEL_LOPKD); From 79d5d9d1c681d2c98950c2655da25b0eae6d67df Mon Sep 17 00:00:00 2001 From: Iceman Date: Sun, 11 Feb 2018 17:31:48 +0100 Subject: [PATCH 3/4] SetAdcMuxFor - optional Setting gpio port optional. --- armsrc/fpgaloader.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/armsrc/fpgaloader.c b/armsrc/fpgaloader.c index c0b04f3c..faaa7983 100644 --- a/armsrc/fpgaloader.c +++ b/armsrc/fpgaloader.c @@ -558,7 +558,8 @@ void SetAdcMuxFor(uint32_t whichGpio) LOW(GPIO_MUXSEL_LORAW); LOW(GPIO_MUXSEL_LOPKD); - HIGH(whichGpio); + if (whichGpio > 0) + HIGH(whichGpio); } void Fpga_print_status(void) { From 0c9b68b9e857811995d17e80b9c6cbf8d4b9502c Mon Sep 17 00:00:00 2001 From: Iceman Date: Sun, 11 Feb 2018 17:32:53 +0100 Subject: [PATCH 4/4] Update appmain.c remove redundant code. --- armsrc/appmain.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index bfab8eb6..507cc6ae 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -1409,23 +1409,7 @@ void __attribute__((noreturn)) AppMain(void) AT91C_BASE_SSC->SSC_CR = AT91C_SSC_SWRST; // Configure MUX - AT91C_BASE_PIOA->PIO_OER = - GPIO_MUXSEL_HIPKD | - GPIO_MUXSEL_LOPKD | - GPIO_MUXSEL_LORAW | - GPIO_MUXSEL_HIRAW; - - AT91C_BASE_PIOA->PIO_PER = - GPIO_MUXSEL_HIPKD | - GPIO_MUXSEL_LOPKD | - GPIO_MUXSEL_LORAW | - GPIO_MUXSEL_HIRAW; - - // set pins LOW - LOW(GPIO_MUXSEL_HIPKD); - LOW(GPIO_MUXSEL_LOPKD); - LOW(GPIO_MUXSEL_HIRAW); - LOW(GPIO_MUXSEL_LORAW); + SetAdcMuxFor(0); // Load the FPGA image, which we have stored in our flash. // (the HF version by default)