Commit Graph

3071 Commits (refactor_hal_greentea_cmake)

Author SHA1 Message Date
Konstantin Kochin 7bc773badd Improve STM32 SPI asynchronous API stability
`HAL_SPI_Receive_IT` HAL function causes dummy reads in 3-wire mode,
that causes data corruption in RX FIFO/register. It isn't possible
to fix it without signification refactoring, but we may prevent data
corruption with the following fixes:

- RX buffer/register cleanup after asynchronous transfer in 3-wire mode
- Explicit RX buffer/register cleanup after SPI initialization
  (for cases if we re-create SPI object).
2021-09-01 21:12:48 +03:00
Konstantin Kochin c60f0cc11e Fix STM32 spi_abort_asynch function
- add RX cleanup after SPI re-initialization,
  as it isn't implemented in the `HAL_SPI_Init`
- cancel SPI enabling for 3-wire mode
2021-09-01 21:12:48 +03:00
Konstantin Kochin f1c4a7fe52 Fix STM32 SPI 3-wire (synchronous API)
All STM32 families except STM32H7 has the following 3-wire SPI peculiarity in master receive mode:
SPI continuously generates clock signal till it's disabled by a software. It causes that a software
must disable SPI in time. Otherwise, "dummy" reads will be generated.

Current STM32 synchronous SPI 3-wire implementation relies on HAL library functions HAL_SPI_Receive/HAL_SPI_Transmit.
It performs some SPI state checks to detect errors, but unfortunately it isn't fast enough to disable SPI in time.
Additionally, a multithreading environment or interrupt events may cause extra delays.

This commit contains the custom transmit/receive function for SPI 3-wire mode. It uses critical sections to
prevents accidental interrupt event delays, disables SPI after each frame receiving and disables SPI during
frame generation. It adds some delay between SPI frames (~700 ns), but gives reliable 3-wire SPI communications.
2021-09-01 21:12:48 +03:00
Konstantin Kochin 179bba9189 Move common STM32 SPI operations to separate functions
- move a code that waits readable SPI state from `spi_master_write`
  function to inline functions `msp_writable` and `msp_wait_writable`
- move a code that waits writeable SPI state from `spi_master_write`
  function to inline functions `msp_readable` and `msp_wait_readable`
- move a code that writes data to SPI from `spi_master_write`
  function to inline function `msp_write_data`
- move a code that reads data from SPI from `spi_master_write`
  function to inline function `msp_read_data`
2021-09-01 21:12:48 +03:00
Lukas Karel e4f0281dd8 add RTC from HSE to target STM32F1 2021-09-01 14:42:04 +02:00
Martin Kojtal 43a060fe7c
Merge pull request #14926 from katherrafi/hal_callback_override
Eth: STM32: Overriding HAL callbacks in stm32xx
2021-08-26 09:51:48 +01:00
Kather Rafi Ibrahim a9f51e31fd Eth: STM32: Overriding HAL callbacks in stm32xx
This commit enables the Overriding of HAL callbacks and IRQHandler
in stm32xx_emac.cpp. Hence the user can have their own
implementations of callbacks and IRQHandler functions.

