cancel
Showing results for 
Search instead for 
Did you mean: 

Boundary Scan problem STM32L100RB

maria23
Associate II
Posted on January 28, 2015 at 11:26

I'm trying to run Boundary Scan on a board with a STM32L100RB mcu. It is the only Component in the boundary scan chain, but I can't get it to work. I get nothing at the JTDO pin. Anyone have any idea what might be wrong?

The MCU is programmed, but in reset mode since I keep the nRST pin low. The software enginner Writing the program says there are no fuses set, and he has been able to get a connection to the component through the JTAG TAP even after programming.

The board is powered, and I have signals from my boundary scan controller on TDI, TMS and TCK.

BSDL files used are CortexM3.bsd and STM32L1_Med_density_LQFP64.

In the reference manual (

DocID15965 Rev 12

) figure 291 it looks like the Cortex-M3 device should be last in the boundary scan chain, but my boundary scan software (Corelis TPG) can not generate an infrastructure test unless I put CortexM3.bsd before STM32L1_Med_density_LQFP64.

#boundary-scan
9 REPLIES 9
maria23
Associate II
Posted on January 29, 2015 at 10:22

We have now erased the program from the mcu and tried Boundary scan again. When we keep the BOOT0 pin tied low we get another error message:

Data mismatch on device U1

Expanded IR Capture Test:      Failed

   TDI

   Leading Pattern

      ACT:  10

   

  EXP:  10

   U1  (CortexM3)

      ACT:  0000

      EXP:  0001

   U1  (STM32L1_Med_density_LQFP64)

      ACT:  10001

      EXP:  XXX01

   TDO

Any ideas how to fix this?
maria23
Associate II
Posted on February 03, 2015 at 17:04

After modifying the topology file to get the Components in the right order I get Another error. Now I get a ''Passed'' on the IR Capture, but fail at the IDCode test.

   Expanded IR Capture Test:      Passed

   IDCODE Test:                   Failed

   Note that devices without an IDCODE register are tested

   with a 1-bit bypass-register test.

   TDI

   U1  (STM32L1_Med_density_LQFP64) 

      ACT:  0000 0110010000010110 00000100000 1

      EXP:  XXXX 0110010000010000 00000100000 1

   U1A  (CortexM3) 

      ACT:  0100 1011101000000000 01000111011 1

      EXP:  XXXX 1011101000000000 01000111011 1

   TDO

I'm sure I can modify the BSDL file to make it pass, but that seems wrong... Why does it fail? Why does the IDcode not match the BSDL file?

Posted on February 03, 2015 at 17:18

Where do you have the BSDL files from?

JW
maria23
Associate II
Posted on February 04, 2015 at 09:08

The BSDL files are downloaded from ST (this page), going from Products page for STM32L100RB to ''Design Resources'' (a zipped folder with all STM32 BSDL files plus the Cortex M3).

Maria

Posted on February 04, 2015 at 10:27

Oh, that file is obviously heavily outdated - RM0038 rev.12 lists STM32L1xx of 6 cathegories, and I bet all have different TAP ID; while those few BSD files all use one (with the part of the ID which corresponds to device ID (see below) = 0x410). There are also the -A suffix STM32L1xx, which quite definitively have a different ID.

They should've been listed in RM0038 too, under 30.6.2 Boundary scan TAP - JTAG ID code, but there is only an obviously wrong text probably copy-pasted from the Cortex ID subchapter together with the Cortex-M3 TAP ID...

There might be a relationship between the TAP ID and device ID as stored in DBGMCU_IDCODE (0xE004 2000) - indeed, you read out 0x416 which corresponds to Cat.1 device, which according to Table2 STM32L100RB is.

I'd suggest to pester your ST FAE or any other contact you may have. Please post back with the result.

JW

maria23
Associate II
Posted on February 04, 2015 at 14:23

If I ignore the IDcode fail and run the rest of the boundary scan test, it seems like everything else works (interconnect, buswire and resistor tests).

The part of the IDCODE that has errors is described in the BSDL file as ''16-bit part number''.
maria23
Associate II
Posted on February 04, 2015 at 15:05

Thanks, I was looking at 30.6.2 and 30.6.1 in the RM0038 too , but I'm new at boundary scan things and I don't work with software that often. All I could see was that the ID code mentioned under 30.6.2 seemed to be wrong and possibly copied from the Cortex M3-part.

 

I don't really know how to reach any ST contact. I'll try to find out the right way to do this but if I can't I might cheat and just change the BSDL file part number. The other boundary scan tests seems to work...  (Like I wrote earlier before I saw your answer.)

Posted on February 04, 2015 at 15:20

Normally, you'd ask for assistance the supplier you have the chips from.

Alternatively, in  https://my.st.com/st-extranet-web-active/active/en/support/online_support.html click on Submit Request and fill in the form.

In both cases, don't expect fast response unless you are a potential 1Mpcs+ buyer...

> I might cheat and just change the BSDL file part number.

I wouldn't hesitate to do so, in light of the following.

> The other boundary scan tests seems to work...

All the parts of the same sub-family and same package are supposed to be pin-compatible, so it would be surprising if the pin descriptions would change - not impossible, but it would be silly from ST to do so.

JW

maria23
Associate II
Posted on February 19, 2015 at 17:45

Well, I've called the closest ST office and talked to a FAE. I've also tried the online request form, but it seems impossible to get any answer so now I just edited the IDcode part of the BSDL file. Boundary scan works fine now.

Still, it would have been nice to know that this is correct.