Giovanni wrote:I will assess and implement the changes however I will have to leave tests to you.
Giovanni
This is ok
Moderator: RoccoMarco
Tabulous wrote:Giovanni wrote:I will assess and implement the changes however I will have to leave tests to you.
Giovanni
This is ok
Code: Select all
- HAL: Now STM32 USARTv2 driver initializes the ISR vectors statically on
initialization. Disabling them was not necessary and added to
the code size.
- HAL: Added serial driver support for USART 3..6 on STM32F030xC devices.
Giovanni wrote:I added support for USART3..6 on F0.Code: Select all
- HAL: Now STM32 USARTv2 driver initializes the ISR vectors statically on
initialization. Disabling them was not necessary and added to
the code size.
- HAL: Added serial driver support for USART 3..6 on STM32F030xC devices.
I had to modify the ISR initialization moving it into the init() function, this saved some code in the driver. If the change proves to not bring problems then I will extend it to the other drivers.
Giovanni
Tabulous wrote:Giovanni wrote:There must be some differences in RCC or clock tree.
Probably it is something simple but I don't have any HW for a debug session.
Giovanni
This is correct, the F0's have two different clock trees, this can be seen on the reference manual page 90/91
http://www.st.com/st-web-ui/static/acti ... 091010.pdf
if the device is Clock tree (STM32F030x4, STM32F030x6 and STM32F030x8 devices)
then the HSI has a fixed divide by 2, then PLL Mull x 12 to get 48Mhz
if the device is Clock tree (STM32F070x6, STM32F070xB and STM32F030xC)
then the HSI is divide by a selectable PREDIV, then PLL Mull to get 48Mhz
Giovanni wrote:Tabulous wrote:Giovanni wrote:There must be some differences in RCC or clock tree.
Probably it is something simple but I don't have any HW for a debug session.
Giovanni
This is correct, the F0's have two different clock trees, this can be seen on the reference manual page 90/91
http://www.st.com/st-web-ui/static/acti ... 091010.pdf
if the device is Clock tree (STM32F030x4, STM32F030x6 and STM32F030x8 devices)
then the HSI has a fixed divide by 2, then PLL Mull x 12 to get 48Mhz
if the device is Clock tree (STM32F070x6, STM32F070xB and STM32F030xC)
then the HSI is divide by a selectable PREDIV, then PLL Mull to get 48Mhz
This is really hard to decide, see the documentation of PLLSRC about F0xx devices (RM0091), it says that PREDIV is forced to divide by 2 when HSI/2 is selected of those devices without the HSI:2 divider, it is like they are made SW-compatible with an HW trick.
I wonder if this is the same for 030/070 devices (RM0360), the thing is not mentioned but it could be done in the same way.
If this is true then the current code should work as-is. Could you verify? I have no devices with the 2nd clock tree.
Giovanni