Commit Graph

32 Commits

Author SHA1 Message Date
Gregory Nutt
166d307add STM32: Fix conditional compilation of TIM SYSLOG initialization 2015-10-01 08:39:21 -06:00
Gregory Nutt
473a3cf2a6 STM32: Trivial chnages from review of merge 2015-09-23 15:00:47 -06:00
pnb
f19c5e883d add swo for stm32F4xxx 2015-09-23 22:51:22 +02:00
David Sidrane
778c630c6b Add support for the STM32446. From David Sidrane 2015-07-22 07:26:53 -06:00
Gregory Nutt
7a6a5b7bd0 Defines a second interface for the dma2d controller. Controlling both LTDC and DMA2D was unpractical from the programmers view because both controllers are to different. LTDC only controls the display visibility but the DMA2D controller changes the content of the frame buffer (buffer of the layer).
The main features are:

1. DMA2D interface
   Supports the nuttx pixel formats:
   - FB_FMT_RGB8
   - FB_FMT_RGB24
   - FB_FMT_RGB16_565
   Dynamic layer allocation during runtime for the supported formats
   - The number of allocatable layer can be configured.
   Supported dma2d operation:
   - blit (Copy content from source to destination layer) also works with
     selectable area.
   - blend (Blend two layer and copy the result to a destination layer wich can
     be a third layer or one of the source layer) also works with selectable
     area.
   - fillarea (Fill a defined area of the whole layer with a specific color)

As a result of that the dma2d controller can't transfer data from the core coupled memory, CCM is disabled but usable by the ccm allocator. Currently the ccm allocator is used for allocating the layer structurei only. For the dma memory (layers frame buffer) memory is allocated from heap 2 and 3.

2. LTDC interface

   I have changed the api for the currently non implemented operations:
   - blit (Copy content from a dma2d layer to an ltdc layer) also works with
     selectable area.
   - blend (Blend two dma2d layer and copy the result to a destination ltdc
     layer) also  works with selectable area.

     Note! ltdc layer is a layer referenced by the ltdc interface. dma2d layer
     is a layer referenced by the dma2d interface.

     One of the most important questions for me was, How can i flexible use an
     ltdc layer with the dma2d interface, e.g. as source layer for dma2d
     operations?
     Get the layer id of the related dma2d layer by a special flag when using
     getlid() function of the ltdc interface and use the layer id to reference
     the specific dma2d layer by the dma2d interface.

     The ltdc coupled dma2d layers are predefined and can't be dynamically
     allocated of freed. They use the same frame buffer memory and the same
     color lookup table.

   Changes:
   - layer internal format of the clut table
   - interrupt handling for register reload (vertical vblank) instead using
     waiting loop
   - small fixes and refactoring

From Marco Krahl.
2015-04-16 09:11:52 -06:00
Gregory Nutt
f073092fad The STM32F4Discovery board doesn't come with a Low speed external oscillator so the default LSE source for the RTC doesn't work.
In stm32_rtcc.c the up_rtcinitialize() logic doesn't work with the LSI. The check on RTC_MAGIC on the BK0R register lead to rtc_setup() call that rightfully enables the lsi clock; but the next times, when the rtc is already setup, the rtc_resume() call does NOT start the lsi clock!

The right place to put LSE/LSI initialisation is inside stm32_stdclockconfig() in stm32fxxxxx_rcc.c.  Doing this I checked the possible uses of the LSI and the LSE sources: the LSI can be used for RTC and/or the IWDG, while the LSE only for the RTC (and to output the MCO1 pin)..

This change is not verifed for any other platforms.

From Leo Aloe3132
2015-03-29 15:34:48 -06:00
Gregory Nutt
7b89f64b37 stm32-rtc: Add support for the internal low speed clock (LSI)
Some boards do not have the external 32khz oscillator installed, for those boards we must fallback to the crummy to the crummy internal RC clock.  Turn on by defining CONFIG_RTC_LSICLOCK.

