Menu principale

DSL-2640R/2740R/2680 - Guida al recovery con seriale

Aperto da m4ss1, 20 Gennaio 2011, 10:32:01

m4ss1


IMPORTANTE!!!!
Non collegate la console seriale del modem (che funziona a +3.3V) direttamente con il PC attraverso un collegamento seriale RS232, usate un convertitore RS232 a +3.3V.
Vedi info secondo post.

Con questa piccola guida cercherò di spiegare come recuperare un DSL-2640R usando l'interfaccia seriale presente nella PCB.
NB. La procedura via seriale è valida quando il bootloader è integro.

Come terminale ho usato Tera Term Pro (gratuito), il programma è compatibile anche con Windows Seven 64.
Se avete problemi con il sito potete scaricarlo da qui:
Effettuare l'accesso al forum per scaricare l'allegato.
Non puoi visualizzare questo allegato.

Scaricate anche il firmware del DSL-2640R e collegate l'interfaccia seriale seguendo lo schema postato nella discussione ufficiale.

Non puoi visualizzare questo allegato.

Avviate il programma Tera Term Pro, scegliete Serial come nuova connessione e selezionate la porta COM che state usando.
Non puoi visualizzare questo allegato.

Andate su Setup -> Serial Port ed impostate come in figura.
Non puoi visualizzare questo allegato.
(Velocità 115200, data 8 bit, parity none, stop 1bit, flow control none.)

Accendete il router e premete un tasto entro 3 secondi.
Non puoi visualizzare questo allegato.

Scrivete atur e premete il tasto invio, il router si predispone per l'upload del firmware con XMODEM.
Non puoi visualizzare questo allegato.

Ora andate su File -> Transfer -> XMODEM -> Send e selezionate il firmware del router.
Non puoi visualizzare questo allegato.

Inizierà immediatamente l'upload del nuovo firmware.
Non puoi visualizzare questo allegato.

E successivamente il flash del firmware.
Non puoi visualizzare questo allegato.

Dopo alcuni minuti il router si riavvierà perfettamente funzionante e con il nuovo firmware ;)

La procedura è stata testata su un DSL-2640R ma sicuramente può essere utilizzata anche sul DSL-2740R e qualche altro router bastato su Trendchip - Ralink.

bovirus

Convertitore USB a console seriale +3.3V

Per coloro che non hanno una seriale nel PC o vogliono semplicemente semplificarsi la vita è possibile attraverso un economico adatttore usare la porta USB del computer

Convertore USB seriale TTL (Ebay)

Questi adattatori, di solito basati sul chip CP2102, prendono l'alimentazione dalla USB del PC (non serve più avere il +3.3V).
Il convertitore adatta i segnali delal USB allo standard +3.3V della console seriale del PC.
Basta collegare TX / RX /GND dell'adattaore alla console seriale del modem.
Insieme all'adattore vengono forniti i driver per emulare una porta seraile (es. COM9) da usare con i programmi tipo Hypeterminal.

Programmi terminale - Alternative

E' possibile, se disponibile, usare anche il programma HyperTerminal incluso in alcune versioni di Windows.

Si può usare anche o PortaPutty o termaTerm Portable

Portaputty 0.60 portatile (by ADSL4ALL)

Teraterm Pro (by ADSL4ALL)

m4ss1


Pondera

Ottimo!
Sul 2680 i piedini per il connettore seriale vanno saldati sulla scheda. Servirebbe qualche dritta e/o immagini su come farlo, considerando che sarebbe un discorso valido anche per il connettore JTAG per 2640R e 2740R. Il 2680 non prevede il connettore JTAG...

La procedura via seriale è valida quando il bootloader è integro!

Pondera

La scheda del DSL-2680 è sprovvista del connettore seriale, ma ne è predisposta per la saldatura. Per realizzare il connettore seriale JP1 occorre una striscia portacontatti maschio a 5 piedini in singola fila passo 2,54 mm (5 Pin 2.54 mm Single Row Pin Header Male Strip)
Fonte Alibaba.com



con un piedino mancante come chiave di polarizzazione, onde evitare inserzioni errate.
I fori di inserimento sono tappati dallo stagno su entrambi i lati del PCB, come si vede dalle immagine prese da un DSL-320B.