Signed-off-by: Kather Rafi Ibrahim <katherrafi.i@hcl.com>
2021-08-25 14:30:47 +05:30
Martin Kojtal 513f581bce
Merge pull request #15012 from felser/MTS_DRAGONFLY_L496VG
Add platform MTS_DRAGONFLY_L496VG
2021-08-24 09:50:58 +01:00
Leon 4b27aef0ae Add platform MTS_DRAGONFLY_L496VG 2021-08-18 12:03:48 -05:00
Martin Kojtal 5d82bd5b85
Merge pull request #14956 from jeromecoutant/PR_SCRIPT_UPDATE
STM32_gen_PeripheralPins script update
2021-08-17 20:29:54 +01:00
Martin Kojtal 4e0e21f897
Merge pull request #15000 from SamuA-AP/fix-can-api-filters
Fix Extended Message Filter count in STM CAN API
2021-08-17 11:14:31 +01:00
Jerome Coutant 79d403a0db STM32_gen_PeripheralPins script update
- add CMakeLists.txt
- patch for STM32U5 boards
2021-08-16 10:28:21 +02:00
Martin Kojtal 9bcc48678a
Merge pull request #14976 from world-direct/feature/target_stm32f1
Add more uarts for STM32F103xG
2021-08-13 13:08:02 +01:00
Samu Ampio cbc0ee60b0
Fix Extended Message Filter count in STM CAN API
As per STM32H7-series reference manuals:
"Up to 64 filter elements can be configured for 29-bit extended IDs."
This commit fixes a bug which prevented receiving CAN-messages
with extended IDs.
2021-08-13 12:43:36 +03:00
Krishna Mohan Dani 3e83108f1c Driver: USB: STM32L1: Managing internal pullups for usb enumeration
This commit adds internal pullup on DP line for usb enumeration
in nucleo_l152re platform. This platform as such does not have
usb connector (device).

This has been tested with example in https://github.com/ARMmbed/
mbed-os/blob/master/drivers/usb/include/usb/USBMouse.h#L58-L76

and mbed_app.json file

"target_overrides": {
        "*": {
            "platform.stdio-baud-rate": 115200,
            "platform.all-stats-enabled": true,
            "mbed-trace.enable": "0"
        },
        "NUCLEO_L152RE": {
            "target.device_has_add": ["USBDEVICE"]
        }
    }
}

