Electronics > Projects, Designs, and Technical Stuff

Work with a poorly documented chinese processor + several questions

(1/3) > >>

soFPG:
First and foremost I want to say that I am doing this as a hobby, so fun and learning by doing is the main goal of this project. I don't care if it seems possible or not, at least I want to try it.

But what is the project? I basically want to step out of the microcontroller world and work with a "real" processor, external RAM, external Flash etc. I know there are several microcontrollers from Atmel / STM which have broken out address - and databus...but I want to go a different way!
A different way means to work with a cheap 16-year old GSM baseband processor from Mediatek: the MT6205B. It features a 26MHz 32-bit ARM7TDMI CPU.

What I have at the moment is 176 pages of datasheet and a reference schematic for a "simple" GSM phone. But I don't really care about GSM or network stuff, my first goal is to get the processor working together with RAM/Flash and display (16-bit 8080 interface).

Unfortunately the two documents I have are marked as "confidential" so I am not sure if I am allowed to share them here - but I do it anyways: https://www.yumpu.com/en/document/view/39819735/mt6205b-gsm-baseband-processor-data-sheet-data-sheet-gadget (if this is not allowed here I can remove this link of course)

The most important part for me at the moment is to understand the boot-up sequence of the processor and how to get my C-program from my PC over a interface (don't know which interface is used at the end) to the CPU and into the external Flash.
What I know at the moment is that the MT6205B has internal SRAM and internal Boot ROM which are used for "factory programming" and the Boot ROM is not writeable (I assume). The Boot-Mode is configured by a GPIO called "BOOT" depending on whether it is tied to GND or VCC. There are these two boot modes:

* Running code from Boot Code for factory programming (I don't really know what "Boot Code" means here?)

* Running code from external flash for normal operation

--- Quote ---The Boot Code is placed with Memory Re-Mapping Mechanism in External Memory Controller and includes just two words of instruction: There is a jump instruction that leads the processor to run the code started at address 0x48000000 where the System ROM is placed
--- End quote ---
I don't understand where this "Boot Code" is comming from? It sounds to me that Boot Code is not equal to System ROM - but where is it stored?


--- Quote ---Usually the Factory Programming Host connects with MT6205B by UART1 interface. To have it work properly the system should boot up from Boot Code, that is the pin BOOT tied to GND. The download speed can be up to 230K bps.
After system being reset, the Boot Code will guide the processor to run the Factory Programming software placed in System ROM. Then, the MT6205B will start and continue to poll the UART1 port until valid information is detected. The first information received on the UART1 will be used to configure the chip for factory programming. The flash downloader program is then transferred into System RAM or external SRAM

--- End quote ---
Again, I don't quite understand what is Boot Code and what is System ROM. Boot Code are these two instructions described above (LDR + jump to 0x48.....) and System ROM contains UART1 initialization? And the stuff which is received by UART1 is then transferred to System RAM - so it makes sense that the program which is transferred over UART1 contains initialization code for external Flash and then can be used as a "bootloader" to actually program the flash?
Unfortunately that's basically all information for the boot up sequence and no further hints about what is "valid information". No further information about the baud rate (maybe 230.000?).

The MT6205B has JTAG-pins - I don't know if they can be used to program the flash via a JLink for example? I've never done anything with JTAG so I don't know if it is enough for the JTAG interface to know that there is a "ARM7TDMI"-based processor connected or if I actually need some kind of config file for the specific processor?

What I hope for at the moment is to find some people here who have experience with boot up sequences of processors and / or JTAG flash programming and maybe can give me some hints here or there.

GeorgeOfTheJungle:
Everything you are saying sounds almost exactly like this: https://github.com/espressif/esptool/wiki

soFPG:
Doesn't sound too complicated to write a piece of software which pushes data over UART but then I found this:

https://github.com/espressif/esptool/wiki/Firmware-Image-Format

So in case the MT6205B expects any specific image format (besides just raw asm instructions) I am pretty much fckd - right?

Edit: There is actually some information regarding an image header used by Mediatek for the bootloader: https://github.com/u-boot/u-boot/blob/master/doc/README.mediatek But I don't know if this one is also applicable for the MT6205 (maybe they use the same across all their chips?)

Edit_2: Found something again (maybe bootloader code for MT6205): https://github.com/mtek-hack-hack/mtktest/tree/master/%20mtktest%20--username%20qq413187589/N65/N65_V1/bootloader/src

Edit_3: More information on bootloader: https://wenku.baidu.com/view/eef683a1b0717fd5360cdc0c // https://wenku.baidu.com/view/35306fc5aa00b52acec7ca07.html

soFPG:
What I am also wondering about right now is this schematic:

http://read.pudn.com/downloads183/ebook/858385/MT6205.pdf

As you can see on Page1 the "VD33" pins are connected to "VDD". "VDD" is connected, as shown an page 3, to "Vio" of the MT6305 IC (which generates all the voltage levels to fit the MT6205).

But as you can see in the datasheet of the MT6305 at page 9: https://datasheetspdf.com/pdf-file/746585/MediaTek/MT6305B/1 "Vio" is only max. "2.9V". I would have expected to have 3.3V on a pin called "VD33" and also 2.9V is a rather strange voltage for I/O-pins, isn't it?
Can anyone lift this curtain for me?

GeorgeOfTheJungle:
See page 20-21 of the MT6205B .pdf, it says VDD33 typical 2.8V.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod