PirelliDPL10 » History » Version 16
steve-m, 02/19/2016 10:48 PM
add missing linefeeds
1 | 1 | steve-m | = Pirelli DP-L10 = |
---|---|---|---|
2 | |||
3 | The Pirelli DP-L10 is a tripleband GSM/Wifi VoIP dualmode phone, which was developed by Pirelli Broadband Solutions and manufactured by Foxconn. |
||
4 | |||
5 | It was branded and sold by quite a few operators: |
||
6 | |||
7 | * Pirelli DP-L10 |
||
8 | * Arcor Twintel DP-L10 |
||
9 | * Telekom TC-300 |
||
10 | * sipgate Pirelli Discus !DualPhone DP-L10 |
||
11 | * free.fr Black |
||
12 | * Cubic Mobile DP-L10 |
||
13 | * Tovo t450g |
||
14 | * Eurotef-M |
||
15 | |||
16 | The phones are still available as new at various places like eBay, Pollin or rebelsimcard.com. |
||
17 | 7 | steve-m | For more information on the original firmware see the [http://wiki.ip-phone-forum.de/telefone:t-one_tc300:start ip-phone-forum wiki] (german). |
18 | 1 | steve-m | |
19 | == Hardware == |
||
20 | |||
21 | * CPU/DBB: TI Calypso (D751992AZHH) |
||
22 | * ABB: TI Iota (TWL3014) |
||
23 | * GSM Transceiver: TI Rita (TRF6151) |
||
24 | * PA: SKY77328-13 |
||
25 | * Flash/SRAM: Spansion S71PL129NC0 128MBit/64MBit |
||
26 | * Wifi: Marvell 88W8385 802.11 MAC |
||
27 | * Marvell 88W8015 802.11b/g transceiver |
||
28 | * Winbond W56940 ringtone chip |
||
29 | * Sunplus SPCA552E multimedia controller |
||
30 | * LSI-65194A1 ASIC (seems to be a DSP for VoIP en-/decoding) |
||
31 | * Silabs CP2102 USB UART (connected to UART_IRDA of the Calypso) |
||
32 | |||
33 | 3 | steve-m | === PCB === |
34 | 1 | steve-m | |
35 | 3 | steve-m | The pcb is labelled with "T60N925", and the Foxconn internal project name seems to be "T60N925.00".[[BR]] |
36 | There are no schematics of this phone, however, steve-m has grinded down one of those boards, see the pictures of all layers [http://www.steve-m.de/pictures/pirelli_dpl10/ here]. |
||
37 | |||
38 | 2 | steve-m | [[Image(dpl10_front_small.jpg)]][[BR]] |
39 | [http://www.steve-m.de/pictures/dpl10_front.jpg large version] |
||
40 | 1 | steve-m | |
41 | [[Image(dpl10_back_small.jpg)]][[BR]] |
||
42 | 3 | steve-m | [http://www.steve-m.de/pictures/dpl10_back.jpg large version][[BR]] |
43 | [http://www.steve-m.de/pictures/rf_frontend.jpg large version of RF part] |
||
44 | |||
45 | 6 | steve-m | === RF path === |
46 | |||
47 | Since this phone is a tripleband design, it uses 3 rx filters, connected to the respective Rita inputs: |
||
48 | |||
49 | * Epcos B7820 for GSM900 |
||
50 | * Epcos B7821 for DCS1800 |
||
51 | * Epcos B7851 for DCS1900 |
||
52 | |||
53 | 13 | steve-m | Those are connected to an unknown "T 636 / 5475" antenna switch. The pinout of this switch however is identical with the Panasonic [http://www.panasonic.com/industrial/components/pdf/AEA0000CE1.pdf EZFL897TB11C]. |
54 | 6 | steve-m | The control voltage inputs of the switch are connected to the TSPACT outputs of the Calypso DBB through a Fairchild NC7NZ34 triple-buffer. |
55 | |||
56 | [[Image(dpl10_buffer.jpg)]] |
||
57 | |||
58 | 9 | steve-m | === Phone as clock generator === |
59 | |||
60 | The idea to use an OsmocomBB-driven phone as an accurate clock source, e.g. for the USRP, by synchronizing the clock to a cell of a commercial operator was [http://lists.osmocom.org/pipermail/baseband-devel/2010-April/000322.html discussed] on the mailing list a while back. Since the USRP needs an input clock of 52MHz, but the Compal-phones only expose 13 and 26MHz, an external PLL would be required. The DP-L10 however exposes the MCLK/TSPACT11 pin of the Calypso, which is connected through the triple-buffer to the GSM900 TX/Vc3 input of the antenna switch, and thus easily accessible. When the corresponding bit in the MCU_SW_TRACE register is set, this pin outputs the 52MHz clock being fed to the ARM-core, which is phase-locked to the VCTCXO. See the blue circuit path in the picture above. |
||
61 | |||
62 | This is the output captured with a 100MHz scope (and thus limited):[[BR]][[BR]] |
||
63 | [[Image(mclk_buffered.png)]] |
||
64 | |||
65 | After synchronizing to a cell with the phone, the frequency error measured by the DSP is in the 0-10Hz range. |
||
66 | |||
67 | 3 | steve-m | === USB/Serial converter === |
68 | |||
69 | A nice feature of this phone is that it already has an integrated Silabs CP210x USB-UART, which is supported by Linux. Even faster, odd baudrates of the Calypso DBB are supported by this chip, including the maximum 812.500 baud. |
||
70 | 11 | steve-m | Most of the phones seem to use USB vid:pid 0489:e003, which is mainline since Linux 2.6.36 (~~thus, older kernels need to be patched, the cp210x driver doesn't seem to take the vid/pid via modprobe parameters~~). |
71 | 1 | steve-m | |
72 | 11 | steve-m | As someone pointed out on the mailing list, you can do the following for Kernels < 2.6.36: |
73 | |||
74 | {{{ |
||
75 | # modprobe -v cp210x |
||
76 | # echo "0489 e003" > /sys/bus/usb-serial/drivers/cp210x/new_id |
||
77 | }}} |
||
78 | |||
79 | 3 | steve-m | The DP-L10 has the CalypsoRomloader enabled. |
80 | 4 | steve-m | |
81 | 8 | steve-m | === JTAG === |
82 | |||
83 | All JTAG lines, as well as the second uart (UART_MODEM), go to the unpopulated connector next to the display connector. |
||
84 | |||
85 | 10 | steve-m | [[Image(dpl10_debug_conn.jpg)]] |
86 | ||pin||signal|| |
||
87 | ||1||Vcc|| |
||
88 | ||2||RX_MODEM|| |
||
89 | ||3||TESTRSTz (Iota)|| |
||
90 | ||4||TDI|| |
||
91 | ||5||TMS|| |
||
92 | ||6||TCK|| |
||
93 | ||7||TX_MODEM|| |
||
94 | ||8||TDO|| |
||
95 | ||9||-nc-|| |
||
96 | ||10||GND|| |
||
97 | 4 | steve-m | ||11||-nc-|| |
98 | ||12||-nc-|| |
||
99 | 1 | steve-m | |
100 | == State of support == |
||
101 | 4 | steve-m | |
102 | 12 | steve-m | The code which adds support for the Pirelli DP-L10 can be found in master, however, there's still one thing that hasn't been resolved: The DP-L10 uses the UART_IRDA for sercomm, while the Compal phones use UART_MODEM. Therefore you need to swap the values of CONS_UART_NR and SERCOMM_UART_NR in /firmware/include/console.h and /firmware/include/comm/sercomm.h. |
103 | 4 | steve-m | |
104 | 11 | steve-m | Lots of drivers are still missing, like for the display, correct keypad layout etc. Maybe someone even wants to play with Wifi ;) |
105 | 4 | steve-m | |
106 | What works: |
||
107 | 14 | steve-m | * RX/TX in GSM900 and DCS1800, PCS1900 |
108 | 4 | steve-m | * audio path |
109 | * SIM-reader |
||
110 | 1 | steve-m | * keypad backlight |
111 | 14 | steve-m | |
112 | == Loading procedure == |
||
113 | |||
114 | Due to the fact that the phone has a USB charging mode, loading osmocomBB is a bit more complicated: |
||
115 | |||
116 | 1. remove the battery[[BR]] |
||
117 | 2. plug in USB cable[[BR]] |
||
118 | 3. start osmocon, for example: |
||
119 | {{{ |
||
120 | ./osmocon -p /dev/ttyUSB0 -m romload ../../target/firmware/board/pirelli_dpl10/layer1.highram.bin |
||
121 | }}} |
||
122 | |||
123 | 4. put in battery and the code is being loaded. If it should abort, remove the battery, kill osmocon and resume from step 3. |
||
124 | |||
125 | Without removing the battery the following procedure is possible (without SIM, but it takes longer): |
||
126 | |||
127 | 1. plug in USB cable, the USB charging mode will start[[BR]] |
||
128 | 2. press and hold the power button, the phone will boot and show "Insert SIM"[[BR]] |
||
129 | 3. start osmocon[[BR]] |
||
130 | 4. press and hold the power button, the phone will power off[[BR]] |
||
131 | 5. the code is being loaded (because after the poweroff Iota triggers a poweron due to the "Charger inserted"-condition, which executes the bootloader) |
||
132 | |||
133 | 15 | steve-m | When osmocom is alreday running on the phone and you want to reboot/load an updated version/different application, do the following: |
134 | |||
135 | 16 | steve-m | 1. kill osmocon and start it again[[BR]] |
136 | 3. press the powerbutton to power off the phone[[BR]] |
||
137 | 15 | steve-m | 4. the code is being loaded (due to the fact mentioned above) |