From Kevin Hester <kevinh@geeksville.com> via Lorenz Meier.
2015-01-02 06:32:40 -06:00
Gregory Nutt
df31cf1db8 stm32: configure PLLSAI clock to enable ltdc register access
Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-12-19 13:30:58 -06:00
Gregory Nutt
6023219078 Integrates OTGHS support into the STM32; Eliminates the older OTGHS in FS mode logic. From Brennan Ashton 2014-10-07 15:05:30 -06:00
Gregory Nutt
acd40e73aa The Nucleo-F401RE has no on-board cystal and, hence, must use the on-chip HSI oscillator for the PLL include clock 2014-05-06 10:01:02 -06:00
Gregory Nutt
25d4ff745b More trailing whilespace removal 2014-04-13 16:22:22 -06:00
Gregory Nutt
33d5d24964 Make sure that there is one space between while and condition 2014-04-12 13:09:48 -06:00
Gregory Nutt
5032829f9a STM32F429 LTDC header files and framebuffer driver framework from Ken Pettit 2013-11-11 14:05:29 -06:00
Gregory Nutt
fe800abc58 STM32 OTG FS device and host drivers extended so that they can support either the OTG FS peripheral or the OTG HS peripheral (in FS mode). This was done as a quick way to get USB support on the STM32F429 which has only OTG HS. From Ken Pettit 2013-11-10 07:23:06 -06:00
Gregory Nutt
893f36c061 Support for the STM32F429 from Ken Pettit 2013-11-07 16:47:43 -06:00
Gregory Nutt
5d7b246c8a Add missing NSH configuration settings. Correct some conditional logic for STM32 FALSH pre-fetch settings. From Lorenz Meier 2013-06-02 13:16:35 -06:00
patacongo
370913df84 Add support for STM32 F427/437 chips. From Mike Smith
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5807 42af7a65-404d-4744-a932-0658087f49c3
2013-04-01 13:43:31 +00:00
patacongo
7dbb26184c STM32 FLASH pre-fetch is no long enabled unless it is so configured
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5388 42af7a65-404d-4744-a932-0658087f49c3
2012-11-26 13:22:51 +00:00
patacongo
4e27a1a255 Several changes (mostly graphics related) from Petteri Aimonen
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5385 42af7a65-404d-4744-a932-0658087f49c3
2012-11-23 15:49:06 +00:00
patacongo
3c6ff540ea Some repartitioning of STM32 functionality to better support a USB host driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5028 42af7a65-404d-4744-a932-0658087f49c3
2012-08-15 17:58:54 +00:00
patacongo
38f96f874f Add stm32_clockenable() to support recovery from deep sleep low-power usage modes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5000 42af7a65-404d-4744-a932-0658087f49c3
2012-08-02 21:48:54 +00:00
patacongo
e74e3c7195 Updates to the PIC32 USB driver (still kind of buggy); Fix for STM32 CAN2 -- Need to enable CAN1 clocking to use CAN2
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4493 42af7a65-404d-4744-a932-0658087f49c3
2012-03-16 20:59:21 +00:00
patacongo
bdbb6add35 More STM32 SDIO DMA fixes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4407 42af7a65-404d-4744-a932-0658087f49c3
2012-02-21 00:21:26 +00:00
patacongo
22ffe347bc CAN ISO-11783 support contributed by Gary Teravskis
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4400 42af7a65-404d-4744-a932-0658087f49c3
2012-02-18 14:02:34 +00:00
patacongo
3a4c3b3fe7 Started then stopped development of the STM32 DAC driver -- I guess it isn't needed afterall
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4187 42af7a65-404d-4744-a932-0658087f49c3
2011-12-15 20:31:54 +00:00
patacongo
a024d988fe More STM32 DAC driver logic
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4186 42af7a65-404d-4744-a932-0658087f49c3
2011-12-15 16:39:06 +00:00
patacongo
3c4954545e STM32 F4 RTC driver is fully coded (but not tested)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4176 42af7a65-404d-4744-a932-0658087f49c3
2011-12-14 19:12:00 +00:00
patacongo
27a51442d7 Add PHY setup for STM3240G-EVAL Ethernet driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4151 42af7a65-404d-4744-a932-0658087f49c3
2011-12-09 17:03:16 +00:00
patacongo
690a6c3086 Finish STM32 Ethernet header file; Add ethernet driver skeleton
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4147 42af7a65-404d-4744-a932-0658087f49c3
2011-12-08 18:02:38 +00:00
patacongo
5ad1a098e3 Fixes for STM32F40xxx port
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4135 42af7a65-404d-4744-a932-0658087f49c3
2011-12-05 16:41:20 +00:00
patacongo
76bb54a502 Add clock configuration logic for the STM32F40
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4123 42af7a65-404d-4744-a932-0658087f49c3
2011-11-23 18:18:26 +00:00
patacongo
039a9c6c65 Working toward clean STM3240xx build
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4119 42af7a65-404d-4744-a932-0658087f49c3
2011-11-22 16:08:21 +00:00