Signed-off-by: Krishna Mohan Dani <krishnamohan.d@hcl.com>
2021-08-10 17:49:36 +05:30
Lukas Karel 727daf910b add more uarts for STM32F103xG 2021-08-04 09:05:59 +02:00
Martin Kojtal 7214fe9c99
Merge pull request #14970 from MubeenHCLite/USBSerial_connect_blocking_resolution
USB connect problem in non blocking mode
2021-08-02 09:52:30 +01:00
Mohammed Mubeen b429aeb5f7 Added PCD Start so that connection is established when a host is
connected in non blocking mode (cinnect_blocking = false)
2021-07-30 10:52:00 +05:30
jeromecoutant 68529322dd DISCO_WB5MMG: add RGB LED 2021-07-23 12:34:49 +02:00
Martin Kojtal 16d3e998fa
Merge pull request #14915 from arduino/i2c_timing_fix
STM32 Fix i2c_compute_timing() API
2021-07-13 16:20:15 +02:00
pennam ccf8995858 STM32 Fix i2c_compute_timing() API 2021-07-13 14:07:12 +02:00
jeromecoutant 2bdd68f0d0 STM32WL README update for custom boards 2021-07-13 12:22:36 +02:00
jeromecoutant 8462a19207 STM32 README update for custom boards 2021-07-13 12:08:46 +02:00
Martin Kojtal abd32c70e4
Merge pull request #14895 from AnishKumarHCL/skip_analog_inn
ADC: STM32H7: Skip Negative input analog channels (INN)
2021-07-13 10:45:31 +02:00
Martin Kojtal 7095dc79fa
Merge pull request #14688 from MubeenHCLite/CAN_rxinterrupt_fix
Solution for mutex problem in CAN read ISR
2021-07-12 17:21:56 +02:00
anish-k ec44991a6f ADC: STM32H7: Skip Negative input analog channels (INN)
Removed INN ADC channels from PeripheralPins.c
2021-07-09 21:15:01 +05:30
anish-k f14ce30ba6 script: STM32: STM32_gen_PeripheralPins.py updated
Removed INN channel ADC
2021-07-09 21:14:24 +05:30
Martin Kojtal 0726db09fb
Merge pull request #14888 from arduino/portenta_ble_support
Portenta: Add BLE support using CYW43XXX generic transport layer
2021-07-09 17:22:55 +02:00
Martin Kojtal cf54d36bfb
Merge pull request #14899 from jeromecoutant/PR_WLE5
STM32WL: correct CMakeLists.txt for STM32WLE5xC
2021-07-09 12:26:42 +02:00
Martin Kojtal 705c61b0c2
Merge pull request #14898 from byq77/master
Fix gcc_arm linker script for stm32f407xg targets
2021-07-09 10:32:33 +02:00
jeromecoutant 9a7b1dbd1c STM32WL: correct CMakeLists.txt for STM32WLE5xC 2021-07-09 09:33:12 +02:00
pennam 1da67b2da8 Add missing PBL header 2021-07-08 22:04:53 +02:00
pennam 1a0ab10e95 Temp portenta add COMPONENT_4343W_FS BLE firmware 2021-07-08 17:04:05 +02:00
byq77 9b1399283e Fix gcc_arm linker script for stm32f407xg targets 2021-07-08 16:07:52 +02:00
Martin Kojtal 0e52d4946c
Merge pull request #14663 from arduino/whd_patch_portenta
Portenta: Add support to generic COMPONENT_WHD
2021-07-08 15:54:20 +02:00
Martin Kojtal 1d5d3b054f
Merge pull request #14808 from affrinpinhero-2356/i2cTimingPerformanceSolved
driver/i2c: STM32: I2C performance issue solved.
2021-07-08 14:38:03 +02:00
Martin Kojtal 97b9754141
Merge pull request #14838 from katherrafi/set_mac_address
Eth: STM32:  Updating documentation on mbed_otp_mac_address()
2021-07-08 14:20:09 +02:00
Martin Kojtal 7350b03088
Merge pull request #14872 from hallard/STM32WLEx
Add STM32WLE5 for custom targets LORA_E5 and RAK3172
2021-07-08 13:25:24 +02:00
Martin Kojtal f937383384
Merge pull request #14843 from AnishKumarHCL/interrupt_in_multiple_gpio
InterruptIn : STM32: Implemented error catching for multiple gpio on the same  irq line
2021-07-08 13:25:10 +02:00
Martin Kojtal 3fcc8347a9
Merge pull request #14844 from AnishKumarHCL/analogout_free_implementation
Analogout free implementation for F4/F7/H7 boards
2021-07-08 13:24:50 +02:00
Mohammed Mubeen b5e785efd3 Updated can bit timing parameters (TSEG1, TSEG2) as per the ISO11898-2
standard
2021-07-07 16:55:20 +05:30
Mohammed Mubeen 65a72c29c8 Added documentation for the implementation 2021-07-06 20:12:12 +05:30
Affrin Pinhero b559cec29e I2C: STM32: Upating documentation for I2C timing Algorithm
This commit modifies readme file. Descption for using
I2C timing algorithm and how to enable and disable
included.

Signed-off-by: Affrin Pinhero <affrin.pinhero@hcl.com>
2021-07-06 19:48:36 +05:30
Charles 51cfdc2bee moved to up folder common to STM32WL 2021-07-05 16:43:44 +02:00
Charles 37814f25a7 added target stm32wle5xc 2021-07-05 12:57:33 +02:00
Charles 38eed85d5a moved system_clock.c to STM32WL up folder 2021-07-05 12:55:32 +02:00
Charles d601dd8e91 moved to STM32WL up folder 2021-07-05 12:55:14 +02:00
Charles cf7e1ebe48 moved to STM32WL up folder 2021-07-05 12:52:58 +02:00
Mohammed Mubeen 8622f66b46 Resolved review comments 2021-07-03 13:22:25 +05:30
anish-k eb06d5eb59 analogout: STM32: modified analogout_free api
removed hardcoded pins, implemented multi channel check
implemented DAC_2 initialization for H7 board
Added  #if defined DAC_CHANNEL_2
2021-07-02 21:34:24 +05:30