Update MRF24J40 starhub configuration for the SAME70 Xplained.
This commit is contained in:
parent
5ef33f3e58
commit
06473e89de
@ -2086,8 +2086,6 @@ FAR struct spi_dev_s *sam_spibus_initialize(int port)
|
|||||||
|
|
||||||
if (!spi->initialized)
|
if (!spi->initialized)
|
||||||
{
|
{
|
||||||
/* Enable clocking to the SPI block */
|
|
||||||
|
|
||||||
flags = enter_critical_section();
|
flags = enter_critical_section();
|
||||||
#if defined(CONFIG_SAMV7_SPI0_MASTER) && defined(CONFIG_SAMV7_SPI1_MASTER)
|
#if defined(CONFIG_SAMV7_SPI0_MASTER) && defined(CONFIG_SAMV7_SPI1_MASTER)
|
||||||
if (spino == 0)
|
if (spino == 0)
|
||||||
@ -2190,8 +2188,8 @@ FAR struct spi_dev_s *sam_spibus_initialize(int port)
|
|||||||
* be reconfigured if there is a change.
|
* be reconfigured if there is a change.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
offset = (unsigned int)g_csroffset[csno];
|
offset = (unsigned int)g_csroffset[csno];
|
||||||
regval = spi_getreg(spi, offset);
|
regval = spi_getreg(spi, offset);
|
||||||
regval &= ~(SPI_CSR_CPOL | SPI_CSR_NCPHA | SPI_CSR_BITS_MASK);
|
regval &= ~(SPI_CSR_CPOL | SPI_CSR_NCPHA | SPI_CSR_BITS_MASK);
|
||||||
regval |= (SPI_CSR_NCPHA | SPI_CSR_BITS(8));
|
regval |= (SPI_CSR_NCPHA | SPI_CSR_BITS(8));
|
||||||
spi_putreg(spi, regval, offset);
|
spi_putreg(spi, regval, offset);
|
||||||
|
@ -1238,6 +1238,95 @@ NOTES:
|
|||||||
Configuration sub-directories
|
Configuration sub-directories
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
|
mrf24j40-starhub
|
||||||
|
|
||||||
|
This configuration implement a hub node in a 6LoWPAN start network.
|
||||||
|
It is intended for the us the mrf24j40-starpoint configuration with
|
||||||
|
the clicker2-stm32 configurations. Essentially, the SAME70 Xplained
|
||||||
|
plays the roll of the hub in the configuration and the clicker2-stm32
|
||||||
|
boards are the endpoints in the start.
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
|
||||||
|
1. The serial console is configured by default for use with and Arduino
|
||||||
|
serial shield (UART3). You will need to reconfigure if you will
|
||||||
|
to use a different U[S]ART.
|
||||||
|
|
||||||
|
2. This configuration derives from the netnsh configuration, but adds
|
||||||
|
support for IPv6, 6LoWPAN, and the MRF24J40 IEEE 802.15.4 radio.
|
||||||
|
|
||||||
|
3. This configuration uses the Mikroe BEE MRF24j40 click boards and
|
||||||
|
connects to the SAMV71-XULT using a click shield as described above.
|
||||||
|
|
||||||
|
4. You must must have also have at least two clicker2-stm32 boards each
|
||||||
|
with an MRF24J40 BEE click board in order to run these tests.
|
||||||
|
|
||||||
|
5. The network initialization thread is NOT enabled. As a result, the
|
||||||
|
startup will hang if the Ethernet cable is not plugged in. For more
|
||||||
|
information, see the paragraphs above entitled "Network Initialization
|
||||||
|
Thread" and "Network Monitor".
|
||||||
|
|
||||||
|
6. This configuration supports logging of debug output to a circular
|
||||||
|
buffer in RAM. This feature is discussed fully in this Wiki page:
|
||||||
|
http://nuttx.org/doku.php?id=wiki:howtos:syslog . Relevant
|
||||||
|
configuration settings are summarized below:
|
||||||
|
|
||||||
|
Device Drivers:
|
||||||
|
CONFIG_RAMLOG=y : Enable the RAM-based logging feature.
|
||||||
|
CONFIG_RAMLOG_CONSOLE=n : (We don't use the RAMLOG console)
|
||||||
|
CONFIG_RAMLOG_SYSLOG=y : This enables the RAM-based logger as the
|
||||||
|
system logger.
|
||||||
|
CONFIG_RAMLOG_NONBLOCKING=y : Needs to be non-blocking for dmesg
|
||||||
|
CONFIG_RAMLOG_BUFSIZE=8192 : Buffer size is 8KiB
|
||||||
|
|
||||||
|
NOTE: This RAMLOG feature is really only of value if debug output
|
||||||
|
is enabled. But, by default, no debug output is disabled in this
|
||||||
|
configuration. Therefore, there is no logic that will add anything
|
||||||
|
to the RAM buffer. This feature is configured and in place only
|
||||||
|
to support any future debugging needs that you may have.
|
||||||
|
|
||||||
|
If you don't plan on using the debug features, then by all means
|
||||||
|
disable this feature and save 8KiB of RAM!
|
||||||
|
|
||||||
|
NOTE: There is an issue with capturing data in the RAMLOG: If
|
||||||
|
the system crashes, all of the crash dump information will go into
|
||||||
|
the RAMLOG and you will be unable to access it! You can tell that
|
||||||
|
the system has crashed because (a) it will be unresponsive and (b)
|
||||||
|
the LD2 will be blinking at about 2Hz.
|
||||||
|
|
||||||
|
You can also reconfigure to use stdout for debug output be disabling
|
||||||
|
all of the CONFIG_RAMLOG* settings listed above and enabling the
|
||||||
|
following in the .config file:
|
||||||
|
|
||||||
|
CONFIG_SYSLOG_CONSOLE=y
|
||||||
|
CONFIG_SYSLOG_SERIAL_CONSOLE=y
|
||||||
|
|
||||||
|
7. Telnet: The clicker2-stm32 star point configuration supports the
|
||||||
|
Telnet daemon, but not the Telnet client; the star hub configuration
|
||||||
|
supports the Telnet client, but not the Telnet daemon. Therefore,
|
||||||
|
the star hub can Telnet to any point in the star, the star endpoints
|
||||||
|
cannot initiate telnet sessions.
|
||||||
|
|
||||||
|
8. TCP and UDP Tests: The same TCP and UDP tests as described for
|
||||||
|
the clicker2-stm32 mrf24j40-starpoint configuration are supported on
|
||||||
|
the star endpoints, but NOT on the star hub. Therefore, all network
|
||||||
|
testing is between endpoints with the hub acting, well, only like a
|
||||||
|
hub.
|
||||||
|
|
||||||
|
The nsh> dmesg command can be use at any time on any node to see
|
||||||
|
any debug output that you have selected.
|
||||||
|
|
||||||
|
Telenet sessions may be initiated only from the hub to a star
|
||||||
|
endpoint:
|
||||||
|
|
||||||
|
C: nsh> telnet <server-ip> <-- Runs the Telnet client
|
||||||
|
|
||||||
|
Where <server-ip> is the IP address of either the E1 or I2 endpoints.
|
||||||
|
|
||||||
|
STATUS:
|
||||||
|
2017-08-16: Configurations added. Currently hangs in mrf24j40_reset()
|
||||||
|
before the NSH appears on the serial console.
|
||||||
|
|
||||||
netnsh:
|
netnsh:
|
||||||
|
|
||||||
Configures the NuttShell (nsh) located at examples/nsh. There are two
|
Configures the NuttShell (nsh) located at examples/nsh. There are two
|
||||||
|
132
configs/same70-xplained/mrf24j40-starhub/defconfig
Normal file
132
configs/same70-xplained/mrf24j40-starhub/defconfig
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
# CONFIG_ARCH_RAMFUNCS is not set
|
||||||
|
# CONFIG_NET_IPv4 is not set
|
||||||
|
# CONFIG_NSH_DISABLE_DATE is not set
|
||||||
|
# CONFIG_SAMV7_UART0 is not set
|
||||||
|
# CONFIG_SAMV7_UART2 is not set
|
||||||
|
# CONFIG_SAMV7_UART4 is not set
|
||||||
|
CONFIG_ARCH_BOARD_SAME70_XPLAINED=y
|
||||||
|
CONFIG_ARCH_BOARD="same70-xplained"
|
||||||
|
CONFIG_ARCH_BUTTONS=y
|
||||||
|
CONFIG_ARCH_CHIP_SAME70=y
|
||||||
|
CONFIG_ARCH_CHIP_SAME70Q=y
|
||||||
|
CONFIG_ARCH_CHIP_SAME70Q21=y
|
||||||
|
CONFIG_ARCH_CHIP_SAMV7=y
|
||||||
|
CONFIG_ARCH_INTERRUPTSTACK=2048
|
||||||
|
CONFIG_ARCH_IRQBUTTONS=y
|
||||||
|
CONFIG_ARCH_STACKDUMP=y
|
||||||
|
CONFIG_ARCH="arm"
|
||||||
|
CONFIG_ARMV7M_DCACHE=y
|
||||||
|
CONFIG_ARMV7M_ICACHE=y
|
||||||
|
CONFIG_ARMV7M_LAZYFPU=y
|
||||||
|
CONFIG_AT24XX_ADDR=0x57
|
||||||
|
CONFIG_AT24XX_EXTENDED=y
|
||||||
|
CONFIG_AT24XX_EXTSIZE=160
|
||||||
|
CONFIG_AT24XX_SIZE=2
|
||||||
|
CONFIG_BOARD_LOOPSPERMSEC=51262
|
||||||
|
CONFIG_BUILTIN=y
|
||||||
|
CONFIG_DISABLE_POLL=y
|
||||||
|
CONFIG_DRIVERS_IEEE802154=y
|
||||||
|
CONFIG_DRIVERS_WIRELESS=y
|
||||||
|
CONFIG_ETH0_PHY_KSZ8061=y
|
||||||
|
CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y
|
||||||
|
CONFIG_EXAMPLES_NSH=y
|
||||||
|
CONFIG_FAT_LCNAMES=y
|
||||||
|
CONFIG_FAT_LFN=y
|
||||||
|
CONFIG_FS_FAT=y
|
||||||
|
CONFIG_FS_PROCFS=y
|
||||||
|
CONFIG_HAVE_CXX=y
|
||||||
|
CONFIG_HAVE_CXXINITIALIZE=y
|
||||||
|
CONFIG_HOST_WINDOWS=y
|
||||||
|
CONFIG_IEEE802154_I8SAK=y
|
||||||
|
CONFIG_IEEE802154_IND_PREALLOC=32
|
||||||
|
CONFIG_IEEE802154_MACDEV=y
|
||||||
|
CONFIG_IEEE802154_MRF24J40=y
|
||||||
|
CONFIG_IEEE802154_NETDEV=y
|
||||||
|
CONFIG_INTELHEX_BINARY=y
|
||||||
|
CONFIG_IOB_BUFSIZE=128
|
||||||
|
CONFIG_IOB_NBUFFERS=32
|
||||||
|
CONFIG_IOB_NCHAINS=16
|
||||||
|
CONFIG_MAC802154_NNOTIF=48
|
||||||
|
CONFIG_MAC802154_NTXDESC=32
|
||||||
|
CONFIG_MAX_TASKS=16
|
||||||
|
CONFIG_MAX_WDOGPARMS=2
|
||||||
|
CONFIG_MTD_AT24XX=y
|
||||||
|
CONFIG_MTD_AT25=y
|
||||||
|
CONFIG_MTD_CONFIG=y
|
||||||
|
CONFIG_MTD=y
|
||||||
|
CONFIG_NET_6LOWPAN=y
|
||||||
|
CONFIG_NET_BROADCAST=y
|
||||||
|
CONFIG_NET_ETH_MTU=590
|
||||||
|
CONFIG_NET_ETH_TCP_RECVWNDO=536
|
||||||
|
CONFIG_NET_HOSTNAME="MRF24J40-Hub"
|
||||||
|
CONFIG_NET_ICMPv6_NEIGHBOR=y
|
||||||
|
CONFIG_NET_ICMPv6_PING=y
|
||||||
|
CONFIG_NET_ICMPv6=y
|
||||||
|
CONFIG_NET_IPv6=y
|
||||||
|
CONFIG_NET_SOCKOPTS=y
|
||||||
|
CONFIG_NET_STAR=y
|
||||||
|
CONFIG_NET_STARHUB=y
|
||||||
|
CONFIG_NET_STATISTICS=y
|
||||||
|
CONFIG_NET_TCP_WRITE_BUFFERS=y
|
||||||
|
CONFIG_NET_TCP=y
|
||||||
|
CONFIG_NET_TCPBACKLOG=y
|
||||||
|
CONFIG_NET_UDP=y
|
||||||
|
CONFIG_NET=y
|
||||||
|
CONFIG_NETDB_DNSCLIENT=y
|
||||||
|
CONFIG_NETDB_DNSSERVER_NOADDR=y
|
||||||
|
CONFIG_NETDEV_PHY_IOCTL=y
|
||||||
|
CONFIG_NETDEV_STATISTICS=y
|
||||||
|
CONFIG_NETDEV_WIRELESS_IOCTL=y
|
||||||
|
CONFIG_NETUTILS_TELNETC=y
|
||||||
|
CONFIG_NETUTILS_TELNETD=y
|
||||||
|
CONFIG_NETUTILS_WEBCLIENT=y
|
||||||
|
CONFIG_NFILE_DESCRIPTORS=8
|
||||||
|
CONFIG_NFILE_STREAMS=8
|
||||||
|
CONFIG_NSH_ARCHINIT=y
|
||||||
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
CONFIG_NSH_DISABLE_GET=y
|
||||||
|
CONFIG_NSH_DISABLE_PUT=y
|
||||||
|
CONFIG_NSH_DISABLE_WGET=y
|
||||||
|
CONFIG_NSH_FILEIOSIZE=512
|
||||||
|
CONFIG_NSH_LINELEN=64
|
||||||
|
CONFIG_NSH_MACADDR=0x00fade00deadbeef
|
||||||
|
CONFIG_NSH_NOMAC=y
|
||||||
|
CONFIG_NSH_READLINE=y
|
||||||
|
CONFIG_PREALLOC_MQ_MSGS=4
|
||||||
|
CONFIG_PREALLOC_TIMERS=4
|
||||||
|
CONFIG_RAM_SIZE=393216
|
||||||
|
CONFIG_RAM_START=0x20400000
|
||||||
|
CONFIG_RAMLOG_BUFSIZE=8192
|
||||||
|
CONFIG_RAMLOG_SYSLOG=y
|
||||||
|
CONFIG_RAMLOG=y
|
||||||
|
CONFIG_RAW_BINARY=y
|
||||||
|
CONFIG_RR_INTERVAL=200
|
||||||
|
CONFIG_SAME70XPLAINED_CLICKSHIELD=y
|
||||||
|
CONFIG_SAMV7_EMAC_HPWORK=y
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR_100FD=0x6
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR_100HD=0x2
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR_10FD=0x5
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR_10HD=0x1
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR_ALTCONFIG=y
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR_ALTMODE=0x7
|
||||||
|
CONFIG_SAMV7_EMAC0_PHYSR=30
|
||||||
|
CONFIG_SAMV7_EMAC0_RMII=y
|
||||||
|
CONFIG_SAMV7_EMAC0=y
|
||||||
|
CONFIG_SAMV7_GPIO_IRQ=y
|
||||||
|
CONFIG_SAMV7_GPIOA_IRQ=y
|
||||||
|
CONFIG_SAMV7_GPIOC_IRQ=y
|
||||||
|
CONFIG_SAMV7_SPI0=y
|
||||||
|
CONFIG_SAMV7_UART3=y
|
||||||
|
CONFIG_SAMV7_XDMAC=y
|
||||||
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_LPWORK=y
|
||||||
|
CONFIG_SCHED_LPWORKPRIORITY=160
|
||||||
|
CONFIG_SCHED_WAITPID=y
|
||||||
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
|
CONFIG_START_DAY=16
|
||||||
|
CONFIG_START_MONTH=8
|
||||||
|
CONFIG_UART3_SERIAL_CONSOLE=y
|
||||||
|
CONFIG_USER_ENTRYPOINT="nsh_main"
|
||||||
|
CONFIG_WIRELESS_IEEE802154=y
|
||||||
|
CONFIG_WIRELESS=y
|
@ -314,7 +314,7 @@ int arch_phy_irq(FAR const char *intf, xcpt_t handler, void *arg,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
nerr("ERROR: Unsupported interface: %s\n", intf);
|
nerr("ERROR: Unsupported interface: %s\n", intf);
|
||||||
return NULL;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Disable interrupts until we are done. This guarantees that the
|
/* Disable interrupts until we are done. This guarantees that the
|
||||||
|
@ -75,7 +75,7 @@ struct sam_priv_s
|
|||||||
uint32_t rstcfg;
|
uint32_t rstcfg;
|
||||||
#endif
|
#endif
|
||||||
uint8_t irq;
|
uint8_t irq;
|
||||||
uint8_t spidev;
|
uint8_t csno;
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -121,7 +121,7 @@ static struct sam_priv_s g_mrf24j40_mb1_priv =
|
|||||||
.rstcfg = CLICK_MB1_RESET,
|
.rstcfg = CLICK_MB1_RESET,
|
||||||
#endif
|
#endif
|
||||||
.irq = IRQ_MB1,
|
.irq = IRQ_MB1,
|
||||||
.spidev = 0,
|
.csno = MB1_CSNO,
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ static struct sam_priv_s g_mrf24j40_mb2_priv =
|
|||||||
.rstcfg = CLICK_MB2_RESET,
|
.rstcfg = CLICK_MB2_RESET,
|
||||||
#endif
|
#endif
|
||||||
.irq = IRQ_MB2,
|
.irq = IRQ_MB2,
|
||||||
.spidev = 0,
|
.csno = MB2_CSNO,
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -244,10 +244,10 @@ static int sam_mrf24j40_devsetup(FAR struct sam_priv_s *priv)
|
|||||||
|
|
||||||
/* Initialize the SPI bus and get an instance of the SPI interface */
|
/* Initialize the SPI bus and get an instance of the SPI interface */
|
||||||
|
|
||||||
spi = sam_spibus_initialize(priv->spidev);
|
spi = sam_spibus_initialize(priv->csno);
|
||||||
if (spi == NULL)
|
if (spi == NULL)
|
||||||
{
|
{
|
||||||
wlerr("ERROR: Failed to initialize SPI bus %d\n", priv->spidev);
|
wlerr("ERROR: Failed to initialize SPI bus %d\n", priv->csno);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ static int sam_mrf24j40_devsetup(FAR struct sam_priv_s *priv)
|
|||||||
radio = mrf24j40_init(spi, &priv->dev);
|
radio = mrf24j40_init(spi, &priv->dev);
|
||||||
if (radio == NULL)
|
if (radio == NULL)
|
||||||
{
|
{
|
||||||
wlerr("ERROR: Failed to initialize SPI bus %d\n", priv->spidev);
|
wlerr("ERROR: Failed to initialize MRF24J40 radio\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ static int sam_mrf24j40_devsetup(FAR struct sam_priv_s *priv)
|
|||||||
|
|
||||||
#ifdef CONFIG_IEEE802154_NETDEV
|
#ifdef CONFIG_IEEE802154_NETDEV
|
||||||
/* Use the IEEE802.15.4 MAC interface instance to create a 6LoWPAN
|
/* Use the IEEE802.15.4 MAC interface instance to create a 6LoWPAN
|
||||||
* network interface by wrapping the MAC intrface instance in a
|
* network interface by wrapping the MAC interface instance in a
|
||||||
* network device driver via mac802154dev_register().
|
* network device driver via mac802154dev_register().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ static int sam_mrf24j40_devsetup(FAR struct sam_priv_s *priv)
|
|||||||
|
|
||||||
#ifdef CONFIG_IEEE802154_MACDEV
|
#ifdef CONFIG_IEEE802154_MACDEV
|
||||||
/* If want to call these APIs from userspace, you have to wrap the MAC
|
/* If want to call these APIs from userspace, you have to wrap the MAC
|
||||||
* interface in a character device viamac802154dev_register().
|
* interface in a character device via mac802154dev_register().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ret = mac802154dev_register(mac, 0);
|
ret = mac802154dev_register(mac, 0);
|
||||||
|
@ -368,6 +368,9 @@
|
|||||||
#define IRQ_MB1 SAM_IRQ_PA5
|
#define IRQ_MB1 SAM_IRQ_PA5
|
||||||
#define IRQ_MB2 SAM_IRQ_PA6
|
#define IRQ_MB2 SAM_IRQ_PA6
|
||||||
|
|
||||||
|
#define MB1_CSNO SPI0_CS0 /* REVISIT PA5 is not one of the NPCS pins */
|
||||||
|
#define MB2_CSNO SPI0_CS1 /* REVISIT PA6 is not one of the NPCS pins */
|
||||||
|
|
||||||
/* SP chip selects */
|
/* SP chip selects */
|
||||||
|
|
||||||
#define CLICK_MB1_CS (GPIO_OUTPUT | GPIO_CFG_DEFAULT | GPIO_OUTPUT_SET | \
|
#define CLICK_MB1_CS (GPIO_OUTPUT | GPIO_CFG_DEFAULT | GPIO_OUTPUT_SET | \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user