Portare il saldatore intorno ai 35°. Girare la scheda PCB e operare dal lato saldature. Mettere una minuscola porzione di stagno sulla punta del saldatore e mantenerla liquida. Mettere in contatto la porzione di stagno al tappo sul foro di inserimento ma senza che la punta del saldatore venga a contatto con il PCB. Il calore si trasmette a tutto lo stagno e quando si scioglie risucchiare con un buon aspirastagno!


Uploaded with ImageShack.us

Pondera

Costruzione del cavo seriale

1) Modifica cavo dati cellulare
Citazione di: m4ss1Se la vuoi prendere già fatta, la migliore è questa:


Cavo dati per telefoni Siemens x25-x35-x45
Siemens A35, A36, A40, C25, C35, C45, M35, M35i, M50, ME45, MT50, S25, S35, S45, SL-42, SL45, 3118 cell phones cable connector pinout

Citazione di: PonderaBisogna poi tagliare e rifare l'altra parte del cavo...

2) Acquisto interfaccia seriale preconfezionata basata sul max3232
Un esempio:
Fonte blooming



3) Costruzione cavo artigianale
Citazione di: m4ss1Per il 2640r non ho usato adattatori usb ma questa:





Costo 1,50 euro, compatibile con 3.3 e 5 volts
Testata su lettori xbox 360, tanti ma tannnnti router.

Dall'altra parte del cavo conviene montare dei mini connettori pin femmina, uno per ogni filo.
Fonte Caleb Entertainment System

[align=right][/align]


bovirus

Per effettura il recovery su nuovi pc in cui esiste solo l'USB e non esiste più la seriale e per evitare di doversi procurare anche il +3.3V, si può usare un convertitore USB -> RS232 TTL come quelli che si posso tropvare su Ebay basati di solito sul chip SiliconLabs CP2102 (effettuare la ricerca su Ebay con chiave "CP2102").

http://www.ebay.it/sch/i.html?_nkw=cp2102&_sacat=0&_sop=15&_odkw=converter+rs232&_osacat=0&_trksid=p3286.c0.m270.l1313

Con 6/7 euro (da UK - 5 gg lavorativi) o 3/4 euro (dalal Cina - 20gg lavorativi), riceverete un convertitore che necessita solo di essere collegato ad una presa USB.

In questo convertitore non sono necessari i +3.3V.
Basta collegare RX/TX.

Questo convertitore si dimostra molto utile nei modem dove l'interfaccia seriale non dispone del +3.3V.

SiliconLabs CP2102

Datasheet - http://www.silabs.com/Support%20Documents/TechnicalDocs/cp2102.pdf
Datasheet mini - http://www.silabs.com/pages/Silabs-Search.aspx?q=cp2102
Pagina downlaod driver - http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
Driver 6.5.3 per XP/Vista/Seven - http://www.silabs.com/Support%20Documents/Software/CP210x_VCP_Win_XP_S2K3_Vista_7.exe

Pondera

Dopo un aggiornamento di un DSL-2640R B1 (TrendChip/Ralink/Mediatek) via TFTP non andato a buon fine TUTTI i led del dispositivo risultavano spenti ed era totalmente assente l'attività via cavo LAN Ethernet.
Il resoconto del collegamento seriale era il seguente:



Bootbase Version: VTC1.15 | 2007/11/12 17:18:52
RAM: Size = 16384 Kbytes
DRAM POST: Testing: 16384K
OK
FLASH: AMD 16M *1

checksum error!
Download firmware...
Starting XMODEM upload (CRC mode)....
CCCCCCCCCCC


Con il firmware corrotto ma con il bootloader intatto resta la comunicazione via porta seriale interna. In questo caso il bootloader Bootbase ha identificato un errore di somma di controllo (checksum error!) e avviato il caricamento in modalità XMODEM del firmware sempre tramite porta seriale interna.

Pondera

Serial Console Pinout

DSL-2640R B1 (TC3162P2), DSL-2740R A1 (TC3162L2): JP2
DSL-2680 A1 (TC3162U): JP1

1. RxD
2. N.C.
3. 3.3V
4. GND
5. TxD

Pondera

Cercavo un modo per riutilizzare il cavo convertitore RS232 to logic level.





