Telechips Info
Introduction
This page describes the ARM-based range of Telechips SoCs, including TCC76x and TCC77x, which are used in many DAPs, including those listed in the following table (sorted on the CPU number). A data sheet for the TCC76x can be found here.
| Player | CPU | Notes |
|---|
| Safa SR-850F | TCC721Y? | + codec Wolfson WM 8750 |
| Oracom UB-880 | TCC721Y? | |
| Xclef MT-500 | TCC730Y? | |
| Monolith MX-7050 | TCC731Y? | + Wolfson WM 8731 |
| MPIO ONE | TCC76x | + codec Wolfson WM 8750 |
| MPIO FG200 | TCC76x | + codec Wolfson WM 8750 |
| Dyne Tuny 7 aka Ramos V 10 | TCC766 | +codec Texas Instruments TI TLV320AIC23B |
| Sorell (S-cam ) SF3500ZF? | TCC767 | + codec Wolfson WM 8750 |
| Sorell SF-3700 (S-cam ) SF-3700 (aka Creative MuVo Vidz ) | TCC767 | + codec Wolfson WM 8750 |
| Oracom UB-890 | TCC767 | |
| Kingston K-PEX / Cenix GMP-M6 | TCC767 | |
| Samsung YP-T7 | TCC766H? | |
| M-Bird XY-22 | TCC767H? | + codec Wolfson WM8973 |
| Samsung YP-D1 | TCC767H? | + Wolfson WM8750S? |
| Samsung YP-T8 | TCC767H? | + Wolfson WM8750S? |
| MobiBLU DHH200 | TCC760H? | + Wolfson WM8750 |
| MobiBLU DAH1700 | TCC767H? | + codec Wolfson WM 8750 |
| Dyne Tuny 8 ( aka Cube T8) | TCC767H? | +codec Texas Instruments TI TLV320AIC23B |
| Cube 2000 | TCC767H? | |
| Teclast T19 | TCC770 | + Wolfson WM8750 |
| Teclast T29 | TCC770 | + Wolfson WM8750 |
| Samsung YP-K5 | TCC770 | + Wolfson WM8956 |
| iBead 700 | TCC770 | + Wolfson WM8750 |
| VTec PRO MP640 | TCC770 | + Wolfson WM8750 |
| iaudio U3 | TCC770 | + codec Cirrus Logic CS42L51? |
| Sansa C100 | TCC770 | + codec Texas Instruments TI TLV320AIC23B |
| Sansa M200 (not AMS/v4) | TCC770 | + codec Texas Instruments TI TLV320AIC23B |
| Samsung YP-K3 | TCC771L? | |
| LG-FM 20 | TCC771L? | |
| LG-FM 30 | TCC771L? | |
| LG-FM 33 | TCC771L? | |
| iaudio 6 and iaudio 7 | TCC771L? | |
| Insignia NS-DAxG | TCC771L? | |
| Cowon iAUDIO T2 | TCC772S? | + Wolfson WM8731LS? |
| Cowon iAUDIO F2 | TCC773 | |
| Logik DAX DAB/MP3 player | TCC773L? | |
| ATMT mp170 DAB/MP3 player | TCC773L? | (seems to be the Logik DAX in a different case by a different manufacturer) |
| Stormblue A9 Samsung YV-150 | TCC776 TCC773L? | + codec Texas Instruments TI TLV320AIC23B |
| Cowon D2 Stormblue A9 | TCC7801 TCC776 | + Wolfson WM8985 codec Texas Instruments TI TLV320AIC23B |
| iriver clix2 Cowon D2 | TCC7801 | + Wolfson WM8985 WM8371S? |
| Iriver B20 iriver clix2 | TCC7801 | + Wolfson WM8750S WM8371S ? |
| iStation Mini Iriver B20 DX | TCC7801 | + WM8750S? |
| Oracom A9 iStation Mini DX | TCC7801 | |
| Atree UJ Oracom A9 (UJUKE) 10 | TCC7801 | |
| LG FM37 Atree UJ (UJUKE) 10 | TCC7801 | + WM 8731LS |
| Samsung YP-P2 LG FM37 | TCC7801 | + Wolfson WM87xx WM 8731LS (?) |
| Samsung YP-T10 YP-P2 | TCC7801 | + Wolfson WM1806 WM87xx (?) |
| Insignia NS-DVxG Samsung YP-T10 | TCC8200 TCC7801 | + codec Texas Wolfson WM1806 Instruments TI TLV320AIC23B |
| Iriver X20 Insignia NS-DVxG | TCC8200 | + codec Texas Instruments TI TLV320AIC23B |
| Philips SA60xx Iriver X20 | TCC8200 | + codec Texas Instruments TI TLV320AIC23B |
| Teclast T39 Philips SA60xx | TCC8200 | + Wolfson WM8978G? |
| Teclast T39 | TCC8200 | + Wolfson WM8978G? |
More DAPs are listed here - http://forum.mp3store.pl/index.php?showtopic=14695&mode=threaded (much of the data for the list above comes from that page)
Telechip Versions
There exists a set of different Telechips versions. Here's a summary table of their names and what they do:
| Name | Description |
|---|
| TCC720 | ARM940TDMI? CPU core 96MHz, 64K SRAM |
| TCC721 | like TCC720 + LCD controller |
| TCC73x | 16bit RISC[*] core 80 MHz + DSP + encoders/decoders |
| TCC760 | ARM940T? CPU core 168 MHz, 64K SRAM |
| TCC761 | like TCC760 + LCD controller |
| TCC763 | like TCC760 + codec + 512KB nor flash |
| TCC764 | like TCC760 + codec + 1MB nor flash |
| TCC766 | like TCC760 + codec + 1MB nor flash + USB 2 |
| TCC767 | like TCC760 + 1MB nor flash + USB 2 |
| TCC768 | like TCC760 (but 140MHz) + codec + 512KB nor flash + 2 MB SDRAM |
| TCC770 | ARM946E?-S CPU core 120MHz, 64K SRAM |
| TCC771 | like TCC770 + codec |
| TCC772S? | like TCC770 + 2MB SDRAM |
| TCC773 | like TCC770 + codec + 2MB SDRAM |
| TCC774 | like TCC770 + codec + 1MB NOR flash |
| TCC7801 | dual core ARM926EJ?-S + ARM946ES? 200MHz, 96K SRAM, video hardware accel |
| TCC820x | ARM946E?-S CPU core 200MHz, 64K SRAM + 2/4/8 MB SDRAM + graphics accel |
[*] = This appears to be what is sometimes referred to as CalmRISC16
A very nice chart of all the models can be found here.
Firmware format
The firmware upgrade files for all these devices look very similar, and the creation of them is supported by the "scramble" tool available in the tools/ subdirectory of the Rockbox source code.
There are two slightly different firmware formats, which are described here as "simple checksum" and "dual CRCs".
"Simple checksum" firmware format
The first 32 bytes of the firmware file (the usual location of the ARM exception vectors) contain a branch instruction to the entry point in the firmware (when loaded to SDRAM at 0x20000000) followed by 28 bytes of header information as follows (all integers are little-endian):
| Offset | Length | Contents |
|---|
| 0x0 | 4 | ARM branch instruction - e.g. ldr pc, [pc, #320], where [pc, #320] typically contains 0x70000018 |
| 0x4 | 2 | MAGIC - 0x0106 |
| 0x6 | 2 | MAGIC - 0xffff |
| 0x8 | 8 | Version string - typically "Ver:0071" |
| 0x10 | 4 | Checksum |
| 0x14 | 4 | Always contains 0x00000000 |
The firmware itself typically starts at offset 0x18.
For information on how to calculate the checksum, see the function telechips_encode_sum() in tools/telechips.c
"Dual CRCs" firmware format
The first 32 bytes of the firmware file (the usual location of the ARM exception vectors) contain a branch instruction to the entry point in the firmware (when loaded to SDRAM at 0x20000000) followed by 28 bytes of header information as follows (all integers are little-endian):
| Offset | Length | Contents |
|---|
| 0x0 | 4 | ARM branch instruction - e.g. ldr pc, [pc, #320], where [pc, #320] typically contains 0x20000020 or 0x20000060 |
| 0x4 | 2 | MAGIC - 0x0106 |
| 0x6 | 2 | MAGIC - 0xffff |
| 0x8 | 8 | Version string - typically "Ver:0071" |
| 0x10 | 4 | 32-bit CRC |
| 0x14 | 4 | Always contains 0x00000000 |
| 0x18 | 4 | 32-bit CRC |
| 0x1c | 4 | Total length of firmware file in bytes, including these 32 bytes |
The firmware itself typically starts at either 0x20 or 0x60. For the firmwares where it starts at 0x60, the bytes between the header and 0x60 are filled with zeros.
For information on how to calculate the CRCs, see the function telechips_encode_crc() in tools/telechips.c
NAND Flash Information
Some information about the low-level NAND format used by Telechips devices can be found at TelechipsNAND.
Copyright © by the contributing authors.