Interface and Connectivity ICs
MEMS and Sensors
Analog and Audio
EMI Filtering and Signal Conditioning
Power Management and Motor Control
SPC5 Automotive MCUs
ST25 NFC/RFID Tags and Readers
Switches and Multiplexers
STM32 MCUs Community
MEMS and Sensors Community
Automotive MCUs Community
STM8 MCUs Community
Help the community
Share your activities
Contribute your knowledge
About this community
to create and rate content, and to follow, bookmark, and share content with other members.
Question asked by
on Apr 17, 2006
on Apr 17, 2006 by 12202
Show 0 Likes
No one else has this question
Mark as assumed answered
This content has been marked as final.
Show 2 comments
(Required, will not be published)
Apr 13, 2006 9:19 AM
We are using ST10F269. We have extermal flash memory.
Is there any utility to download .H86 file to external flash?
Earlier for on-chip we were using ST10 flasher utility but now we want to download our software in External flash.
I tried to write utility myself in VB.net but the only thing i am able to get is D5 after sending 00. I should be sending 32 byte code to ST10 but where would get this code from?
Please help me i have no idea about this.
Best Regards and Thanks,
Show 0 Likes
Apr 17, 2006 7:53 AM
Sorry, we don't provide a tool to program external Flash. The only way to do is to use a programmer from a third party or do your own utility.
The ST10F269 includes an on-chip boot loader. This mode is entered when P0L.4 is sampled low during reset.
When this mode is activated, the ST10F269 will be waiting to receive a NULL (0x00) byte on its ASC interface from an external device. Then, it calculates the ASC baud rate according to the length of the 0x00 byte received, configures its ASC interface accordingly, sends the acknowledge byte 0xD5 to the external device and start waiting to receive exactly 32 bytes from the external device. The on chip boot loader stores these 32 bytes in the ST10F269 internal RAM starting at address 0xFA40.
These 32 bytes may hold up to 16 instructions, clearly not enough to setup all registers and run an application. Instead, the 32 bytes are almost always a loop to download more instruction bytes. Consider the following loop.
mov R0, #0FA60h ; R0 is the address to the next byte
jnb S0RIR, W0 ; wait until a byte is received
movb [R0], S0RBUF ; place the received byte in memory
bclr S0RIR ; clear serial receive flag
movb S0TBUF, [R0] ; transmit (echo) the byte
cmpi1 R0, #(0FA60h+NUMBYTES-1) ; see if all bytes are received
jmpr cc_NE, W0 ; if not repeat
This loop takes exactly 32 bytes to implement. Note that NOP (no operations) instructions are used to pad the loop to make it exactly 32 bytes. Once the 32-byte loop is received, the microcontroller branches to 0FA40h and starts executing this 32-byte loop. This loop expects more characters to be received and places the received characters in internal memory. So the host which sends the 32-byte loop may continue to send more bytes, now to be placed in memory by the loop rather than by the microcontroller’s bootstrap logic.
I hope this helps you,
[ This message was edited by: Najoua on 17-04-2006 11:24 ]
Show 0 Likes
Retrieving data ...
2018 STM32 Wish List
stm32 with Cubemx Adafruit FRAM MB85RC256V I2c
CubeMX SDIO DMA FatFS configuration
Please provide a way to download older version of the cube.
Efficiently use DMA with UART RX on STM32