Ho scovato questo adattatore USB2.0 TO RS232 al negozio cinese che ho vicino casa ad una manciata di euro. L'involucro plastico semitrasparente è blu. Risulta compatibile col cavo seriale artigianale che necessita, per funzionare con l'adattatore, della presenza di tutti i collegamenti sul connettore della console seriale sulla scheda del dispositivo, quindi anche quello dell'alimentazione a +3,3 V.



USB-SERIAL CH340
Scheda tecnica compatibile (inglese)
Schemi logici e circuito (cinese)
Driver MAC/Linux/Android
Driver v3.4.2014.8 08/08/2014 Win7 32/64bit | Installazione manuale su Win8/10


; CH341SER.INF
; Driver for CH341 (USB=>SERIAL chip) V3.4
; WDM&VXD for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7
; Copyright (C) W.ch 2001-2014
;

[Version]
Signature = "$Chicago$"
Class     = Ports
ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318}
Provider  = %WinChipHead%
DriverVer = 08/08/2014, 3.4.2014.08
CatalogFile = CH341SER.CAT

[ControlFlags]
ExcludeFromSelect = USB\VID_1A86&PID_7523
ExcludeFromSelect = USB\VID_1A86&PID_5523
ExcludeFromSelect = USB\VID_4348&PID_5523
ExcludeFromSelect = USB\VID_4348&PID_5523&REV_0250
ExcludeFromSelect = USBSERPORT\SER5523
ExcludeFromSelect = CH341PORT\SER5523

[Manufacturer]
%WinChipHead% = WinChipHead,NT,NTamd64,NTia64

[WinChipHead]
%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523&REV_0250
%CH341S98.DeviceDesc% = CH341S98_Install, USBSERPORT\SER5523
%CH341S98.DeviceDesc% = CH341S98_Install, CH341PORT\SER5523

[WinChipHead.NT]
%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523&REV_0250

[WinChipHead.NTamd64]
%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523&REV_0250

[WinChipHead.NTia64]
%CH340SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_4348&PID_5523&REV_0250

[CH341SER_Install]
DelFiles  = CH341S98.DelFiles.SYS
CopyFiles = CH341SER.CopyFiles.SYS, CH341SER.CopyFiles.DLL
AddReg    = CH341SER.9X.AddReg, CH341SER.AddReg

[CH341SER_Install.NT]
CopyFiles = CH341SER.NT.CopyFiles.SYS, CH341SER.CopyFiles.DLL
AddReg    = CH341SER.NT.AddReg, CH341SER.AddReg

[CH341SER_Install.NT.HW]
AddReg    = CH341SER.NT.HW.AddReg

[CH341SER_Inst.NTamd64]
CopyFiles = CH341SER.NT.CopyFiles.SYSA64
AddReg    = CH341SER.NT.AddReg, CH341SER.AddReg

[CH341SER_Inst.NTamd64.HW]
AddReg    = CH341SER.NT.HW.AddReg

[CH341SER_Inst.NTia64]
CopyFiles = CH341SER.NT.CopyFiles.SYSI64
AddReg    = CH341SER.NT.AddReg, CH341SER.AddReg

[CH341SER_Inst.NTia64.HW]
AddReg    = CH341SER.NT.HW.AddReg

[CH341S98_Install]
DelFiles  = CH341S98.DelFiles.SYS
CopyFiles = CH341S98.CopyFiles.VXD, CH341SER.CopyFiles.SYS
AddReg    = CH341S98.9X.AddReg, CH341S98.AddReg

;[CH341S98_Install.NT]

[CH341S98.DelFiles.SYS]
CH341S98.SYS, , , 1

[CH341SER.CopyFiles.SYS]
CH341S98.SYS, , , 2

[CH341SER.NT.CopyFiles.SYS]
CH341SER.SYS, , , 2

[CH341SER.NT.CopyFiles.SYSA64]
CH341S64.SYS, , , 2

[CH341SER.NT.CopyFiles.SYSI64]
;CH341I64.SYS, , , 2

[CH341S98.CopyFiles.VXD]
CH341SER.VXD, , , 2

