This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem using Serial Wire and SPI3

Hi,

I'm using the STM32F105 and unfortunately I have a problem regarding to the serial wire debugging.

Abstract:
In my application I have to use both, SPI2 and SPI3 simultaneously. In order to use SPI3 without remapping I want to disable the JTAG Port as discribed in chapter 29.4.4 in the RM0008 to free PB3.
That means I just want to use PA13 and PA14 (Serial Wire) for debugging purposes. Therefore I added the following lines at the beginning of my source code (just after main()):

 RCC->APB2ENR |=  (1 <<  2)|(1 << 0)|(1 << 3);        /* Enable PortA, PortB, Enable AFIO  */
 AFIO->MAPR &= 0xF8FFFFFF;                            /* reset SWJ_CFG     */
 AFIO->MAPR |= 0x02000000;                            /* enable sw, disable jtag   */

In addition I disabled the Trace function in the debug section of the ULINK2, disabled the SWJ and enabled the usage of SW.

Problem:

I'm able to program the target. Then the function of SPI2 and SPI3 is correct.
BUT if I enter the debugger suddenly SPI3 stops working.
The clock output of SPI3 (PB3) which is usually used for tracing doesn't output a clock signal any more.
The rest of the application works fine besides SPI3.

When I want to reprogram or reset the target, the problem still remains. Even if I leave the debugger.
This happens until I remove VDD from the target.

When VDD was removed I'm able to reprogram the target. Then the application runs with the correct function.
But when I enter the debug mode again the problem appears again.

I hope anybody can help me

Thanking you in anticipation
Best regards

Thomas

0