Skip to main content
Visitor II
September 27, 2007
Question

ST10F168 STEAK problem

  • September 27, 2007
  • 11 replies
  • 2254 views
Posted on September 27, 2007 at 13:43

ST10F168 STEAK problem

    This topic has been closed for replies.

    11 replies

    adronicoAuthor
    Visitor II
    August 26, 2003
    Posted on August 26, 2003 at 06:58

    I'm developing flash driver software for ST10F168. My problem is that I can't program or erase the chip. I'm creating enough system stack (> 100 bytes), feeding R0,R1,R2,R3,R4 with the correct values and managing to unlock the FCR. The problem is that once the STEAK routines are called the system doesn't return to my application. When I feed R0,R1,R2,R3,R4 with wrong values(e.g. bad command or CPU period out of range), the STEAK routines answer with the correct error code.

    Could someone help me please.

    thanx in advance!
    Visitor II
    October 24, 2003
    Posted on October 24, 2003 at 07:03

    In order to be able to reprogram the part, the code to unlock the flash need to be executed from the flash itself (this is a security feature) but the code to trigger the steak algorithm function cannot be executed from the flash because the flash cannot be accessed while programing. You need to copy some code in RAM and execute it from there (specially the memory accesses that trigger the steak algorithm).

    Visitor II
    June 22, 2004
    Posted on June 22, 2004 at 05:10

    Hello,

    I have exactly the same problem as Zara mentioned above.

    The STEAK routines are called out of internal RAM, internal flash is mapped to segment 1, stack is big enough. My application runs in Bootstrap-Loader mode.

    The flash memory itself has no defects, because if I use a flash programming tool, the flash can be programmed.

    I do everything exact the way like it is described in the ST STEAK application note, but it doesn't work. If I read the internal flash after a reset, I can see that the first 2 words have been programmed correctly.

    Erasing the flash works well, but when trying to program, the STEAK never returns to application. If I put wrong parameters in the registers, STEAK returns with the correct errorcode.

    Somewhere in the internet I read, that the 100 bytes stack described in the STEAK appnote seems to be too less, 130 bytes are suggested, is that right?

    Is there an update or errata information for the STEAK available?

    Is it possible to get the source code of the internal STEAK routines?

    It is very difficult to work with STEAK routines without complete documentation.

    I would be appreciated to get answers.

    Thanks,

    looking

    Visitor II
    June 22, 2004
    Posted on June 22, 2004 at 09:45

    You can refer to the attached application note.

    ________________

    Attachments :

    AN1247.pdf : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hzu7&d=%2Fa%2F0X0000000bXs%2FOtfvN6COmhjqd5fjtPqEvf7GL8YzDEVCACIUa0VJsNE&asPdf=false
    Visitor II
    June 22, 2004
    Posted on June 22, 2004 at 10:11

    Thanks for the appnote, but I already know this document.

    I set all registers to the required values and start the STEAK,

    but as I already mentioned, programming doesn't work, only erasing works.

    When trying to program, the STEAK doesn't return to the application.

    Is the sourcecode of the internal STEAK available?

    Thanks,

    looking
    Visitor II
    August 27, 2007
    Posted on August 27, 2007 at 10:26

    Hi,

    I have the same problem, but in BSL from UART, the steck is the correct dimensione for call STEAK function ?

    I call STEAK function for erase block, but never return.. I have try all error, but notting to do.

    But if i insert errata clock value return whit correct error, but erase never return...

    Why ?

    Visitor II
    August 28, 2007
    Posted on August 28, 2007 at 05:19

    I have clock to 25.002 MHZ whit ST10 Flasher. I have set 2TCL=40 is correct ?

    Visitor II
    September 18, 2007
    Posted on September 18, 2007 at 07:30

    Hi,

    2TCL = 1/Fcpu; Fcpu = 25Mhz --> 2TCL = 40ns.

    Regards,

    Najoua.

    Visitor II
    September 19, 2007
    Posted on September 19, 2007 at 07:03

    Hi

    ;erase chip now!

    mov R0,#0eeeeh

    mov R1,#05555h

    mov R2,#0h

    mov R3,#0h

    mov R4,#40d

    mov R6,#08000h

    exts #1,#2 ;unlock sequency please...

    mov 08000h,R6

    mov [R6],R6

    nop

    nop

    after call unlock never exit...

    What is the problem ? :o :o

    Thanks.

    Visitor II
    September 19, 2007
    Posted on September 19, 2007 at 11:32

    Today i have put in R4 value 400 or 200, stack return whit error 5...

    But the value is 30~500 ?????

    why is out of range 400 or 200 ?? :o :o

    [ This message was edited by: invisigothux on 19-09-2007 15:09 ]