mirror of
https://github.com/apache/nuttx.git
synced 2026-05-21 13:13:08 +08:00
Documentation: migrate STM32F1
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,116 @@
|
||||
==============
|
||||
ET-STM32 Stamp
|
||||
==============
|
||||
|
||||
This README discusses issues/thoughts unique to NuttX configuration(s) for the
|
||||
ET-STM32 Stamp board from Futurlec (https://www.futurlec.com/ET-STM32_Stamp.shtml).
|
||||
|
||||
Microprocessor: 32-bit ARM Cortex M3 at 72MHz STM32F103RET6
|
||||
Memory: 512 KB Flash and 64 KB SRAM
|
||||
I/O Pins Out: 48
|
||||
ADCs: 16 (at 12-bit resolution)
|
||||
DACs: 2 (at 12-bit resolution)
|
||||
Peripherals: RTC, 4 timers, 2 I2Cs, 3 SPI ports, 1 on-board UART (upto 5 channels)
|
||||
Other: Sleep, stop, and standby modes; serial wire debug and JTAG interfaces
|
||||
|
||||
Please see link below for board specific details:
|
||||
|
||||
https://www.futurlec.com/ET-STM32_Stamp_Technical.shtml
|
||||
|
||||
This configuration supports the ET-STM32 Stamp module.
|
||||
|
||||
Development Environment
|
||||
=======================
|
||||
|
||||
Either Linux (recommended), Mac or Cygwin on Windows can be used for the development
|
||||
environment. The source has been built only using the GNU (Cortex M) toolchain.
|
||||
Other toolchains will likely cause problems.
|
||||
|
||||
WSL (Windows Subsystem for Linux) was used to develop, compile and test the NuttX
|
||||
build for the ET-STM32 Stamp platform.
|
||||
|
||||
Flashing/Programming
|
||||
====================
|
||||
|
||||
Prerequisites:
|
||||
|
||||
1. The ET-STM32 Stamp module from Futurlec.
|
||||
|
||||
2. An RS232 connection cable such as the one in this link: (Part code: RS232CONN):
|
||||
https://www.futurlec.com/DevBoardAccessories.shtml
|
||||
|
||||
It has a 4-pin connection header on one end and an RS-232 (DB9) female connector on
|
||||
the other. The 4-pin connector can be directly plugged onto the Stamp module.
|
||||
|
||||
3. An RS232 to USB converter cable. Ensure that a suitable driver is installed for
|
||||
the converter cable. When the cable is plugged in (for example), my PC lists the
|
||||
assigned port with this name: "USB-SERIAL CH340 (COM2)".
|
||||
|
||||
Assuming Windows 10, navigate to: This PC -> Manage -> Device Manager -> Ports.
|
||||
|
||||
4. ST's Flash loader demonstrator tool. You can download it from here:
|
||||
https://www.st.com/en/development-tools/flasher-stm32.html
|
||||
|
||||
To install the NuttX firmware (nuttx.bin) on the ET-STM32 Stamp:
|
||||
|
||||
1. First, power the Stamp module with a 3.3 VDC power supply. I made my own
|
||||
Stamp module fixture using a 3.3 VDC switching regulator, a prototype PCB card
|
||||
and some solder.
|
||||
|
||||
2. Insert the RS232CONN into the 4-pin on-board header. The other end should be
|
||||
connected to the USB port of the PC using the RS232-USB converter.
|
||||
|
||||
3. Set the BOOT1 jumper on your board to the ISP position.
|
||||
|
||||
4. Press the BOOT0 switch. The green "BOOT0=1" LED should light up.
|
||||
|
||||
5. Reset the board by pressing on the RESET button.
|
||||
|
||||
6. Using the ST Flash loader demonstrator to download the NuttX binary image.
|
||||
|
||||
7. Wait until programming is completed and press "Finish". Toggle the
|
||||
BOOT0 switch again. Reset the board.
|
||||
|
||||
You will now be presented with the NuttShell (NSH). Enjoy.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Information Common to All Configurations
|
||||
----------------------------------------
|
||||
|
||||
The ET-STM32 Stamp configuration is maintained in a sub-directory and can be
|
||||
selected as follow::
|
||||
|
||||
tools/configure.sh et-stm32-stamp:<subdir>
|
||||
|
||||
Before building, make sure the PATH environment variable includes the
|
||||
correct path to the directory than holds your toolchain binaries.
|
||||
|
||||
And then build NuttX by simply typing the following. At the conclusion of
|
||||
the make, the nuttx binary will reside in an ELF file called, simply, nuttx.::
|
||||
|
||||
make
|
||||
|
||||
The <subdir> that is provided above as an argument to the tools/configure.sh
|
||||
must be in one of the following.
|
||||
|
||||
NOTES:
|
||||
|
||||
1. These configurations use the mconf-based configuration tool. To
|
||||
change any of these configurations using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
Configuration Sub-directories
|
||||
-----------------------------
|
||||
|
||||
nsh:
|
||||
----
|
||||
|
||||
This configuration directory provide the basic NuttShell (NSH).
|
||||
A serial console is provided on USART1.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,214 @@
|
||||
=====
|
||||
maple
|
||||
=====
|
||||
|
||||
This README discusses issues unique to NuttX configurations for the
|
||||
maple board from LeafLabs (http://leaflabs.com).
|
||||
|
||||
Microprocessor: 32-bit ARM Cortex M3 at 72MHz STM32F103RBT6 (STM32F103CBT6 for mini version)
|
||||
Memory: 120 KB Flash and 20 KB SRAM
|
||||
I/O Pins Out: 43 (34 for mini version)
|
||||
ADCs: 9 (at 12-bit resolution)
|
||||
Peripherals: 4 timers, 2 I2Cs, 2 SPI ports, 3 USARTs
|
||||
Other: Sleep, stop, and standby modes; serial wire debug and JTAG interfaces
|
||||
|
||||
Please see below link for a list of maple devices and documentations.
|
||||
|
||||
http://leaflabs.com/devices
|
||||
http://leaflabs.com/docs
|
||||
|
||||
This config supports Maple and Maple Mini.
|
||||
|
||||
Development Environment
|
||||
=======================
|
||||
|
||||
Either Linux (recommended), Mac or Cygwin on Windows can be used for the development
|
||||
environment. The source has been built only using the GNU toolchain (see below).
|
||||
Other toolchains will likely cause problems.
|
||||
|
||||
DFU
|
||||
===
|
||||
|
||||
The linker files in these projects can be configured to indicate that you
|
||||
will be loading code using STMicro built-in USB Device Firmware Upgrade (DFU)
|
||||
loader or via some JTAG emulator. You can specify the DFU bootloader by
|
||||
adding the following line::
|
||||
|
||||
CONFIG_STM32_DFU=y
|
||||
|
||||
to your .config file. Most of the configurations in this directory are set
|
||||
up to use the DFU loader.
|
||||
|
||||
If CONFIG_STM32_DFU is defined, the code will not be positioned at the beginning
|
||||
of FLASH (0x08000000) but will be offset to 0x08005000. This offset is needed
|
||||
to make space for the DFU loader and 0x08005000 is where the DFU loader expects
|
||||
to find new applications at boot time. If you need to change that origin for some
|
||||
other bootloader, you will need to edit the file(s) ld.script.dfu for each
|
||||
configuration. In LeafLabs case, we are using maple bootloader:
|
||||
|
||||
http://leaflabs.com/docs/bootloader.html
|
||||
|
||||
For Linux or Mac
|
||||
-----------------
|
||||
|
||||
While on Linux or Mac, we can use dfu-util to upload nuttx binary.
|
||||
|
||||
1. Make sure we have installed dfu-util. (From yum, apt-get or build from source.)
|
||||
2. Start the DFU loader (bootloader) on the maple board. You do this by
|
||||
resetting the board while holding the "Key" button. Windows should
|
||||
recognize that the DFU loader has been installed.
|
||||
3. Flash the nuttx.bin to the board use dfu-util. Here's an example::
|
||||
|
||||
$ dfu-util -a1 -d 1eaf:0003 -D nuttx.bin -R
|
||||
|
||||
For anything not clear, we can refer to LeafLabs official document:
|
||||
|
||||
http://leaflabs.com/docs/unix-toolchain.html
|
||||
|
||||
For Windows
|
||||
------------
|
||||
|
||||
The DFU SE PC-based software is available from the STMicro website,
|
||||
http://www.st.com. General usage instructions:
|
||||
|
||||
1. Connect the maple board to your computer using a USB
|
||||
cable.
|
||||
2. Start the DFU loader on the maple board. You do this by
|
||||
resetting the board while holding the "Key" button. Windows should
|
||||
recognize that the DFU loader has been installed.
|
||||
3. Run the DFU SE program to load nuttx.bin into FLASH.
|
||||
|
||||
What if the DFU loader is not in FLASH? The loader code is available
|
||||
inside of the Demo directory of the USBLib ZIP file that can be downloaded
|
||||
from the STMicro Website. You can build it using RIDE (or other toolchains);
|
||||
you will need a JTAG emulator to burn it into FLASH the first time.
|
||||
|
||||
In order to use STMicro's built-in DFU loader, you will have to get
|
||||
the NuttX binary into a special format with a .dfu extension. The
|
||||
DFU SE PC_based software installation includes a file "DFU File Manager"
|
||||
conversion program that a file in Intel Hex format to the special DFU
|
||||
format. When you successfully build NuttX, you will find a file called
|
||||
nutt.hex in the top-level directory. That is the file that you should
|
||||
provide to the DFU File Manager. You will end up with a file called
|
||||
nuttx.dfu that you can use with the STMicro DFU SE program.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Information Common to All Configurations
|
||||
----------------------------------------
|
||||
|
||||
Each Maple configuration is maintained in a sub-directory and
|
||||
can be selected as follow::
|
||||
|
||||
tools/configure.sh maple:<subdir>
|
||||
|
||||
Before building, make sure the PATH environment variable includes the
|
||||
correct path to the directory than holds your toolchain binaries.
|
||||
|
||||
And then build NuttX by simply typing the following. At the conclusion of
|
||||
the make, the nuttx binary will reside in an ELF file called, simply, nuttx.::
|
||||
|
||||
make
|
||||
|
||||
The <subdir> that is provided above as an argument to the tools/configure.sh
|
||||
must be is one of the following.
|
||||
|
||||
NOTES:
|
||||
|
||||
1. These configurations use the mconf-based configuration tool. To
|
||||
change any of these configurations using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
Configuration Sub-directories
|
||||
-----------------------------
|
||||
|
||||
nsh
|
||||
---
|
||||
|
||||
This configuration directory provide the basic NuttShell (NSH).
|
||||
A serial console is provided on USART1.
|
||||
|
||||
NOTES:
|
||||
|
||||
1. Currently configured for the STM32F103CB. But this is easily reconfigured::
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103RB=n
|
||||
CONFIG_ARCH_CHIP_STM32F103CB=y
|
||||
|
||||
2. Support for the I2C tool has been disabled, but can be restored
|
||||
with following configure options::
|
||||
|
||||
System Type -> Peripherals
|
||||
CONFIG_STM32_I2C1=y
|
||||
CONFIG_STM32_I2C2=y
|
||||
CONFIG_STM32_I2CTIMEOSEC=1
|
||||
CONFIG_STM32_I2CTIMEOMS=500
|
||||
CONFIG_STM32_I2CTIMEOTICKS=500
|
||||
|
||||
Drivers
|
||||
CONFIG_I2C=y
|
||||
|
||||
Applications -> System Add-Ons
|
||||
CONFIG_SYSTEM_I2CTOOL=y
|
||||
CONFIG_I2CTOOL_MINBUS=1
|
||||
CONFIG_I2CTOOL_MAXBUS=2
|
||||
CONFIG_I2CTOOL_MINADDR=0x0
|
||||
CONFIG_I2CTOOL_MAXADDR=0xf0
|
||||
CONFIG_I2CTOOL_MAXREGADDR=0xff
|
||||
CONFIG_I2CTOOL_DEFFREQ=100000
|
||||
|
||||
nx
|
||||
--
|
||||
|
||||
This configuration has been used to bring up the Sharp Memory LCD
|
||||
on a custom board. This NX configuration was used for testing that
|
||||
LCD. Debug output will appear on USART1.
|
||||
|
||||
NOTES:
|
||||
1. Currently configured for the STM32F103CB. But this is easily reconfigured::
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103RB=n
|
||||
CONFIG_ARCH_CHIP_STM32F103CB=y
|
||||
|
||||
2. You won't be able to buy a Sharp Memory LCD to use with your
|
||||
Maple. If you want one, you will have to make one yourself.
|
||||
|
||||
usbnsh
|
||||
------
|
||||
|
||||
This is an alternative NuttShell (NSH) configuration that uses a USB
|
||||
serial console for interaction.
|
||||
|
||||
NOTES:
|
||||
1. Currently configured for the STM32F103CB. But this is easily reconfigured::
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103RB=n
|
||||
CONFIG_ARCH_CHIP_STM32F103CB=y
|
||||
|
||||
2. Support for the I2C tool has been disabled, but can be restored
|
||||
with following configure options::
|
||||
|
||||
System Type -> Peripherals
|
||||
CONFIG_STM32_I2C1=y
|
||||
CONFIG_STM32_I2C2=y
|
||||
CONFIG_STM32_I2CTIMEOSEC=1
|
||||
CONFIG_STM32_I2CTIMEOMS=500
|
||||
CONFIG_STM32_I2CTIMEOTICKS=500
|
||||
|
||||
Drivers
|
||||
CONFIG_I2C=y
|
||||
|
||||
Applications -> System Add-Ons
|
||||
CONFIG_SYSTEM_I2CTOOL=y
|
||||
CONFIG_I2CTOOL_MINBUS=1
|
||||
CONFIG_I2CTOOL_MAXBUS=2
|
||||
CONFIG_I2CTOOL_MINADDR=0x0
|
||||
CONFIG_I2CTOOL_MAXADDR=0xf0
|
||||
CONFIG_I2CTOOL_MAXREGADDR=0xff
|
||||
CONFIG_I2CTOOL_DEFFREQ=100000
|
||||
+13
-32
@@ -1,46 +1,26 @@
|
||||
Nucleo-64 Boards
|
||||
================
|
||||
ST Nucleo F103RB
|
||||
================
|
||||
|
||||
The Nucleo-F103RB is a member of the Nucleo-64 board family. The Nucleo-64
|
||||
is a standard board for use with several STM32 parts in the LQFP64 package.
|
||||
Variants include
|
||||
|
||||
Order code Targeted STM32
|
||||
------------- --------------
|
||||
NUCLEO-F030R8 STM32F030R8T6
|
||||
NUCLEO-F070RB STM32F070RBT6
|
||||
NUCLEO-F072RB STM32F072RBT6
|
||||
NUCLEO-F091RC STM32F091RCT6
|
||||
NUCLEO-F103RB STM32F103RBT6
|
||||
NUCLEO-F302R8 STM32F302R8T6
|
||||
NUCLEO-F303RE STM32F303RET6
|
||||
NUCLEO-F334R8 STM32F334R8T6
|
||||
NUCLEO-F401RE STM32F401RET6
|
||||
NUCLEO-F410RB STM32F410RBT6
|
||||
NUCLEO-F411RE STM32F411RET6
|
||||
NUCLEO-F446RE STM32F446RET6
|
||||
NUCLEO-L053R8 STM32L053R8T6
|
||||
NUCLEO-L073RZ STM32L073RZT6
|
||||
NUCLEO-L152RE STM32L152RET6
|
||||
NUCLEO-L452RE STM32L452RET6
|
||||
NUCLEO-L476RG STM32L476RGT6
|
||||
The Nucleo-F103RB is a member of the Nucleo-64 board family.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
ihm07m1_b16:
|
||||
------------
|
||||
ihm07m1_b16:
|
||||
------------
|
||||
|
||||
These examples are dedicated for the X-NUCLEO-IHM07M1 expansion board
|
||||
based on L6230 DMOS driver for three-phase brushless DC motors.
|
||||
These examples are dedicated for the X-NUCLEO-IHM07M1 expansion board
|
||||
based on L6230 DMOS driver for three-phase brushless DC motors.
|
||||
|
||||
X-NUCLEO-IHM07M1 must be configured to work with FOC and 3-shunt
|
||||
resistors. See ST documentation for details.
|
||||
X-NUCLEO-IHM07M1 must be configured to work with FOC and 3-shunt
|
||||
resistors. See ST documentation for details.
|
||||
|
||||
Pin configuration for the X-NUCLEO-IHM07M1 (TIM1 configuration):
|
||||
Pin configuration for the X-NUCLEO-IHM07M1 (TIM1 configuration):
|
||||
|
||||
============== ================ =================
|
||||
Board Function Chip Function Chip Pin Number
|
||||
------------- ---------------- -----------------
|
||||
============== ================ =================
|
||||
Phase U high TIM1_CH1 PA8
|
||||
Phase U enable GPIO_PC10 PC10
|
||||
Phase V high TIM1_CH2 PA9
|
||||
@@ -76,6 +56,7 @@ Configurations
|
||||
DEBUG2 GPIO PC6
|
||||
DEBUG3 GPIO PC5
|
||||
DEBUG4 GPIO PC8
|
||||
============== ================ =================
|
||||
|
||||
Current shunt resistance = 0.33
|
||||
Current sense gain = -1.53 (inverted current)
|
||||
@@ -0,0 +1,3 @@
|
||||
===============
|
||||
olimexino-stm32
|
||||
===============
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,456 @@
|
||||
==========
|
||||
STM32 Tiny
|
||||
==========
|
||||
|
||||
This README discusses issues unique to NuttX configurations for the
|
||||
STM32 Tiny development board.
|
||||
|
||||
This board is available from several vendors on the net, and may
|
||||
be sold under different names. It is based on a STM32 F103C8T6 MCU, and
|
||||
is (always ?) bundled with a nRF24L01 wireless communication module.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
- LEDs
|
||||
- PWM
|
||||
- UARTs
|
||||
- Timer Inputs/Outputs
|
||||
- STM32 Tiny -specific Configuration Options
|
||||
- Configurations
|
||||
|
||||
LEDs
|
||||
====
|
||||
|
||||
The STM32Tiny board has only one software controllable LED.
|
||||
This LED can be used by the board port when CONFIG_ARCH_LEDS option is
|
||||
enabled.
|
||||
|
||||
If enabled the LED is simply turned on when the board boots
|
||||
successfully, and is blinking on panic / assertion failed.
|
||||
|
||||
PWM
|
||||
===
|
||||
|
||||
The STM32 Tiny has no real on-board PWM devices, but the board can be
|
||||
configured to output a pulse train using TIM3 CH2 on the GPIO line B.5
|
||||
(connected to the LED).
|
||||
Please note that the CONFIG_STM32_TIM3_PARTIAL_REMAP option must be enabled
|
||||
in this case.
|
||||
|
||||
UARTs
|
||||
=====
|
||||
|
||||
UART/USART PINS
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
USART1
|
||||
RX PA10
|
||||
TX PA9
|
||||
USART2
|
||||
CK PA4
|
||||
CTS PA0*
|
||||
RTS PA1
|
||||
RX PA3
|
||||
TX PA2
|
||||
USART3
|
||||
CK PB12*
|
||||
CTS PB13*
|
||||
RTS PB14*
|
||||
RX PB11
|
||||
TX PB10
|
||||
|
||||
* these IO lines are intended to be used by the wireless module on the board.
|
||||
|
||||
Default USART/UART Configuration
|
||||
--------------------------------
|
||||
|
||||
USART1 (RX & TX only) is available through the RS-232 port on the board. A MAX232 chip converts
|
||||
voltage to RS-232 level. This serial port can be used to flash a firmware using the boot loader
|
||||
integrated in the MCU.
|
||||
|
||||
Timer Inputs/Outputs
|
||||
====================
|
||||
|
||||
TIM1
|
||||
CH1 PA8
|
||||
CH2 PA9*
|
||||
CH3 PA10*
|
||||
CH4 PA11*
|
||||
TIM2
|
||||
CH1 PA0*, PA15, PA5
|
||||
CH2 PA1, PB3
|
||||
CH3 PA2, PB10*
|
||||
CH4 PA3, PB11
|
||||
TIM3
|
||||
CH1 PA6, PB4
|
||||
CH2 PA7, PB5*
|
||||
CH3 PB0
|
||||
CH4 PB1*
|
||||
TIM4
|
||||
CH1 PB6*
|
||||
CH2 PB7
|
||||
CH3 PB8
|
||||
CH4 PB9*
|
||||
|
||||
* Indicates pins that have other on-board functions and should be used only
|
||||
with care (See board datasheet).
|
||||
|
||||
STM32 Tiny - specific Configuration Options
|
||||
===============================================
|
||||
|
||||
|
||||
..
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
CONFIG_ARCH=arm
|
||||
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
|
||||
CONFIG_ARCH_ARM=y
|
||||
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
|
||||
CONFIG_ARCH_CORTEXM3=y
|
||||
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
|
||||
CONFIG_ARCH_CHIP=stm32
|
||||
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip:
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103C8=y
|
||||
|
||||
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG - Enables special STM32 clock
|
||||
configuration features.
|
||||
|
||||
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=n
|
||||
|
||||
CONFIG_ARCH_BOARD - Identifies the boards/ subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
|
||||
CONFIG_ARCH_BOARD=stm32_tiny
|
||||
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
|
||||
CONFIG_ARCH_BOARD_STM32_TINY=y
|
||||
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
|
||||
CONFIG_RAM_SIZE - Describes the installed DRAM (SRAM in this case):
|
||||
|
||||
CONFIG_RAM_SIZE=20480 (20Kb)
|
||||
|
||||
CONFIG_RAM_START - The start address of installed DRAM
|
||||
|
||||
CONFIG_RAM_START=0x20000000
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
|
||||
..
|
||||
Individual subsystems can be enabled:
|
||||
|
||||
AHB
|
||||
---
|
||||
CONFIG_STM32_CRC
|
||||
CONFIG_STM32_BKPSRAM
|
||||
|
||||
APB1
|
||||
----
|
||||
CONFIG_STM32_TIM2
|
||||
CONFIG_STM32_TIM3
|
||||
CONFIG_STM32_TIM4
|
||||
CONFIG_STM32_WWDG
|
||||
CONFIG_STM32_IWDG
|
||||
CONFIG_STM32_SPI2
|
||||
CONFIG_STM32_USART2
|
||||
CONFIG_STM32_USART3
|
||||
CONFIG_STM32_I2C1
|
||||
CONFIG_STM32_I2C2
|
||||
CONFIG_STM32_CAN1
|
||||
CONFIG_STM32_PWR -- Required for RTC
|
||||
|
||||
APB2
|
||||
----
|
||||
CONFIG_STM32_TIM1
|
||||
CONFIG_STM32_USART1
|
||||
CONFIG_STM32_ADC1
|
||||
CONFIG_STM32_ADC2
|
||||
CONFIG_STM32_SPI1
|
||||
|
||||
Timer devices may be used for different purposes. One special purpose is
|
||||
to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn
|
||||
is defined (as above) then the following may also be defined to indicate that
|
||||
the timer is intended to be used for pulsed output modulation or ADC conversion.
|
||||
Note that ADC require two definitions: Not only do you have
|
||||
to assign the timer (n) for used by the ADC, but then you also have to
|
||||
configure which ADC (m) it is assigned to.
|
||||
|
||||
CONFIG_STM32_TIMn_PWM Reserve timer n for use by PWM, n=1,..,14
|
||||
CONFIG_STM32_TIMn_ADC Reserve timer n for use by ADC, n=1,..,14
|
||||
CONFIG_STM32_TIMn_ADCm Reserve timer n to trigger ADCm, n=1,..,14, m=1,..,3
|
||||
|
||||
For each timer that is enabled for PWM usage, we need the following additional
|
||||
configuration settings:
|
||||
|
||||
CONFIG_STM32_TIMx_CHANNEL - Specifies the timer output channel {1,..,4}
|
||||
|
||||
NOTE: The STM32 timers are each capable of generating different signals on
|
||||
each of the four channels with different duty cycles. That capability is
|
||||
not supported by this driver: Only one output channel per timer.
|
||||
|
||||
JTAG Enable settings (by default only SW-DP is enabled):
|
||||
|
||||
CONFIG_STM32_JTAG_FULL_ENABLE - Enables full SWJ (JTAG-DP + SW-DP)
|
||||
CONFIG_STM32_JTAG_NOJNTRST_ENABLE - Enables full SWJ (JTAG-DP + SW-DP)
|
||||
but without JNTRST.
|
||||
CONFIG_STM32_JTAG_SW_ENABLE - Set JTAG-DP disabled and SW-DP enabled
|
||||
|
||||
STM32Tiny specific device driver settings
|
||||
|
||||
CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3)
|
||||
for the console and ttys0 (default is the USART1).
|
||||
CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be
|
||||
CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_U[S]ARTn_2STOP - Two stop bits
|
||||
|
||||
STM32Tiny CAN Configuration
|
||||
|
||||
CONFIG_CAN - Enables CAN support (one or both of CONFIG_STM32_CAN1 or
|
||||
CONFIG_STM32_CAN2 must also be defined)
|
||||
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
|
||||
Standard 11-bit IDs.
|
||||
CONFIG_CAN_FIFOSIZE - The size of the circular buffer of CAN messages.
|
||||
Default: 8
|
||||
CONFIG_CAN_NPENDINGRTR - The size of the list of pending RTR requests.
|
||||
Default: 4
|
||||
CONFIG_CAN_LOOPBACK - A CAN driver may or may not support a loopback
|
||||
mode for testing. The STM32 CAN driver does support loopback mode.
|
||||
CONFIG_STM32_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN1
|
||||
is defined.
|
||||
CONFIG_STM32_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN2
|
||||
is defined.
|
||||
CONFIG_STM32_CAN_TSEG1 - The number of CAN time quanta in segment 1.
|
||||
Default: 6
|
||||
CONFIG_STM32_CAN_TSEG2 - the number of CAN time quanta in segment 2.
|
||||
Default: 7
|
||||
CONFIG_STM32_CAN_REGDEBUG - If CONFIG_DEBUG_FEATURES is set, this will generate an
|
||||
dump of all CAN registers.
|
||||
|
||||
STM32Tiny SPI Configuration
|
||||
|
||||
CONFIG_STM32_SPI_INTERRUPTS - Select to enable interrupt driven SPI
|
||||
support. Non-interrupt-driven, poll-waiting is recommended if the
|
||||
interrupt rate would be to high in the interrupt driven case.
|
||||
CONFIG_STM32_SPIx_DMA - Use DMA to improve SPIx transfer performance.
|
||||
Cannot be used with CONFIG_STM32_SPI_INTERRUPT.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Each STM32Tiny configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
|
||||
tools/configure.sh STM32Tiny:<subdir>
|
||||
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
nsh
|
||||
---
|
||||
|
||||
Configures the NuttShell (nsh) located at apps/examples/nsh. This
|
||||
configuration enables a console on UART1. Support for
|
||||
builtin applications is enabled, but in the base configuration no
|
||||
builtin applications are selected (see NOTES below).
|
||||
|
||||
NOTES:
|
||||
|
||||
..
|
||||
1. This configuration uses the mconf-based configuration tool. To
|
||||
change this configuration using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
2. By default, this configuration uses the ARM EABI toolchain
|
||||
for Windows and builds under Cygwin (or probably MSYS). That
|
||||
can easily be reconfigured, of course.
|
||||
|
||||
CONFIG_HOST_WINDOWS=y : Builds under Windows
|
||||
CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
|
||||
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Windows
|
||||
|
||||
3. This example supports the PWM test (apps/examples/pwm) but this must
|
||||
be manually enabled by selecting:
|
||||
|
||||
CONFIG_PWM=y : Enable the generic PWM infrastructure
|
||||
CONFIG_STM32_TIM3=y : Enable TIM3
|
||||
CONFIG_STM32_TIM3_PWM=y : Use TIM3 to generate PWM output
|
||||
CONFIG_STM32_TIM3_PARTIAL_REMAP=y : Required to have the port B5 as timer PWM output (channel 2)
|
||||
CONFIG_STM32_TIM3_CHANNEL=2
|
||||
|
||||
See also apps/examples/README.txt
|
||||
|
||||
Note that the only supported board configuration uses the board LED as PWM output.
|
||||
|
||||
Special PWM-only debug options:
|
||||
|
||||
CONFIG_DEBUG_PWM_INFO
|
||||
|
||||
7. USB Support (CDC/ACM device)
|
||||
|
||||
CONFIG_STM32_OTGFS=y : STM32 OTG FS support
|
||||
CONFIG_USBDEV=y : USB device support must be enabled
|
||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||
CONFIG_NSH_BUILTIN_APPS=y : NSH built-in application support must be enabled
|
||||
CONFIG_NSH_ARCHINIT=y : To perform USB initialization
|
||||
|
||||
8. Using the USB console.
|
||||
|
||||
The STM32Tiny NSH configuration can be set up to use a USB CDC/ACM
|
||||
(or PL2303) USB console. The normal way that you would configure the
|
||||
the USB console would be to change the .config file like this:
|
||||
|
||||
CONFIG_STM32_OTGFS=y : STM32 OTG FS support
|
||||
CONFIG_USART2_SERIAL_CONSOLE=n : Disable the USART2 console
|
||||
CONFIG_DEV_CONSOLE=n : Inhibit use of /dev/console by other logic
|
||||
CONFIG_USBDEV=y : USB device support must be enabled
|
||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||
CONFIG_CDCACM_CONSOLE=y : Enable the CDC/ACM USB console.
|
||||
|
||||
NOTE: When you first start the USB console, you have hit ENTER a few
|
||||
times before NSH starts. The logic does this to prevent sending USB data
|
||||
before there is anything on the host side listening for USB serial input.
|
||||
|
||||
9. Here is an alternative USB console configuration. The following
|
||||
configuration will also create a NSH USB console but this version
|
||||
will use /dev/console. Instead, it will use the normal /dev/ttyACM0
|
||||
USB serial device for the console:
|
||||
|
||||
CONFIG_STM32_OTGFS=y : STM32 OTG FS support
|
||||
CONFIG_USART2_SERIAL_CONSOLE=y : Keep the USART2 console
|
||||
CONFIG_DEV_CONSOLE=y : /dev/console exists (but NSH won't use it)
|
||||
CONFIG_USBDEV=y : USB device support must be enabled
|
||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||
CONFIG_CDCACM_CONSOLE=n : Don't use the CDC/ACM USB console.
|
||||
CONFIG_NSH_USBCONSOLE=y : Instead use some other USB device for the console
|
||||
|
||||
The particular USB device that is used is:
|
||||
|
||||
CONFIG_NSH_USBCONDEV="/dev/ttyACM0"
|
||||
|
||||
The advantage of this configuration is only that it is easier to
|
||||
bet working. This alternative does has some side effects:
|
||||
|
||||
- When any other device other than /dev/console is used for a user
|
||||
interface, linefeeds (\n) will not be expanded to carriage return /
|
||||
linefeeds (\r\n). You will need to set your terminal program to account
|
||||
for this.
|
||||
|
||||
- /dev/console still exists and still refers to the serial port. So
|
||||
you can still use certain kinds of debug output (see include/debug.h, all
|
||||
of the debug output from interrupt handlers will be lost.
|
||||
|
||||
- But don't enable USB debug output! Since USB is console is used for
|
||||
USB debug output and you are using a USB console, there will be
|
||||
infinite loops and deadlocks: Debug output generates USB debug
|
||||
output which generatates USB debug output, etc. If you want USB
|
||||
debug output, you should consider enabling USB trace
|
||||
(CONFIG_USBDEV_TRACE) and perhaps the USB monitor (CONFIG_USBMONITOR).
|
||||
|
||||
See the usbnsh configuration below for more information on configuring
|
||||
USB trace output and the USB monitor.
|
||||
|
||||
usbnsh
|
||||
------
|
||||
|
||||
This is another NSH example. If differs from other 'nsh' configurations
|
||||
in that this configurations uses a USB serial device for console I/O.
|
||||
|
||||
NOTES:
|
||||
|
||||
..
|
||||
1. This configuration uses the mconf-based configuration tool. To
|
||||
change this configuration using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
2. By default, this configuration uses the ARM EABI toolchain
|
||||
for Windows and builds under Cygwin (or probably MSYS). That
|
||||
can easily be reconfigured, of course.
|
||||
|
||||
CONFIG_HOST_WINDOWS=y : Builds under Windows
|
||||
CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
|
||||
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Windows
|
||||
|
||||
3. This configuration does have UART2 output enabled and set up as
|
||||
the system logging device:
|
||||
|
||||
CONFIG_SYSLOG_CHAR=y : Use a character device for system logging
|
||||
CONFIG_SYSLOG_DEVPATH="/dev/ttyS0" : UART2 will be /dev/ttyS0
|
||||
|
||||
However, there is nothing to generate SYSLOG output in the default
|
||||
configuration so nothing should appear on UART2 unless you enable
|
||||
some debug output or enable the USB monitor.
|
||||
|
||||
4. Enabling USB monitor SYSLOG output. If tracing is enabled, the USB
|
||||
device will save encoded trace output in in-memory buffer; if the
|
||||
USB monitor is enabled, that trace buffer will be periodically
|
||||
emptied and dumped to the system logging device (UART2 in this
|
||||
configuration):
|
||||
|
||||
CONFIG_USBDEV_TRACE=y : Enable USB trace feature
|
||||
CONFIG_USBDEV_TRACE_NRECORDS=128 : Buffer 128 records in memory
|
||||
CONFIG_NSH_USBDEV_TRACE=n : No builtin tracing from NSH
|
||||
CONFIG_NSH_ARCHINIT=y : Automatically start the USB monitor
|
||||
CONFIG_USBMONITOR=y : Enable the USB monitor daemon
|
||||
CONFIG_USBMONITOR_STACKSIZE=2048 : USB monitor daemon stack size
|
||||
CONFIG_USBMONITOR_PRIORITY=50 : USB monitor daemon priority
|
||||
CONFIG_USBMONITOR_INTERVAL=2 : Dump trace data every 2 seconds
|
||||
|
||||
CONFIG_USBMONITOR_TRACEINIT=y : Enable TRACE output
|
||||
CONFIG_USBMONITOR_TRACECLASS=y
|
||||
CONFIG_USBMONITOR_TRACETRANSFERS=y
|
||||
CONFIG_USBMONITOR_TRACECONTROLLER=y
|
||||
CONFIG_USBMONITOR_TRACEINTERRUPTS=y
|
||||
|
||||
5. By default, this project assumes that you are *NOT* using the DFU
|
||||
bootloader.
|
||||
|
||||
Using the Prolifics PL2303 Emulation
|
||||
------------------------------------
|
||||
You could also use the non-standard PL2303 serial device instead of
|
||||
the standard CDC/ACM serial device by changing:
|
||||
|
||||
CONFIG_CDCACM=y : Disable the CDC/ACM serial device class
|
||||
CONFIG_CDCACM_CONSOLE=y : The CDC/ACM serial device is NOT the console
|
||||
CONFIG_PL2303=y : The Prolifics PL2303 emulation is enabled
|
||||
CONFIG_PL2303_CONSOLE=y : The PL2303 serial device is the console
|
||||
@@ -0,0 +1,3 @@
|
||||
===============
|
||||
STM32BUTTERFLY2
|
||||
===============
|
||||
File diff suppressed because it is too large
Load Diff
+56
-59
@@ -1,16 +1,10 @@
|
||||
README
|
||||
======
|
||||
===================
|
||||
ST STM32VLDiscovery
|
||||
===================
|
||||
|
||||
This README discusses issues unique to NuttX configurations for the STMicro
|
||||
STM32VLDiscovery (Value Line Discovery) board.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
- LEDs
|
||||
- UARTs
|
||||
- "STMicro STM32F100RB generic" specific Configuration Options
|
||||
- Configurations
|
||||
|
||||
LEDs
|
||||
====
|
||||
@@ -20,7 +14,7 @@ You should configure the port and pin number in
|
||||
boards/arm/stm32/stm32vldiscovery/src/stm32vldiscovery.h. This LED is 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/up_leds.c. The LED is used
|
||||
to encode OS-related events as follows:
|
||||
to encode OS-related events as follows::
|
||||
|
||||
SYMBOL Meaning LED1*
|
||||
green
|
||||
@@ -42,7 +36,7 @@ UART
|
||||
Default USART/UART Configuration
|
||||
--------------------------------
|
||||
|
||||
USART1 is enabled in all configurations (see */defconfig). RX and TX are
|
||||
USART1 is enabled in all configurations (see \*/defconfig). RX and TX are
|
||||
configured on pins PA10 and PA9, respectively. Then connect the RX pin of
|
||||
your USB/Serial adapter to TX pin (PA9) and the TX pin of your adapter to
|
||||
RX pin (PA10) of your board besides, of course, the GND pin.
|
||||
@@ -50,6 +44,8 @@ RX pin (PA10) of your board besides, of course, the GND pin.
|
||||
"STMicro STM32F100RB generic" specific Configuration Options
|
||||
============================================================
|
||||
|
||||
::
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
@@ -109,51 +105,51 @@ RX pin (PA10) of your board besides, of course, the GND pin.
|
||||
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
|
||||
Individual subsystems can be enabled:
|
||||
Individual subsystems can be enabled::
|
||||
|
||||
AHB
|
||||
----
|
||||
CONFIG_STM32_CRC
|
||||
CONFIG_STM32_DMA1
|
||||
CONFIG_STM32_DMA2
|
||||
AHB
|
||||
----
|
||||
CONFIG_STM32_CRC
|
||||
CONFIG_STM32_DMA1
|
||||
CONFIG_STM32_DMA2
|
||||
|
||||
APB1
|
||||
----
|
||||
CONFIG_STM32_TIM2
|
||||
CONFIG_STM32_TIM3
|
||||
CONFIG_STM32_TIM4
|
||||
CONFIG_STM32_TIM5
|
||||
CONFIG_STM32_TIM6
|
||||
CONFIG_STM32_TIM7
|
||||
CONFIG_STM32_TIM12
|
||||
CONFIG_STM32_TIM13
|
||||
CONFIG_STM32_TIM14
|
||||
CONFIG_STM32_RTC
|
||||
CONFIG_STM32_WWDG
|
||||
CONFIG_STM32_IWDG
|
||||
CONFIG_STM32_SPI2
|
||||
CONFIG_STM32_SPI3
|
||||
CONFIG_STM32_USART2
|
||||
CONFIG_STM32_USART3
|
||||
CONFIG_STM32_UART4
|
||||
CONFIG_STM32_UART5
|
||||
CONFIG_STM32_I2C1
|
||||
CONFIG_STM32_I2C2
|
||||
CONFIG_STM32_PWR -- Required for RTC
|
||||
CONFIG_STM32_BKP -- Required for RTC
|
||||
CONFIG_STM32_DAC1
|
||||
CONFIG_STM32_DAC2
|
||||
CONFIG_STM32_CEC
|
||||
APB1
|
||||
----
|
||||
CONFIG_STM32_TIM2
|
||||
CONFIG_STM32_TIM3
|
||||
CONFIG_STM32_TIM4
|
||||
CONFIG_STM32_TIM5
|
||||
CONFIG_STM32_TIM6
|
||||
CONFIG_STM32_TIM7
|
||||
CONFIG_STM32_TIM12
|
||||
CONFIG_STM32_TIM13
|
||||
CONFIG_STM32_TIM14
|
||||
CONFIG_STM32_RTC
|
||||
CONFIG_STM32_WWDG
|
||||
CONFIG_STM32_IWDG
|
||||
CONFIG_STM32_SPI2
|
||||
CONFIG_STM32_SPI3
|
||||
CONFIG_STM32_USART2
|
||||
CONFIG_STM32_USART3
|
||||
CONFIG_STM32_UART4
|
||||
CONFIG_STM32_UART5
|
||||
CONFIG_STM32_I2C1
|
||||
CONFIG_STM32_I2C2
|
||||
CONFIG_STM32_PWR -- Required for RTC
|
||||
CONFIG_STM32_BKP -- Required for RTC
|
||||
CONFIG_STM32_DAC1
|
||||
CONFIG_STM32_DAC2
|
||||
CONFIG_STM32_CEC
|
||||
|
||||
APB2
|
||||
----
|
||||
CONFIG_STM32_ADC1
|
||||
CONFIG_STM32_TIM1
|
||||
CONFIG_STM32_SPI1
|
||||
CONFIG_STM32_USART1
|
||||
CONFIG_STM32_TIM15
|
||||
CONFIG_STM32_TIM16
|
||||
CONFIG_STM32_TIM17
|
||||
APB2
|
||||
----
|
||||
CONFIG_STM32_ADC1
|
||||
CONFIG_STM32_TIM1
|
||||
CONFIG_STM32_SPI1
|
||||
CONFIG_STM32_USART1
|
||||
CONFIG_STM32_TIM15
|
||||
CONFIG_STM32_TIM16
|
||||
CONFIG_STM32_TIM17
|
||||
|
||||
Timer devices may be used for different purposes. One special purpose is
|
||||
to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn
|
||||
@@ -202,17 +198,18 @@ Configurations
|
||||
==============
|
||||
|
||||
Each STMicro STM32F100RB generic configuration is maintained in a sub-directory
|
||||
and can be selected as follow:
|
||||
and can be selected as follow::
|
||||
|
||||
tools/configure.sh stm32vldiscovery:<subdir>
|
||||
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
nsh:
|
||||
---
|
||||
Configures the NuttShell (nsh) located at apps/examples/nsh. The
|
||||
Configuration enables only the serial NSH interfaces.
|
||||
nsh
|
||||
---
|
||||
|
||||
Default toolchain:
|
||||
Configures the NuttShell (nsh) located at apps/examples/nsh. The
|
||||
Configuration enables only the serial NSH interfaces.
|
||||
|
||||
Default toolchain::
|
||||
|
||||
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Linux
|
||||
+277
-258
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,22 @@
|
||||
==========
|
||||
ST STM32F1
|
||||
==========
|
||||
|
||||
Supported MCUs
|
||||
==============
|
||||
|
||||
TODO
|
||||
|
||||
Peripheral Support
|
||||
==================
|
||||
|
||||
TODO
|
||||
|
||||
Supported Boards
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 1
|
||||
|
||||
boards/*/*
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,120 +0,0 @@
|
||||
README
|
||||
======
|
||||
|
||||
This README discusses issues/thoughts unique to NuttX configuration(s) for the
|
||||
ET-STM32 Stamp board from Futurlec (https://www.futurlec.com/ET-STM32_Stamp.shtml).
|
||||
|
||||
Microprocessor: 32-bit ARM Cortex M3 at 72MHz STM32F103RET6
|
||||
Memory: 512 KB Flash and 64 KB SRAM
|
||||
I/O Pins Out: 48
|
||||
ADCs: 16 (at 12-bit resolution)
|
||||
DACs: 2 (at 12-bit resolution)
|
||||
Peripherals: RTC, 4 timers, 2 I2Cs, 3 SPI ports, 1 on-board UART (upto 5 channels)
|
||||
Other: Sleep, stop, and standby modes; serial wire debug and JTAG interfaces
|
||||
|
||||
Please see link below for board specific details:
|
||||
|
||||
https://www.futurlec.com/ET-STM32_Stamp_Technical.shtml
|
||||
|
||||
This configuration supports the ET-STM32 Stamp module.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
- Development Environment
|
||||
- Flashing/Programming
|
||||
- Configurations
|
||||
|
||||
Development Environment
|
||||
=======================
|
||||
|
||||
Either Linux (recommended), Mac or Cygwin on Windows can be used for the development
|
||||
environment. The source has been built only using the GNU (Cortex M) toolchain.
|
||||
Other toolchains will likely cause problems.
|
||||
|
||||
WSL (Windows Subsystem for Linux) was used to develop, compile and test the NuttX
|
||||
build for the ET-STM32 Stamp platform.
|
||||
|
||||
Flashing/Programming
|
||||
====================
|
||||
|
||||
Prerequisites:
|
||||
|
||||
1. The ET-STM32 Stamp module from Futurlec.
|
||||
|
||||
2. An RS232 connection cable such as the one in this link: (Part code: RS232CONN):
|
||||
https://www.futurlec.com/DevBoardAccessories.shtml
|
||||
|
||||
It has a 4-pin connection header on one end and an RS-232 (DB9) female connector on
|
||||
the other. The 4-pin connector can be directly plugged onto the Stamp module.
|
||||
|
||||
3. An RS232 to USB converter cable. Ensure that a suitable driver is installed for
|
||||
the converter cable. When the cable is plugged in (for example), my PC lists the
|
||||
assigned port with this name: "USB-SERIAL CH340 (COM2)".
|
||||
|
||||
Assuming Windows 10, navigate to: This PC -> Manage -> Device Manager -> Ports.
|
||||
|
||||
4. ST's Flash loader demonstrator tool. You can download it from here:
|
||||
https://www.st.com/en/development-tools/flasher-stm32.html
|
||||
|
||||
To install the NuttX firmware (nuttx.bin) on the ET-STM32 Stamp:
|
||||
|
||||
1. First, power the Stamp module with a 3.3 VDC power supply. I made my own
|
||||
Stamp module fixture using a 3.3 VDC switching regulator, a prototype PCB card
|
||||
and some solder.
|
||||
|
||||
2. Insert the RS232CONN into the 4-pin on-board header. The other end should be
|
||||
connected to the USB port of the PC using the RS232-USB converter.
|
||||
|
||||
3. Set the BOOT1 jumper on your board to the ISP position.
|
||||
|
||||
4. Press the BOOT0 switch. The green "BOOT0=1" LED should light up.
|
||||
|
||||
5. Reset the board by pressing on the RESET button.
|
||||
|
||||
6. Using the ST Flash loader demonstrator to download the NuttX binary image.
|
||||
|
||||
7. Wait until programming is completed and press "Finish". Toggle the
|
||||
BOOT0 switch again. Reset the board.
|
||||
|
||||
You will now be presented with the NuttShell (NSH). Enjoy.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Information Common to All Configurations
|
||||
----------------------------------------
|
||||
The ET-STM32 Stamp configuration is maintained in a sub-directory and can be
|
||||
selected as follow:
|
||||
|
||||
tools/configure.sh et-stm32-stamp:<subdir>
|
||||
|
||||
Before building, make sure the PATH environment variable includes the
|
||||
correct path to the directory than holds your toolchain binaries.
|
||||
|
||||
And then build NuttX by simply typing the following. At the conclusion of
|
||||
the make, the nuttx binary will reside in an ELF file called, simply, nuttx.
|
||||
|
||||
make
|
||||
|
||||
The <subdir> that is provided above as an argument to the tools/configure.sh
|
||||
must be in one of the following.
|
||||
|
||||
NOTES:
|
||||
|
||||
1. These configurations use the mconf-based configuration tool. To
|
||||
change any of these configurations using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
Configuration Sub-directories
|
||||
-----------------------------
|
||||
|
||||
nsh:
|
||||
|
||||
This configuration directory provide the basic NuttShell (NSH).
|
||||
A serial console is provided on USART1.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,218 +0,0 @@
|
||||
README
|
||||
======
|
||||
|
||||
This README discusses issues unique to NuttX configurations for the
|
||||
maple board from LeafLabs (http://leaflabs.com).
|
||||
|
||||
Microprocessor: 32-bit ARM Cortex M3 at 72MHz STM32F103RBT6 (STM32F103CBT6 for mini version)
|
||||
Memory: 120 KB Flash and 20 KB SRAM
|
||||
I/O Pins Out: 43 (34 for mini version)
|
||||
ADCs: 9 (at 12-bit resolution)
|
||||
Peripherals: 4 timers, 2 I2Cs, 2 SPI ports, 3 USARTs
|
||||
Other: Sleep, stop, and standby modes; serial wire debug and JTAG interfaces
|
||||
|
||||
Please see below link for a list of maple devices and documentations.
|
||||
|
||||
http://leaflabs.com/devices
|
||||
http://leaflabs.com/docs
|
||||
|
||||
This config supports Maple and Maple Mini.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
- Development Environment
|
||||
- DFU
|
||||
- Configurations
|
||||
|
||||
Development Environment
|
||||
=======================
|
||||
|
||||
Either Linux (recommended), Mac or Cygwin on Windows can be used for the development
|
||||
environment. The source has been built only using the GNU toolchain (see below).
|
||||
Other toolchains will likely cause problems.
|
||||
|
||||
DFU
|
||||
===
|
||||
|
||||
The linker files in these projects can be configured to indicate that you
|
||||
will be loading code using STMicro built-in USB Device Firmware Upgrade (DFU)
|
||||
loader or via some JTAG emulator. You can specify the DFU bootloader by
|
||||
adding the following line:
|
||||
|
||||
CONFIG_STM32_DFU=y
|
||||
|
||||
to your .config file. Most of the configurations in this directory are set
|
||||
up to use the DFU loader.
|
||||
|
||||
If CONFIG_STM32_DFU is defined, the code will not be positioned at the beginning
|
||||
of FLASH (0x08000000) but will be offset to 0x08005000. This offset is needed
|
||||
to make space for the DFU loader and 0x08005000 is where the DFU loader expects
|
||||
to find new applications at boot time. If you need to change that origin for some
|
||||
other bootloader, you will need to edit the file(s) ld.script.dfu for each
|
||||
configuration. In LeafLabs case, we are using maple bootloader:
|
||||
|
||||
http://leaflabs.com/docs/bootloader.html
|
||||
|
||||
For Linux or Mac:
|
||||
----------------
|
||||
|
||||
While on Linux or Mac, we can use dfu-util to upload nuttx binary.
|
||||
|
||||
1. Make sure we have installed dfu-util. (From yum, apt-get or build from source.)
|
||||
2. Start the DFU loader (bootloader) on the maple board. You do this by
|
||||
resetting the board while holding the "Key" button. Windows should
|
||||
recognize that the DFU loader has been installed.
|
||||
3. Flash the nuttx.bin to the board use dfu-util. Here's an example:
|
||||
|
||||
$ dfu-util -a1 -d 1eaf:0003 -D nuttx.bin -R
|
||||
|
||||
For anything not clear, we can refer to LeafLabs official document:
|
||||
|
||||
http://leaflabs.com/docs/unix-toolchain.html
|
||||
|
||||
For Windows:
|
||||
-----------
|
||||
|
||||
The DFU SE PC-based software is available from the STMicro website,
|
||||
http://www.st.com. General usage instructions:
|
||||
|
||||
1. Connect the maple board to your computer using a USB
|
||||
cable.
|
||||
2. Start the DFU loader on the maple board. You do this by
|
||||
resetting the board while holding the "Key" button. Windows should
|
||||
recognize that the DFU loader has been installed.
|
||||
3. Run the DFU SE program to load nuttx.bin into FLASH.
|
||||
|
||||
What if the DFU loader is not in FLASH? The loader code is available
|
||||
inside of the Demo directory of the USBLib ZIP file that can be downloaded
|
||||
from the STMicro Website. You can build it using RIDE (or other toolchains);
|
||||
you will need a JTAG emulator to burn it into FLASH the first time.
|
||||
|
||||
In order to use STMicro's built-in DFU loader, you will have to get
|
||||
the NuttX binary into a special format with a .dfu extension. The
|
||||
DFU SE PC_based software installation includes a file "DFU File Manager"
|
||||
conversion program that a file in Intel Hex format to the special DFU
|
||||
format. When you successfully build NuttX, you will find a file called
|
||||
nutt.hex in the top-level directory. That is the file that you should
|
||||
provide to the DFU File Manager. You will end up with a file called
|
||||
nuttx.dfu that you can use with the STMicro DFU SE program.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Information Common to All Configurations
|
||||
----------------------------------------
|
||||
Each Maple configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
|
||||
tools/configure.sh maple:<subdir>
|
||||
|
||||
Before building, make sure the PATH environment variable includes the
|
||||
correct path to the directory than holds your toolchain binaries.
|
||||
|
||||
And then build NuttX by simply typing the following. At the conclusion of
|
||||
the make, the nuttx binary will reside in an ELF file called, simply, nuttx.
|
||||
|
||||
make
|
||||
|
||||
The <subdir> that is provided above as an argument to the tools/configure.sh
|
||||
must be is one of the following.
|
||||
|
||||
NOTES:
|
||||
|
||||
1. These configurations use the mconf-based configuration tool. To
|
||||
change any of these configurations using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
Configuration Sub-directories
|
||||
-----------------------------
|
||||
|
||||
nsh:
|
||||
|
||||
This configuration directory provide the basic NuttShell (NSH).
|
||||
A serial console is provided on USART1.
|
||||
|
||||
NOTES:
|
||||
1. Currently configured for the STM32F103CB. But this is easily
|
||||
reconfigured:
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103RB=n
|
||||
CONFIG_ARCH_CHIP_STM32F103CB=y
|
||||
|
||||
2. Support for the I2C tool has been disabled, but can be restored
|
||||
with following configure options:
|
||||
|
||||
System Type -> Peripherals
|
||||
CONFIG_STM32_I2C1=y
|
||||
CONFIG_STM32_I2C2=y
|
||||
CONFIG_STM32_I2CTIMEOSEC=1
|
||||
CONFIG_STM32_I2CTIMEOMS=500
|
||||
CONFIG_STM32_I2CTIMEOTICKS=500
|
||||
|
||||
Drivers
|
||||
CONFIG_I2C=y
|
||||
|
||||
Applications -> System Add-Ons
|
||||
CONFIG_SYSTEM_I2CTOOL=y
|
||||
CONFIG_I2CTOOL_MINBUS=1
|
||||
CONFIG_I2CTOOL_MAXBUS=2
|
||||
CONFIG_I2CTOOL_MINADDR=0x0
|
||||
CONFIG_I2CTOOL_MAXADDR=0xf0
|
||||
CONFIG_I2CTOOL_MAXREGADDR=0xff
|
||||
CONFIG_I2CTOOL_DEFFREQ=100000
|
||||
|
||||
nx:
|
||||
|
||||
This configuration has been used to bring up the Sharp Memory LCD
|
||||
on a custom board. This NX configuration was used for testing that
|
||||
LCD. Debug output will appear on USART1.
|
||||
|
||||
NOTES:
|
||||
1. Currently configured for the STM32F103CB. But this is easily
|
||||
reconfigured:
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103RB=n
|
||||
CONFIG_ARCH_CHIP_STM32F103CB=y
|
||||
|
||||
2. You won't be able to buy a Sharp Memory LCD to use with your
|
||||
Maple. If you want one, you will have to make one yourself.
|
||||
|
||||
usbnsh:
|
||||
|
||||
This is an alternative NuttShell (NSH) configuration that uses a USB
|
||||
serial console for interaction.
|
||||
|
||||
NOTES:
|
||||
1. Currently configured for the STM32F103CB. But this is easily
|
||||
reconfigured:
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103RB=n
|
||||
CONFIG_ARCH_CHIP_STM32F103CB=y
|
||||
|
||||
2. Support for the I2C tool has been disabled, but can be restored
|
||||
with following configure options:
|
||||
|
||||
System Type -> Peripherals
|
||||
CONFIG_STM32_I2C1=y
|
||||
CONFIG_STM32_I2C2=y
|
||||
CONFIG_STM32_I2CTIMEOSEC=1
|
||||
CONFIG_STM32_I2CTIMEOMS=500
|
||||
CONFIG_STM32_I2CTIMEOTICKS=500
|
||||
|
||||
Drivers
|
||||
CONFIG_I2C=y
|
||||
|
||||
Applications -> System Add-Ons
|
||||
CONFIG_SYSTEM_I2CTOOL=y
|
||||
CONFIG_I2CTOOL_MINBUS=1
|
||||
CONFIG_I2CTOOL_MAXBUS=2
|
||||
CONFIG_I2CTOOL_MINADDR=0x0
|
||||
CONFIG_I2CTOOL_MAXADDR=0xf0
|
||||
CONFIG_I2CTOOL_MAXREGADDR=0xff
|
||||
CONFIG_I2CTOOL_DEFFREQ=100000
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,447 +0,0 @@
|
||||
README
|
||||
======
|
||||
|
||||
This README discusses issues unique to NuttX configurations for the
|
||||
STM32 Tiny development board.
|
||||
|
||||
This board is available from several vendors on the net, and may
|
||||
be sold under different names. It is based on a STM32 F103C8T6 MCU, and
|
||||
is (always ?) bundled with a nRF24L01 wireless communication module.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
- LEDs
|
||||
- PWM
|
||||
- UARTs
|
||||
- Timer Inputs/Outputs
|
||||
- STM32 Tiny -specific Configuration Options
|
||||
- Configurations
|
||||
|
||||
LEDs
|
||||
====
|
||||
|
||||
The STM32Tiny board has only one software controllable LED.
|
||||
This LED can be used by the board port when CONFIG_ARCH_LEDS option is
|
||||
enabled.
|
||||
|
||||
If enabled the LED is simply turned on when the board boots
|
||||
successfully, and is blinking on panic / assertion failed.
|
||||
|
||||
PWM
|
||||
===
|
||||
|
||||
The STM32 Tiny has no real on-board PWM devices, but the board can be
|
||||
configured to output a pulse train using TIM3 CH2 on the GPIO line B.5
|
||||
(connected to the LED).
|
||||
Please note that the CONFIG_STM32_TIM3_PARTIAL_REMAP option must be enabled
|
||||
in this case.
|
||||
|
||||
UARTs
|
||||
=====
|
||||
|
||||
UART/USART PINS
|
||||
---------------
|
||||
|
||||
USART1
|
||||
RX PA10
|
||||
TX PA9
|
||||
USART2
|
||||
CK PA4
|
||||
CTS PA0*
|
||||
RTS PA1
|
||||
RX PA3
|
||||
TX PA2
|
||||
USART3
|
||||
CK PB12*
|
||||
CTS PB13*
|
||||
RTS PB14*
|
||||
RX PB11
|
||||
TX PB10
|
||||
|
||||
* these IO lines are intended to be used by the wireless module on the board.
|
||||
|
||||
Default USART/UART Configuration
|
||||
--------------------------------
|
||||
|
||||
USART1 (RX & TX only) is available through the RS-232 port on the board. A MAX232 chip converts
|
||||
voltage to RS-232 level. This serial port can be used to flash a firmware using the boot loader
|
||||
integrated in the MCU.
|
||||
|
||||
Timer Inputs/Outputs
|
||||
====================
|
||||
|
||||
TIM1
|
||||
CH1 PA8
|
||||
CH2 PA9*
|
||||
CH3 PA10*
|
||||
CH4 PA11*
|
||||
TIM2
|
||||
CH1 PA0*, PA15, PA5
|
||||
CH2 PA1, PB3
|
||||
CH3 PA2, PB10*
|
||||
CH4 PA3, PB11
|
||||
TIM3
|
||||
CH1 PA6, PB4
|
||||
CH2 PA7, PB5*
|
||||
CH3 PB0
|
||||
CH4 PB1*
|
||||
TIM4
|
||||
CH1 PB6*
|
||||
CH2 PB7
|
||||
CH3 PB8
|
||||
CH4 PB9*
|
||||
|
||||
* Indicates pins that have other on-board functions and should be used only
|
||||
with care (See board datasheet).
|
||||
|
||||
STM32 Tiny - specific Configuration Options
|
||||
===============================================
|
||||
|
||||
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
||||
be set to:
|
||||
|
||||
CONFIG_ARCH=arm
|
||||
|
||||
CONFIG_ARCH_family - For use in C code:
|
||||
|
||||
CONFIG_ARCH_ARM=y
|
||||
|
||||
CONFIG_ARCH_architecture - For use in C code:
|
||||
|
||||
CONFIG_ARCH_CORTEXM3=y
|
||||
|
||||
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
||||
|
||||
CONFIG_ARCH_CHIP=stm32
|
||||
|
||||
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
||||
chip:
|
||||
|
||||
CONFIG_ARCH_CHIP_STM32F103C8=y
|
||||
|
||||
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG - Enables special STM32 clock
|
||||
configuration features.
|
||||
|
||||
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=n
|
||||
|
||||
CONFIG_ARCH_BOARD - Identifies the boards/ subdirectory and
|
||||
hence, the board that supports the particular chip or SoC.
|
||||
|
||||
CONFIG_ARCH_BOARD=stm32_tiny
|
||||
|
||||
CONFIG_ARCH_BOARD_name - For use in C code
|
||||
|
||||
CONFIG_ARCH_BOARD_STM32_TINY=y
|
||||
|
||||
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
||||
of delay loops
|
||||
|
||||
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
||||
endian)
|
||||
|
||||
CONFIG_RAM_SIZE - Describes the installed DRAM (SRAM in this case):
|
||||
|
||||
CONFIG_RAM_SIZE=20480 (20Kb)
|
||||
|
||||
CONFIG_RAM_START - The start address of installed DRAM
|
||||
|
||||
CONFIG_RAM_START=0x20000000
|
||||
|
||||
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
|
||||
have LEDs
|
||||
|
||||
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
||||
stack. If defined, this symbol is the size of the interrupt
|
||||
stack in bytes. If not defined, the user task stacks will be
|
||||
used during interrupt handling.
|
||||
|
||||
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
||||
|
||||
Individual subsystems can be enabled:
|
||||
|
||||
AHB
|
||||
---
|
||||
CONFIG_STM32_CRC
|
||||
CONFIG_STM32_BKPSRAM
|
||||
|
||||
APB1
|
||||
----
|
||||
CONFIG_STM32_TIM2
|
||||
CONFIG_STM32_TIM3
|
||||
CONFIG_STM32_TIM4
|
||||
CONFIG_STM32_WWDG
|
||||
CONFIG_STM32_IWDG
|
||||
CONFIG_STM32_SPI2
|
||||
CONFIG_STM32_USART2
|
||||
CONFIG_STM32_USART3
|
||||
CONFIG_STM32_I2C1
|
||||
CONFIG_STM32_I2C2
|
||||
CONFIG_STM32_CAN1
|
||||
CONFIG_STM32_PWR -- Required for RTC
|
||||
|
||||
APB2
|
||||
----
|
||||
CONFIG_STM32_TIM1
|
||||
CONFIG_STM32_USART1
|
||||
CONFIG_STM32_ADC1
|
||||
CONFIG_STM32_ADC2
|
||||
CONFIG_STM32_SPI1
|
||||
|
||||
Timer devices may be used for different purposes. One special purpose is
|
||||
to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn
|
||||
is defined (as above) then the following may also be defined to indicate that
|
||||
the timer is intended to be used for pulsed output modulation or ADC conversion.
|
||||
Note that ADC require two definitions: Not only do you have
|
||||
to assign the timer (n) for used by the ADC, but then you also have to
|
||||
configure which ADC (m) it is assigned to.
|
||||
|
||||
CONFIG_STM32_TIMn_PWM Reserve timer n for use by PWM, n=1,..,14
|
||||
CONFIG_STM32_TIMn_ADC Reserve timer n for use by ADC, n=1,..,14
|
||||
CONFIG_STM32_TIMn_ADCm Reserve timer n to trigger ADCm, n=1,..,14, m=1,..,3
|
||||
|
||||
For each timer that is enabled for PWM usage, we need the following additional
|
||||
configuration settings:
|
||||
|
||||
CONFIG_STM32_TIMx_CHANNEL - Specifies the timer output channel {1,..,4}
|
||||
|
||||
NOTE: The STM32 timers are each capable of generating different signals on
|
||||
each of the four channels with different duty cycles. That capability is
|
||||
not supported by this driver: Only one output channel per timer.
|
||||
|
||||
JTAG Enable settings (by default only SW-DP is enabled):
|
||||
|
||||
CONFIG_STM32_JTAG_FULL_ENABLE - Enables full SWJ (JTAG-DP + SW-DP)
|
||||
CONFIG_STM32_JTAG_NOJNTRST_ENABLE - Enables full SWJ (JTAG-DP + SW-DP)
|
||||
but without JNTRST.
|
||||
CONFIG_STM32_JTAG_SW_ENABLE - Set JTAG-DP disabled and SW-DP enabled
|
||||
|
||||
STM32Tiny specific device driver settings
|
||||
|
||||
CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3)
|
||||
for the console and ttys0 (default is the USART1).
|
||||
CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received.
|
||||
This specific the size of the receive buffer
|
||||
CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before
|
||||
being sent. This specific the size of the transmit buffer
|
||||
CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be
|
||||
CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8.
|
||||
CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
||||
CONFIG_U[S]ARTn_2STOP - Two stop bits
|
||||
|
||||
STM32Tiny CAN Configuration
|
||||
|
||||
CONFIG_CAN - Enables CAN support (one or both of CONFIG_STM32_CAN1 or
|
||||
CONFIG_STM32_CAN2 must also be defined)
|
||||
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
|
||||
Standard 11-bit IDs.
|
||||
CONFIG_CAN_FIFOSIZE - The size of the circular buffer of CAN messages.
|
||||
Default: 8
|
||||
CONFIG_CAN_NPENDINGRTR - The size of the list of pending RTR requests.
|
||||
Default: 4
|
||||
CONFIG_CAN_LOOPBACK - A CAN driver may or may not support a loopback
|
||||
mode for testing. The STM32 CAN driver does support loopback mode.
|
||||
CONFIG_STM32_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN1
|
||||
is defined.
|
||||
CONFIG_STM32_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN2
|
||||
is defined.
|
||||
CONFIG_STM32_CAN_TSEG1 - The number of CAN time quanta in segment 1.
|
||||
Default: 6
|
||||
CONFIG_STM32_CAN_TSEG2 - the number of CAN time quanta in segment 2.
|
||||
Default: 7
|
||||
CONFIG_STM32_CAN_REGDEBUG - If CONFIG_DEBUG_FEATURES is set, this will generate an
|
||||
dump of all CAN registers.
|
||||
|
||||
STM32Tiny SPI Configuration
|
||||
|
||||
CONFIG_STM32_SPI_INTERRUPTS - Select to enable interrupt driven SPI
|
||||
support. Non-interrupt-driven, poll-waiting is recommended if the
|
||||
interrupt rate would be to high in the interrupt driven case.
|
||||
CONFIG_STM32_SPIx_DMA - Use DMA to improve SPIx transfer performance.
|
||||
Cannot be used with CONFIG_STM32_SPI_INTERRUPT.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Each STM32Tiny configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
|
||||
tools/configure.sh STM32Tiny:<subdir>
|
||||
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
nsh:
|
||||
---
|
||||
Configures the NuttShell (nsh) located at apps/examples/nsh. This
|
||||
configuration enables a console on UART1. Support for
|
||||
builtin applications is enabled, but in the base configuration no
|
||||
builtin applications are selected (see NOTES below).
|
||||
|
||||
NOTES:
|
||||
|
||||
1. This configuration uses the mconf-based configuration tool. To
|
||||
change this configuration using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
2. By default, this configuration uses the ARM EABI toolchain
|
||||
for Windows and builds under Cygwin (or probably MSYS). That
|
||||
can easily be reconfigured, of course.
|
||||
|
||||
CONFIG_HOST_WINDOWS=y : Builds under Windows
|
||||
CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
|
||||
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Windows
|
||||
|
||||
3. This example supports the PWM test (apps/examples/pwm) but this must
|
||||
be manually enabled by selecting:
|
||||
|
||||
CONFIG_PWM=y : Enable the generic PWM infrastructure
|
||||
CONFIG_STM32_TIM3=y : Enable TIM3
|
||||
CONFIG_STM32_TIM3_PWM=y : Use TIM3 to generate PWM output
|
||||
CONFIG_STM32_TIM3_PARTIAL_REMAP=y : Required to have the port B5 as timer PWM output (channel 2)
|
||||
CONFIG_STM32_TIM3_CHANNEL=2
|
||||
|
||||
See also apps/examples/README.txt
|
||||
|
||||
Note that the only supported board configuration uses the board LED as PWM output.
|
||||
|
||||
Special PWM-only debug options:
|
||||
|
||||
CONFIG_DEBUG_PWM_INFO
|
||||
|
||||
7. USB Support (CDC/ACM device)
|
||||
|
||||
CONFIG_STM32_OTGFS=y : STM32 OTG FS support
|
||||
CONFIG_USBDEV=y : USB device support must be enabled
|
||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||
CONFIG_NSH_BUILTIN_APPS=y : NSH built-in application support must be enabled
|
||||
CONFIG_NSH_ARCHINIT=y : To perform USB initialization
|
||||
|
||||
8. Using the USB console.
|
||||
|
||||
The STM32Tiny NSH configuration can be set up to use a USB CDC/ACM
|
||||
(or PL2303) USB console. The normal way that you would configure the
|
||||
the USB console would be to change the .config file like this:
|
||||
|
||||
CONFIG_STM32_OTGFS=y : STM32 OTG FS support
|
||||
CONFIG_USART2_SERIAL_CONSOLE=n : Disable the USART2 console
|
||||
CONFIG_DEV_CONSOLE=n : Inhibit use of /dev/console by other logic
|
||||
CONFIG_USBDEV=y : USB device support must be enabled
|
||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||
CONFIG_CDCACM_CONSOLE=y : Enable the CDC/ACM USB console.
|
||||
|
||||
NOTE: When you first start the USB console, you have hit ENTER a few
|
||||
times before NSH starts. The logic does this to prevent sending USB data
|
||||
before there is anything on the host side listening for USB serial input.
|
||||
|
||||
9. Here is an alternative USB console configuration. The following
|
||||
configuration will also create a NSH USB console but this version
|
||||
will use /dev/console. Instead, it will use the normal /dev/ttyACM0
|
||||
USB serial device for the console:
|
||||
|
||||
CONFIG_STM32_OTGFS=y : STM32 OTG FS support
|
||||
CONFIG_USART2_SERIAL_CONSOLE=y : Keep the USART2 console
|
||||
CONFIG_DEV_CONSOLE=y : /dev/console exists (but NSH won't use it)
|
||||
CONFIG_USBDEV=y : USB device support must be enabled
|
||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||
CONFIG_CDCACM_CONSOLE=n : Don't use the CDC/ACM USB console.
|
||||
CONFIG_NSH_USBCONSOLE=y : Instead use some other USB device for the console
|
||||
|
||||
The particular USB device that is used is:
|
||||
|
||||
CONFIG_NSH_USBCONDEV="/dev/ttyACM0"
|
||||
|
||||
The advantage of this configuration is only that it is easier to
|
||||
bet working. This alternative does has some side effects:
|
||||
|
||||
- When any other device other than /dev/console is used for a user
|
||||
interface, linefeeds (\n) will not be expanded to carriage return /
|
||||
linefeeds (\r\n). You will need to set your terminal program to account
|
||||
for this.
|
||||
|
||||
- /dev/console still exists and still refers to the serial port. So
|
||||
you can still use certain kinds of debug output (see include/debug.h, all
|
||||
of the debug output from interrupt handlers will be lost.
|
||||
|
||||
- But don't enable USB debug output! Since USB is console is used for
|
||||
USB debug output and you are using a USB console, there will be
|
||||
infinite loops and deadlocks: Debug output generates USB debug
|
||||
output which generatates USB debug output, etc. If you want USB
|
||||
debug output, you should consider enabling USB trace
|
||||
(CONFIG_USBDEV_TRACE) and perhaps the USB monitor (CONFIG_USBMONITOR).
|
||||
|
||||
See the usbnsh configuration below for more information on configuring
|
||||
USB trace output and the USB monitor.
|
||||
|
||||
usbnsh:
|
||||
-------
|
||||
|
||||
This is another NSH example. If differs from other 'nsh' configurations
|
||||
in that this configurations uses a USB serial device for console I/O.
|
||||
|
||||
NOTES:
|
||||
|
||||
1. This configuration uses the mconf-based configuration tool. To
|
||||
change this configuration using that tool, you should:
|
||||
|
||||
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||||
see additional README.txt files in the NuttX tools repository.
|
||||
|
||||
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||||
reconfiguration process.
|
||||
|
||||
2. By default, this configuration uses the ARM EABI toolchain
|
||||
for Windows and builds under Cygwin (or probably MSYS). That
|
||||
can easily be reconfigured, of course.
|
||||
|
||||
CONFIG_HOST_WINDOWS=y : Builds under Windows
|
||||
CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
|
||||
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Windows
|
||||
|
||||
3. This configuration does have UART2 output enabled and set up as
|
||||
the system logging device:
|
||||
|
||||
CONFIG_SYSLOG_CHAR=y : Use a character device for system logging
|
||||
CONFIG_SYSLOG_DEVPATH="/dev/ttyS0" : UART2 will be /dev/ttyS0
|
||||
|
||||
However, there is nothing to generate SYSLOG output in the default
|
||||
configuration so nothing should appear on UART2 unless you enable
|
||||
some debug output or enable the USB monitor.
|
||||
|
||||
4. Enabling USB monitor SYSLOG output. If tracing is enabled, the USB
|
||||
device will save encoded trace output in in-memory buffer; if the
|
||||
USB monitor is enabled, that trace buffer will be periodically
|
||||
emptied and dumped to the system logging device (UART2 in this
|
||||
configuration):
|
||||
|
||||
CONFIG_USBDEV_TRACE=y : Enable USB trace feature
|
||||
CONFIG_USBDEV_TRACE_NRECORDS=128 : Buffer 128 records in memory
|
||||
CONFIG_NSH_USBDEV_TRACE=n : No builtin tracing from NSH
|
||||
CONFIG_NSH_ARCHINIT=y : Automatically start the USB monitor
|
||||
CONFIG_USBMONITOR=y : Enable the USB monitor daemon
|
||||
CONFIG_USBMONITOR_STACKSIZE=2048 : USB monitor daemon stack size
|
||||
CONFIG_USBMONITOR_PRIORITY=50 : USB monitor daemon priority
|
||||
CONFIG_USBMONITOR_INTERVAL=2 : Dump trace data every 2 seconds
|
||||
|
||||
CONFIG_USBMONITOR_TRACEINIT=y : Enable TRACE output
|
||||
CONFIG_USBMONITOR_TRACECLASS=y
|
||||
CONFIG_USBMONITOR_TRACETRANSFERS=y
|
||||
CONFIG_USBMONITOR_TRACECONTROLLER=y
|
||||
CONFIG_USBMONITOR_TRACEINTERRUPTS=y
|
||||
|
||||
5. By default, this project assumes that you are *NOT* using the DFU
|
||||
bootloader.
|
||||
|
||||
Using the Prolifics PL2303 Emulation
|
||||
------------------------------------
|
||||
You could also use the non-standard PL2303 serial device instead of
|
||||
the standard CDC/ACM serial device by changing:
|
||||
|
||||
CONFIG_CDCACM=y : Disable the CDC/ACM serial device class
|
||||
CONFIG_CDCACM_CONSOLE=y : The CDC/ACM serial device is NOT the console
|
||||
CONFIG_PL2303=y : The Prolifics PL2303 emulation is enabled
|
||||
CONFIG_PL2303_CONSOLE=y : The PL2303 serial device is the console
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user