SAMA5: The PIO used for the red LED is also used as the camera module reset line: Added a configuration option to suppress use of the red LED if the PIO is used for another purpose. Reported by David Sidrane.
This commit is contained in:
parent
069ea487ae
commit
cecf3775e2
@ -667,7 +667,8 @@ Buttons and LEDs
|
||||
|
||||
PE24. The red LED is also pulled high but is driven by a transistor so
|
||||
that it is illuminated when power is applied even if PE24 is not
|
||||
configured as an output.
|
||||
configured as an output. If PE24 is configured as an output, then the
|
||||
LED is illuminated by a high output.
|
||||
|
||||
These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
defined. In that case, the usage by the board port is defined in
|
||||
@ -688,7 +689,7 @@ Buttons and LEDs
|
||||
LED_IDLE MCU is is sleep mode Not used
|
||||
|
||||
Thus if the blue LED is statically on, NuttX has successfully booted and
|
||||
is, apparently, running normally. If the red is flashing at
|
||||
is, apparently, running normally. If the red LED is flashing at
|
||||
approximately 2Hz, then a fatal error has been detected and the system
|
||||
has halted.
|
||||
|
||||
@ -919,7 +920,7 @@ AT25 Serial FLASH
|
||||
6 SCK PD12 SPI0_SPCK
|
||||
1 /CS PD13 if jumper JP6 is closed.
|
||||
|
||||
NOTE: The MN8 is not populated on my SAMAD3 Xplained board. So, as a
|
||||
NOTE: The MN8 is not populated on my SAMAD3 Xplained board. So, as a
|
||||
result, these instructions would only apply if you were to have an AT25
|
||||
Serial DataFlash installed in MN8.
|
||||
|
||||
@ -1484,7 +1485,7 @@ SDRAM Support
|
||||
|
||||
SDRAM Data Configuration
|
||||
------------------------
|
||||
|
||||
|
||||
In these configurations, .data and .bss are retained in ISRAM by default.
|
||||
.data and .bss can also be retained in SDRAM using these slightly
|
||||
different configuration settings. In this configuration, ISRAM is
|
||||
|
@ -37,6 +37,17 @@ config SAMA5D3xEK_MT47H64M16HR
|
||||
|
||||
endchoice # SAMA5D3x-EK DRAM Type
|
||||
|
||||
config SAMA5D3xEK_NOREDLED
|
||||
bool "Red LED not available"
|
||||
default n
|
||||
---help---
|
||||
By default, both the blue LED and the red LED are used by the
|
||||
SAMA5D3x-EK board logic. However, the PIO associated with the red
|
||||
LED (PE24) has other board functions. For example, PE24 is also the
|
||||
ISI_RST reset signal to the camera interface. So when PE24 is not
|
||||
available to control the red LED, this configuration variable should
|
||||
be set so that the LED logic will only used the blue LED.
|
||||
|
||||
config SAMA5D3xEK_NOR_MAIN
|
||||
bool "Build nor_main"
|
||||
default n
|
||||
@ -231,6 +242,7 @@ if VIDEO_OV2640
|
||||
config SAMA5D3xEK_OV2640_DEMO
|
||||
bool "SAMA5 OV2640 camera demo"
|
||||
default n
|
||||
select SAMA5D3xEK_NOREDLED
|
||||
---help---
|
||||
Enable the SAMA5 OV2640 camera demo
|
||||
|
||||
|
@ -787,12 +787,16 @@ Buttons and LEDs
|
||||
PE24. The red LED is also pulled high but is driven by a transistor so
|
||||
that it is illuminated when power is applied even if PE24 is not
|
||||
configured as an output. If PE24 is configured as an output, then the
|
||||
LCD is illuminated by a high output.
|
||||
LED is illuminated by a high output.
|
||||
|
||||
N.B. PE24 Drives the RED Led on the CM (SODIMM200), but unfortunately
|
||||
it is also connected to ISI_RST on the MB (Main Board) and controlling
|
||||
it will reset a Camera connected to the ISI
|
||||
|
||||
These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
defined. In that case, the usage by the board port is defined in
|
||||
include/board.h and src/sam_leds.c. The LEDs are used to encode OS-related
|
||||
events as follows:
|
||||
events as follows when the red LED (PE24) is available:
|
||||
|
||||
SYMBOL Meaning LED state
|
||||
Blue Red
|
||||
@ -807,9 +811,25 @@ Buttons and LEDs
|
||||
LED_PANIC The system has crashed OFF Blinking
|
||||
LED_IDLE MCU is is sleep mode Not used
|
||||
|
||||
If CONFIG_SAMA5D3xEK_NOREDLED=y, then the red LED is not used by the
|
||||
system and the controls are as follows:
|
||||
|
||||
SYMBOL Meaning LED state
|
||||
Blue Red
|
||||
------------------- ----------------------- -------- ----------
|
||||
LED_STARTED NuttX has been started OFF Not used
|
||||
LED_HEAPALLOCATE Heap has been allocated OFF " " " "
|
||||
LED_IRQSENABLED Interrupts enabled OFF " " " "
|
||||
LED_STACKCREATED Idle stack created ON " " " "
|
||||
LED_INIRQ In an interrupt No change
|
||||
LED_SIGNAL In a signal handler No change
|
||||
LED_ASSERTION An assertion failed No change
|
||||
LED_PANIC The system has crashed Blinking " " " "
|
||||
LED_IDLE MCU is is sleep mode Not used
|
||||
|
||||
Thus if the blue LED is statically on, NuttX has successfully booted and
|
||||
is, apparently, running normally. If the red is flashing at
|
||||
approximately 2Hz, then a fatal error has been detected and the system
|
||||
is, apparently, running normally. If the red (or blue) LED is flashing
|
||||
at approximately 2Hz, then a fatal error has been detected and the system
|
||||
has halted.
|
||||
|
||||
Serial Consoles
|
||||
@ -832,7 +852,7 @@ Serial Consoles
|
||||
PB28 RXD1 PIO_USART1_RXD
|
||||
PB26 CTS1 PIO_USART1_CTS
|
||||
|
||||
NOTE: Debug TX (DTXD) and RX (DRXD) pins also are routed to the
|
||||
NOTE: Debug TX (DTXD) and RX (DRXD) pins also are routed to the
|
||||
ADM3312EARU via non populated 0 Ohm resistors. Thus allowing one
|
||||
skilled with a soldering iron to choose which UART is level
|
||||
translated by the ADM3312EARU
|
||||
@ -1650,7 +1670,7 @@ SDRAM Support
|
||||
|
||||
SDRAM Data Configuration
|
||||
------------------------
|
||||
|
||||
|
||||
In these configurations, .data and .bss are retained in ISRAM by default.
|
||||
.data and .bss can also be retained in SDRAM using these slightly
|
||||
different configuration settings. In this configuration, ISRAM is
|
||||
|
@ -132,18 +132,24 @@
|
||||
/* LED index values for use with sam_setled() */
|
||||
|
||||
#define BOARD_BLUE 0
|
||||
#define BOARD_RED 1
|
||||
#define BOARD_NLEDS 2
|
||||
#ifdef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
# define BOARD_NLEDS 1
|
||||
#else
|
||||
# define BOARD_RED 1
|
||||
# define BOARD_NLEDS 2
|
||||
#endif
|
||||
|
||||
/* LED bits for use with sam_setleds() */
|
||||
|
||||
#define BOARD_BLUE_BIT (1 << BOARD_BLUE)
|
||||
#define BOARD_RED_BIT (1 << BOARD_RED)
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
# define BOARD_RED_BIT (1 << BOARD_RED)
|
||||
#endif
|
||||
|
||||
/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
* defined. In that case, the usage by the board port is defined in
|
||||
* include/board.h and src/sam_leds.c. The LEDs are used to encode OS-related
|
||||
* events as follows:
|
||||
* events as follows when the red LED (PE24) is available:
|
||||
*
|
||||
* SYMBOL Val Meaning LED state
|
||||
* Blue Red
|
||||
@ -158,9 +164,13 @@
|
||||
#define LED_PANIC 3 /* The system has crashed OFF Blinking */
|
||||
#undef LED_IDLE /* MCU is is sleep mode Not used */
|
||||
|
||||
/* Thus if the blue LED is statically on, NuttX has successfully booted and
|
||||
* is, apparently, running normmally. If the red is flashing at
|
||||
* approximately 2Hz, then a fatal error has been detected and the system
|
||||
/* If CONFIG_SAMA5D3xEK_NOREDLED=y, then the red LED is not used by the
|
||||
* system. The only difference from the above is that it is the blue, not
|
||||
* the red LED that blinks in the event of an PANIC.
|
||||
*
|
||||
* Thus if the blue LED is statically on, NuttX has successfully booted and
|
||||
* is, apparently, running normally. If the red (or blue) LED is flashing
|
||||
* at approximately 2Hz, then a fatal error has been detected and the system
|
||||
* has halted.
|
||||
*/
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* configs/sama5d3x-ek/src/sam_autoleds.c
|
||||
*
|
||||
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -123,7 +123,9 @@ void board_led_initialize(void)
|
||||
/* Configure LED PIOs for output */
|
||||
|
||||
sam_configpio(PIO_BLUE);
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
sam_configpio(PIO_RED);
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -133,7 +135,9 @@ void board_led_initialize(void)
|
||||
void board_led_on(int led)
|
||||
{
|
||||
bool blueoff = true; /* Low illuminates */
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
bool redon = false; /* High illuminates */
|
||||
#endif
|
||||
|
||||
switch (led)
|
||||
{
|
||||
@ -149,12 +153,18 @@ void board_led_on(int led)
|
||||
return;
|
||||
|
||||
case 3: /* LED_PANIC */
|
||||
#ifdef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
blueoff = false;
|
||||
#else
|
||||
redon = true;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
sam_piowrite(PIO_BLUE, blueoff);
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
sam_piowrite(PIO_RED, redon);
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -166,7 +176,9 @@ void board_led_off(int led)
|
||||
if (led != 2)
|
||||
{
|
||||
sam_piowrite(PIO_BLUE, true); /* Low illuminates */
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
sam_piowrite(PIO_RED, false); /* High illuminates */
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* configs/sama5d3x-ek/src/sam_userleds.c
|
||||
*
|
||||
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -108,7 +108,9 @@ void sam_ledinit(void)
|
||||
/* Configure LED PIOs for output */
|
||||
|
||||
sam_configpio(PIO_BLUE);
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
sam_configpio(PIO_RED);
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -126,12 +128,14 @@ void sam_setled(int led, bool ledon)
|
||||
ledcfg = PIO_BLUE;
|
||||
ledon = !ledon;
|
||||
}
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
else if (led == BOARD_RED)
|
||||
{
|
||||
/* High illuminates */
|
||||
|
||||
ledcfg = PIO_RED;
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
return;
|
||||
@ -153,10 +157,12 @@ void sam_setleds(uint8_t ledset)
|
||||
ledon = ((ledset & BOARD_BLUE_BIT) == 0);
|
||||
sam_piowrite(PIO_BLUE, ledon);
|
||||
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
/* High illuminates */
|
||||
|
||||
ledon = ((ledset & BOARD_RED_BIT) != 0);
|
||||
sam_piowrite(PIO_RED, ledon);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* !CONFIG_ARCH_LEDS */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/************************************************************************************
|
||||
* configs/sama5d3x-ek/src/sama5d3x-ek.h
|
||||
*
|
||||
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -349,12 +349,19 @@
|
||||
* that it is illuminated when power is applied even if PE24 is not
|
||||
* configured as an output. If PE24 is configured as an output, then the
|
||||
* LCD is illuminated by a high output.
|
||||
*
|
||||
* N.B. PE24 Drives the RED Led on the CM (SODIMM200), but unfortunately
|
||||
* it is also connected to ISI_RST on the MB (Main Board) and controlling
|
||||
* it will reset a Camera connected to the ISI
|
||||
*/
|
||||
|
||||
#define PIO_BLUE (PIO_OUTPUT | PIO_CFG_PULLUP | PIO_OUTPUT_SET | \
|
||||
PIO_PORT_PIOE | PIO_PIN25)
|
||||
#define PIO_RED (PIO_OUTPUT | PIO_CFG_PULLUP | PIO_OUTPUT_CLEAR | \
|
||||
|
||||
#ifndef CONFIG_SAMA5D3xEK_NOREDLED
|
||||
# define PIO_RED (PIO_OUTPUT | PIO_CFG_PULLUP | PIO_OUTPUT_CLEAR | \
|
||||
PIO_PORT_PIOE | PIO_PIN24)
|
||||
#endif
|
||||
|
||||
/* Buttons **************************************************************************/
|
||||
/* There are five push button switches on the SAMA5D3X-EK base board:
|
||||
|
Loading…
Reference in New Issue
Block a user