Skip to main content
root
Associate III
August 9, 2011
Question

[STM32F2xx] 120MHz + 3 wait state = bugs?

Posted on August 09, 2011 at 08:41

Hello,

Since the beginning of the project on the STM32F205RG, I had hard faults from time to time.

These last days, I wrote a hard fault handler as described in Joseph Yiu's book to see why ... and the result was very unexpected.

I had hard fault from basically everywhere, any line of code (even in the STM periph library) ... and the type of fault was even more wierd ... illegal instruction, coprocessor request, etc ...

Somewhere in my code I write FLASH ... and sometimes I had a programming error with no obvious reason why. I've put a bearkpoint just where (in the periph library) the test is done to see if there was a programming error (doing a logical and between FLASH->SR and 0xEF), and surprise, when breakpoint triggered, the debugger showed me a FLASH->SR value of ... 0.

This could only mean a problem within the MCU ...

I was running at 120MHz with all prefetches etc and 3 flash wait states.

I switched to no optimization and 4 wait states ...

No more hard faults, not more flash programming errors, program was running - slower but - smooth.

I need to figure out which optimization made the MCU to act like this, but I'm a bit disappointed that ST claims some figures about flash and ART performances if it's not true ...

Regards,

Thomas.
    This topic has been closed for replies.

    14 replies

    js23
    Associate III
    August 11, 2011
    Posted on August 11, 2011 at 16:42

    Crashes are my speciality. :)

    Anyway, there is one thing I nearly overlooked when doing my board design: The ESR if the 2.2uF caps must be in the range 0.1-2Ohm. If you use 0402 ceramics, you will be below that limit. Traces and vias might add a little bit, so maybe it will be fine. Paranoid as I am and to be absolutely safe, I added a 0.2Ohm resistor in series to the cap.

    Regards,

    Johannes

    root
    rootAuthor
    Associate III
    August 11, 2011
    Posted on August 11, 2011 at 17:27

    Hello,

    Thanks again for the advice.

    It seems the 2 prototypes I sent are working (no MCU lockup), so they will try them in flight (safely).

    I'll send you a video if it is a success :)

    Thomas.

    root
    rootAuthor
    Associate III
    August 12, 2011
    Posted on August 12, 2011 at 20:36

    NOTE: edited by moderator on Oct 6th, 2016

    Ok I promised, here it is ...

    We still have a bug in the piro-compensation (already fixed it in firmware but they didn't try the new firmware yet).

    [[this link/image has been flagged as malicious by our security scan software and has been deleted]]

    Hope you like it ;)

    Thomas.

    js23
    Associate III
    August 15, 2011
    Posted on August 15, 2011 at 12:50

    I am in SW/HW development since many years now and started flying RC helicopters a year ago so I have some serious doubts that this was a safe test and wonder how your not so safe tests will look like... :))

    Anyway, you seem to have a very interesting job...

    Johannes