Hello,
I have a camera with a micro controller STC15F2K60S2. My camera was
blocked and I'd like to enter the bootloader. Then I connected a USB-TTL
adapter to the following pins: Txd / 3.1, Rxd / 3.0, VCC, GND. But under
the Putty software serial port I see no bootloader at boot of the
camera.
Do I adapateur well connected to the microcontroller, there is a setting
to do?
Can you help me ? Thank you.
Why do you want to enter the bootloader? Do you have a kind of
firmware-update and want to install it?
For the serial connection: did you check the connection by shorting RxD
and TxD on your adapter - just to check, if the connection between putty
and those pins is working?
In most cases the boot loader is only entered, when some condition is
met, e.g. a particular port pin is in a expected state (hi or lo) during
reset or so. And then the autobaud procedure should start, which expects
a predefined character sent by the PC to the bootloader. Without meeting
all of this conditons, you probably will never see the bootloader. So I
suggest to read the manual of the µC.
W.S.
Thank you for answering,
I would like to access the bootloader because I transfered the wrong
firmware for a camera.
So I'd like to enter the bootloader to debug the microcontroller. But I
can not.
If I shorting between RX and TX that will I see in PUTTY?
I looked at the documentation, but I see nothing that speaks bootloader:
http://www.stcmicro.com/datasheet/STC15F2K60S2-en.pdf
Thank you.
Hi,
I reverse engineered the bootloader/BSL protocols of STC chips.
The bootloader on STC 8051 chips has to be triggered on power-on reset
with a sequence of pulses on the UART RX pin. It is also possible to set
an option that disables the bootloader unless two pins (which ones
depends on the particular chip, see the datasheet) are tied to ground.
If you want to avoid STC's tool, you can use stcgal, which was the
result of all my reverse engineering:
https://github.com/grigorig/stcgal
Maybe above was a little bit unclear. Here's some more detailed info.
- After power-on reset (soft reset or reset pin doesn't work) the MCU
listens for a falling edge on the RX pin for a short time. If it
encounters it, the bootloader is entered.
- The pindetect option locks out the bootloader completely, unless
P3.2/P3.3 or P1.0/P1.1 (depending on model) are pulled low. The falling
edge on power-on reset is still required!
- Both STC's tool and stcgal take care of the "pulsing" to generate the
falling edge by sending a stream of 0x7F bytes over UART until the MCU
responds.
Can you tell me what the Rx UART pin on my MCU (P3.0?)? and what are the
two pins that disable the bootloader to see if this is not the case on
my pcb.
How to see stc isp tools on the bootloader?
I managed mcu check with stc isp but only occasionally. Sometimes I can
not communicate with the MCU. But I do not know why.
Can you tell me summarize what I should do to successfully see the
bootloader, step by step.
Is it possible that there was nothing in the MCU bootloader?
Do you know where to find and how to flash bootloader?
Attached image of MCU.
Thank you
Step by step:
Connect GND and USB UART RX to MCU TX and vice versa. Start check or
program in STC-ISP or stcgal, which will then wait for the MCU. Only
then apply power to the MCU's VCC.
In my experience, STC-ISP can be a bit finicky with PL2303 USB UARTs.
stcgal works quite a bit more reliable with those.
Regarding your other questions:
> I managed mcu check with stc isp but only occasionally. Sometimes I can
not communicate with the MCU. But I do not know why.
Good, that probably means you have the connection between UART and MCU
working fine. Try to lower the baudrate, and make sure to always toggle
power when you want to initiate the bootloader.
> Do you know where to find and how to flash bootloader?
The bootloader is preprogrammed in the factory. It cannot be
overwritten. Well, it is not supposed to be, anyway. Maybe there are
undocumented ways to do it, who knows.
> and what are the
two pins that disable the bootloader to see if this is not the case on
my pcb.
Not sure, should be either P1.0/P1.1 or P3.2/P3.3. But check out the
list of device options in STC-ISP for your part, it is documented there.
I followed your advice and I can communicate with the MCU sub-STC ISP:
Checking target MCU ...
MCU type: STC15F2K60S2
F/W version: 7.2.2S
Current H/W Option:
. Current system clock source is internal IRC oscillator
. IRC frequency: 22.090MHz
. Oscillator gain is HIGH
. Wakeup Timer frequency: 37.372KHz
. Do not detect the level of P3.2 and P3.3 next download
. Power-on reset, use the extra power-on delay
. RESET pin behaves as I/O pin
. Reset while detect a Low-Voltage
. Thresh voltage level of the built-in LVD : 3.82 V
. Inhibit EEPROM operation under Low-Voltage
. Hardware do not enable Watch-Dog-Timer
. Watch-Dog-Timer pre-scalar : 256
. Watch-Dog-Timer stop count in idle mode
. Program can modify the Watch-Dog-Timer scalar
. Do not erase user EEPROM area at next download
. Do not control 485 at next download
. Do not check user password next download
. TXD is independent IO
. TXD pin as quasi-bidirectional mode after reset
. P2.0 output HIGH level after reset
. MCU type: STC15F2K60S2
F/W version: 7.2.2S
Complete !
Against the pin by 1.0 / 1.1 or P3.2 / P3.3 are not shorted. And I still
can not see the bootloader in PUTTY.
Do I have a bridge between two pins on the chip or something else?
Thank you.
What do you mean with "bootloader"? Why do you expect anything to be
visible when connecting over UART with putty? What you see here with
STC-ISP is the bootloader in action.
Of course the firmware that is flashed to the MCU may talk over UART,
but that is a very different thing.
My goal is to have a bootloader with xmodem function and to communicate
with command lines. I wish I could install the original firmware of the
camera via the command lines. At least I can do for stc-isp. But my
firmware is .OV I have no .hex or .bin.
Do you know if there is a bootloader which I could access through a
terminal with which I could use command lines in a STC chip?
By chance you know the .OV format?
Can I retrieve .hex file or .bin file in this firmware? Because in that
case I might be injected with the STC-ISP software?
Thank you.
Can you tell me if it is possible to inject linux.bin and romfs.img by
STC-ISP or stcgal? because I do not see how else without console
My goal is to be able after having to ethernet access to the camera and
install the original firmware.
archi wrote:> Can you tell me if it is possible to inject linux.bin and> romfs.img by> STC-ISP or stcgal? because I do not see how else without console>> My goal is to be able after having to ethernet access to the camera and> install the original firmware.
Sorry, but I have absolutely no idea what you want to achieve here. I
cannot help you. And to be honest, it doesn't look like you know what
you are doing here either. It just doesn't make sense. How does
something Linux come into play? The STC MCUs are 8051 compatible 8-bit
microcontrollers. Linux doesn't work on them.
My camera runs on a Linux kernel, I thought it was stored in the core
STC chip.
Looked at the photo of my pcb above, I see no other chip where it would
be stored linux kernel. Would you tell me if another chip on the PCB
would be able to?
My goal is to understand how it all works because there is no tutorial
that matches my camera. That is why I spoke of a bootloader as Uboot, I
would transfer the kernel.
I base this:
http://www.gadgetvictims.com/2009/12/bring-your-fi8908w-paperweight-back-to.html
Thank you for your help, maybe I hurt the chip located on the pcb.
A question of your own?
This thread is over 10 years old.
Ask it in a thread of its own – more people read along there, and it gets answered more often and sooner.