[CH341SER.CopyFiles.DLL]
CH341PT.DLL, , , 2
;°²×°DLLÊÇ¿ÉÑ¡µÄ,DLL¿ÉÒÔÓÃÓÚʶ±ðCH341¶Ë¿ÚºÍ¼àÊÓCH341¶Ë¿ÚµÄ²å°Îʼþ

[CH341SER.9X.AddReg]
HKR, , DevLoader, , *NTKERN
HKR, , NTMPDriver, , CH341S98.SYS

[CH341SER.NT.AddReg]
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[CH341SER.NT.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"serenum"
;ÉÏÃæÕâÐÐÓÃÓÚö¾Ù½ÓÔÚ´®¿ÚµÄ¼´²å¼´ÓÃÉ豸,Æô¶¯Ê±½«²úÉúDTRºÍRTSÐźÅ,Èç¹ûÐèҪö¾Ù,Ç뽫ÉÏÃæÕâÐеķֺÅÈ¥µô

[CH341S98.9X.AddReg]
HKR, , DevLoader, , *vcomm
HKR, , PortDriver, , CH341SER.VXD
HKR, , Contention, , *vcd
HKR, , ConfigDialog, , serialui.dll
HKR, , DCB, 3, 1C,00,00,00, 80,25,00,00, 11,00,00,00, 00,00,0A,00, 0A,00,08,00, 00,11,13,00, 00,00,00,00
HKR, , PortSubClass, 1, 01
HKR, , EnumPropPages, , "serialui.dll,EnumPropPages"
HKR, , Enumerator, , serenum.vxd
;ÉÏÃæÕâÐÐÓÃÓÚö¾Ù½ÓÔÚ´®¿ÚµÄ¼´²å¼´ÓÃÉ豸,Æô¶¯Ê±½«²úÉúDTRºÍRTSÐźÅ,Èç¹ûÐèҪö¾Ù,Ç뽫ÉÏÃæÕâÐеķֺÅÈ¥µô

[CH341SER.AddReg]
HKLM, SOFTWARE\WinChipHead\IC\CH341SER, WDM, 0x00010001, 0x00000034
HKLM, SOFTWARE\WinChipHead\IC\CH341PORT, DLL, 0x00010001, 0x00000010
HKLM, SOFTWARE\WinChipHead\IC\CH341SER, Function, , "USB=>Serial"
;HKLM, SYSTEM\CurrentControlSet\Services\CH341SER, UserRemoval, 0x00010001, 0x00000001
;ÉÏÃæÕâÐÐÓÃÓÚÔÚϵͳÍÐÅÌÖÐÏÔʾ¡°°²È«É¾³ýUSBתSERIALÓ²¼þÉ豸¡±£¬±ãÓÚÓû§ÊÖ¹¤É¾³ýÓ²¼þ

[CH341S98.AddReg]
HKLM, SOFTWARE\WinChipHead\IC\CH341SER, VXD, 0x00010001, 0x00000023

[CH341SER_Install.NT.Services]
AddService = CH341SER, 2, CH341SER.Service
AddService = Serenum, , Serenum_Service_Inst

[CH341SER_Inst.NTamd64.Services]
AddService = CH341SER_A64, 2, CH341SER.ServiceA64
AddService = Serenum, , Serenum_Service_Inst

[CH341SER_Inst.NTia64.Services]
AddService = CH341SER_I64, 2, CH341SER.ServiceI64
AddService = Serenum, , Serenum_Service_Inst

[CH341SER.Service]
DisplayName   = "CH341SER"
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %10%\System32\Drivers\CH341SER.SYS

[CH341SER.ServiceA64]
DisplayName   = "CH341SER_A64"
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %10%\System32\Drivers\CH341S64.SYS

[CH341SER.ServiceI64]
DisplayName   = "CH341SER_I64"
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %10%\System32\Drivers\CH341I64.SYS

[Serenum_Service_Inst]
DisplayName    = "SerEnum"
ServiceType    = 1
StartType      = 3
ErrorControl   = 1
ServiceBinary  = %12%\serenum.sys
LoadOrderGroup = PNP Filter

[DestinationDirs]
DefaultDestDir      = 10, System32\Drivers
CH341S98.DelFiles.SYS = 11
CH341SER.CopyFiles.SYS = 10, System32\Drivers
CH341SER.NT.CopyFiles.SYS = 10, System32\Drivers
CH341S98.CopyFiles.VXD = 11
CH341SER.CopyFiles.DLL = 11
CH341SER.NT.CopyFiles.SYSA64 = 10, System32\Drivers
;CH341SER.NT.CopyFiles.SYSI64 = 10, System32\Drivers

[SourceDisksFiles]
CH341SER.SYS  = 1
CH341S98.SYS  = 1
CH341SER.VXD  = 1
CH341PT.DLL   = 1
CH341S64.SYS  = 1
;CH341I64.SYS  = 1

[SourceDisksNames]
1 = %DISK_NAME%, , ,

[SourceDisksNames.amd64]
1 = %DISK_NAME%, , ,

[SourceDisksNames.ia64]
1 = %DISK_NAME%, , ,

[Strings]
WinChipHead      = "wch.cn"
CH341SER.DeviceDesc = "USB-SERIAL CH341"
CH341S98.DeviceDesc = "USB-SERIAL CH341"
CH340SER.DeviceDesc = "USB-SERIAL CH340"
CH341ASER.DeviceDesc = "USB-SERIAL CH341A"
DISK_NAME = "CH341 Serial Installation Disk"


L'immagine dell'adattatore in formato PNG in questo messaggio va bene come icona per programmi di utilità/strumenti (tool) supplementari al sistema operativo come USB Safely Remove.

In testa a questa discussione abbiamo consigliato come programma di emulazione terminale Tera Term.
Tera Term versione 2.3 di T. Teranishi non è compatibile con l'adattatore CH340.
L'ultimo Tera Term versione 4.xx di OSDN invece è perfettamente compatibile con l'adattatore CH340.

Pondera

Dopo un aggiornamento transversione EU - TT (effettuare sempre un reset prima e dopo la procedura) un DSL-2740R A1 è rimasto mattonizzato (bricked), cioé bloccato senza nemmeno possibilità di collegamento cablato Ethernet, con le sole spie Power e Wireless lampeggiante.
La scheda interna è predisposta per la console seriale ma bisogna saldare i piedini del connettore JP2 che ha i fori tappati con lo stagno.  



Citazione di: Pondera il 30 Gennaio 2011, 00:03:48I fori di inserimento sono tappati dallo stagno su entrambi i lati del PCB [...]
Portare il saldatore intorno ai 35°. Girare la scheda PCB e operare dal lato saldature. Mettere una minuscola porzione di stagno sulla punta del saldatore e mantenerla liquida. Mettere in contatto la porzione di stagno al tappo sul foro di inserimento ma senza che la punta del saldatore venga a contatto con il PCB. Il calore si trasmette a tutto lo stagno e quando si scioglie risucchiare con un buon aspirastagno!

Purtroppo la fretta e l'instabilità di una sistemazione su un piano precario hanno fatto si che un foro invece che essere liberato si occludesse totalmente di stagno. Mi sono dovuto ingegnare con quello che avevo a portata di mano per risolvere. Mi sono ricordato di avere un trapanino manuale per modellismo/traforo. Ma non avevo una punta da 0,9 mm come consigliato da chi usa questa tecnica. Quindi ho raddrizzato una graffetta di dimensioni medie l'ho infilata nella punta del trapanino e l'ho tagliata con una tronchesina affinché fuoriuscisse per poco meno di 1 cm. Con mia sorpresa ha funzionato!



Una volta collegato il DSL-2740R A1 via seriale ho constatato che il bootloader integro segnalava un errore di firma ed era in modalità di recupero in attesa di caricare il firmware.


Bootbase Version: VTC1.15 | 2007/11/12 17:18:52
RAM: Size = 16384 Kbytes
DRAM POST: Testing: 16384K
OK
FLASH: AMD 16M *1

signature error!
Download firmware...
Starting XMODEM upload (CRC mode)....
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
received = 0
XMODEM upload uncompleted!
ERROR

m4ss1

Revisionato primo messaggio: ripristinate tutte le immagini.

Licenza Creative Commons
Il contenuto dei messaggi del forum è distribuito con
Licenza Creative Commons Attribuzione Non commerciale 4.0
Tutti i marchi registrati citati appartengono ai legittimi proprietari