LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Classico convertitore da USB a UART su CP2102. Se non sai cos'è, non ne hai bisogno. Chiedo il resto sotto il gatto.

Te lo dico subito: funziona come dovrebbe. Il convertitore è realizzato secondo il noto e collaudato schema di SiLabs con uno sbalzo minimo. Una buona opzione per coloro che sono troppo pigri per saldare da soli.

Notare che, nonostante tutte le capacità del chip stesso, i pin di controllo hardware (DTR / DSR, RTS / CTS) non sono cablati. Per il controllo del flusso, rimane solo il metodo software (X-On / X-Off). Divorziato:

TX / RX.
- Alimentazione USB (+ 5V) e messa a terra.
- + 3,3 V dal convertitore di tensione integrato nel chip. Il voltmetro mostra 3.15V. Non ho idea di quale sia la corrente reale che si possa trarre da esso, ma secondo il datasheet, tutto è 500 mA.
- RST.

Ingressi / uscite "5V tolleranti", possono essere applicati fino a 5,8V. Testato a velocità di 115200 kbit / se 57600 kbit / s con due controller. Nessun problema.

A bordo un LED SMD rosso, si accende quando viene applicata l'alimentazione. La saldatura è cinese e per niente uguale a quella in foto. All'inizio mi è sembrato persino che la saldatura fosse fredda. La quantità di stagno e il carattere sulla maschera sono tali da sembrare di una produzione antichissima.

Il set include un CD con i driver. L'ho appena buttato via, sotto Linux il dispositivo appare già come / dev / ttyUSBx.

Lavori
+ piccolo (secondo le mie misure 42x15)
+ schema collaudato da anni
+ driver per tutte le piattaforme, oppure può funzionare senza di loro

Un dollaro in più rispetto al convertitore di cui sopra
- fili di collegamento non incluso

Ho intenzione di acquistare +11 Aggiungi ai preferiti Mi è piaciuta la recensione +14 +21

Adattatore da RS232 a seriale bus universale (USB to UART Bridge) è un dispositivo USB ad alta velocità per il collegamento di periferiche conformi allo standard TIA / EIA232.

L'adattatore si basa sul controller Silicon Labs CP2102 ed è destinato all'uso in sistemi dotati di bus USB. Le connessioni periferiche vengono effettuate utilizzando un connettore DB9 standard.

  • supporto per le specifiche USB 2.0;
  • set completo di segnali di interfaccia RS232;
  • l'ampiezza del segnale RS232 non è peggiore di ± 5,5 V;
  • alimentato tramite bus USB.

Installazione e collegamento dell'adattatore

  1. Prima di installare e collegare l'adattatore CP2102, assicurarsi che i dispositivi esterni siano diseccitati e collegati al circuito di terra.
  2. Quindi, collegare il dispositivo esterno al connettore DB9.
  3. Installare l'adattatore in un connettore USB libero, controllando visivamente la posizione dei cuscinetti di contatto finché non si bloccano nel connettore.
  4. fornendo alimentazione al dispositivo I / O, il sistema è pronto per il funzionamento.

Quando si installa l'adattatore CP2102, tenere presente che la specifica USB è inseribile a caldo, ma non si applica alle periferiche I / O seriali. Quando si lavora con l'adattatore, collegare solo apparecchiature periferiche diseccitate! Il mancato rispetto di queste regole può comportare l'uscita dai componenti del sistema informatico!

Installazione del driver basata su sistemi operativi Windows

Dopo aver collegato l'adattatore CP2102 al connettore USB nell'ambiente operativo sistemi Windows 2K / XP, viene rilevato come segue:

Ora è necessario scaricare il driver CP210x da USB a UART. Lanciamo la sua installazione:

Durante il lavoro del preinstallatore, l'utente può specificare la directory in cui verranno archiviati i driver del dispositivo CP210x:


Se il sistema operativo richiede informazioni sulla posizione dei driver di dispositivo, all'utente verrà richiesto di specificarne il percorso. Modello di programmazione L'adattatore CP2102 è costituito da un dispositivo composito e da un bridge da USB a UART, ciascuno dei quali è descritto dal proprio inf-file.

Pertanto, durante il rilevamento automatico, il sistema operativo richiede entrambi i file in sequenza.

I driver dell'adattatore devono essere offerti al sistema per l'installazione dalla directory specificata durante il processo di preinstallazione, se non diversamente specificato dall'utente. Inizialmente, il sistema operativo installa i driver per il dispositivo USB composito:

Se la versione corrente driver USB Il dispositivo composito non è verificato con un certificato digitale di Microsoft, l'utente viene avvisato con il seguente messaggio:

Il percorso dei file necessari per il dispositivo composito viene selezionato in base alle condizioni di preinstallazione:

Il passaggio successivo dell'installazione sono i driver del bridge da USB a UART. Come nel passaggio precedente, si consiglia un'installazione automatica.

Se la versione corrente dei driver da USB a UART Bridge Controller non è confermata da un certificato digitale di Microsoft, l'utente viene avvisato con un messaggio. Il percorso dei file necessari viene selezionato in base alle condizioni di preinstallazione:

Dopo l'installazione, il controller bus seriale universale CP210x USB Composite Device viene visualizzato nelle proprietà del sistema e la porta seriale COM3, implementata utilizzando il CP210x USB to UART Bridge Controller, e l'elenco dei dispositivi assume la seguente forma:

Ecco fatto, il driver è installato!

Questo materiale viene pubblicato per la prima volta, gentilmente fornito per la pubblicazione sul nostro sito web da IC Book Labs ed è di proprietà esclusiva di questa azienda. È vietata la ristampa senza l'autorizzazione scritta del detentore del copyright.


Come sapete, per la diagnostica e la riprogrammazione dei sistemi automotive, in particolare ECM, viene utilizzata la linea diagnostica K-Line 12 V (ISO 9141), elettricamente compatibile con l'interfaccia seriale RS232 utilizzata nei personal computer. Tuttavia, quando si accoppiano un'auto e un computer, sorge un problema dovuto al fatto che lo scambio con sistemi automobilistici gira a velocità di 200 e 10400 baud, che non sono tipiche dei computer. In questo articolo viene illustrata una semplice soluzione a questo problema per gli adattatori da USB a COM che utilizzano regolarmente il software fornito dagli sviluppatori.


Controllo del tasso di cambio

La velocità in baud per l'interfaccia seriale dipende dal divisore installato. Il valore del divisore è determinato dal contenuto del registro del divisore della velocità di trasmissione. L'analisi dell'architettura del controller e semplici calcoli mostrano che non ci sono ostacoli all'utilizzo delle velocità di 200 e 10400 baud di nostro interesse. Allora, qual'è il problema?


Durante la scrittura di sistemi operativi, driver e varie applicazioni per la manutenzione dell'interfaccia seriale, per semplicità, lo standard, che è diventato tradizionale per computer personale, una gamma di velocità: 300, 600, 1200,…, 115200 baud. Le velocità di trasmissione 200 e 10.400 utilizzate dalla linea diagnostica del veicolo non sono incluse in questo intervallo.

Il nostro obiettivo è fornire supporto per baud rate che sono supportati dai controller FT232 e CP2102, ma non supportano il "classico" software... L'idea è di ridefinire le velocità di trasmissione standard con nuovi valori, ad esempio, sostituire 14400 baud con 10400 baud. Dopo questo override, una richiesta per abilitare 14400 baud comporterà l'abilitazione di 10400 baud. Il punto è che stiamo aggiungendo nuova velocità mantenendo l'interfaccia compatibile con il software esistente. In linea di principio, qualsiasi velocità da una data riga può essere utilizzata per la sostituzione.

Sovrascrittura delle velocità per il controller CP2102

Considera realeizzazione del descritto idee sopra per garantire la compatibilità del controller USB a COM CP2102 con controller sistema elettronico controllo del motore (ECM) dell'auto. Come accennato in precedenza, per la linea diagnostica 12 V K-Line, le velocità tipiche sono 200 e 10400 baud.

Fortunatamente il produttore del controller CP2102 ha previsto la possibilità di un controllo flessibile delle modalità operative e ha dotato il suo dispositivo di un'utility per riassegnare i baud rate, quindi oggi non abbiamo bisogno di disassemblatore e debugger, le nostre azioni saranno molto semplici e si ridurranno all'utilizzo di un'utility standard fornita da Silicon Labs.

Si noti inoltre che il risultato delle nostre azioni sarà quello di modificare il contenuto della tabella che memorizza i valori dei divisori di frequenza per le velocità supportate. Questa tabella si trova nella memoria interna non volatile del chip CP2102, quindi le modifiche verranno salvate quando si spegne l'alimentazione o si trasferisce il dispositivo riprogrammato su un altro computer. Per la maggior parte delle applicazioni, questa opzione è più comoda rispetto, ad esempio, all'apportare modifiche al driver. Per garantire la compatibilità con la linea diagnostica del veicolo e il software utilizzato per monitorare lo stato dell'ECM, è necessario effettuare i seguenti override: 14400 a 10400 e 300 a 200 baud.

Quindi, eseguiamo l'utilità CP210 xBaudRateAliasConfig.exe ... Viene visualizzata la finestra CP210 x Baud Rate Configuration. Se sono collegati più dispositivi CP2102, nella riga Dispositivi collegati superiore, è necessario selezionare il dispositivo che riprogrammeremo. Se i dispositivi sono stati collegati dopo l'avvio dell'utilità, utilizzare il pulsante Aggiorna per aggiornare l'elenco degli adattatori coinvolti.

Fare clic sul pulsante Ottieni configurazione e ottenere un elenco delle velocità di trasmissione supportate per il dispositivo selezionato.

Se viene utilizzato un adattatore da USB a COM, l'elenco viene generato automaticamente, se ce ne sono diversi, quindi dopo aver selezionato un dispositivo, assicurarsi di fare clic sul pulsante Ottieni configurazione, altrimenti verrà visualizzata una tabella che non corrisponde a quella corrente, ma all'adattatore selezionato in precedenza!

La colonna di sinistra sotto il simbolo # indica il numero della modalità di velocità condizionale. Le colonne High e Low in Application Requested Baud Rate Range contengono i limiti superiore e inferiore dell'intervallo di velocità associato a questa modalità. Se il parametro richiesto dal software rientra in questo intervallo, viene utilizzato nella modalità corrente. Per mantenere la velocità richiesta dal software, viene utilizzata la modalità nell'intervallo in cui questa velocità rientra. Le colonne Desired e Actual nella colonna Baud Rate UART mostrano la velocità di trasmissione programmata per questa modalità. Desiderato è il valore ideale (solitamente dalla gamma di velocità standard). Actual è il valore effettivo, che, a causa delle peculiarità dei circuiti di clock del controller, non è sempre uguale all'ideale.

Fare doppio clic sulla riga corrispondente alla modalità modificata. Immettere il valore richiesto del tasso di cambio - Velocità di trasmissione desiderata. La velocità di trasmissione effettiva viene aggiornata automaticamente. Dal punto di vista dello standard dell'interfaccia seriale, è accettabile una deviazione del ± 3%. La precisione dell'impostazione della velocità per il controller CP2102 soddisfa questo requisito. Riga di modifica 19. Il valore iniziale della velocità di trasmissione è 14400 baud.


Immettere un nuovo valore - 10400 baud, fare clic su OK e l'override è impostato!


Riga di modifica 28. Il valore iniziale del tasso di cambio è di 300 baud.


Immettere un nuovo valore - 200 baud, fare clic su OK e l'override è impostato.

Dopo che tutte le modifiche sono state apportate, non dimenticare di fare clic sul pulsante Set Configuration nella finestra CP210 x Baud Rate Configuration e controllare che i valori Desired e Actual nelle righe modificate siano cambiati.

Utilizzando le utilità di diagnostica della porta seriale, è possibile verificare i risultati delle azioni eseguite impostando le velocità di trasmissione corrispondenti a quelle sovrascritte e confrontando le velocità impostate e misurate.

Inoltre, tieni presente che il pulsante Avanzate ti consente di mettere a punto i parametri. Per eseguire l'override, è necessario selezionare la casella di controllo Sostituisci consigliato.

Il Prescaler (fattore di divisione per il prescaler) e Reload (il valore da caricare nel contatore del divisore di frequenza principale) determinano il Baud Rate in baud secondo la seguente formula:

Velocità in baud \u003d ( 24 .000 .000 / Prescaler) / (65536 -Reload)

Notare che il controller CP2102 supporta velocità di trasmissione fino a 1 .000 .000 baud in modalità dati a 7 e 8 bit e 921.600 baud in modalità dati a 5 e 6 bit per la comunicazione full duplex. Se la velocità è impostata su un valore superiore ai limiti specificati, il controller potrebbe non funzionare correttamente.

Il controllo del timeout per la comunicazione USB viene eseguito modificando il parametro Timeout ricezione USB. Il valore di timeout in secondi è determinato dalla formula:

Timeout \u003d ( 65536 - Ricarica) / 500 .000

Il timeout specificato viene utilizzato durante il trasferimento dei dati ricevuti tramite l'interfaccia seriale tramite USB al computer. Determina la quantità di tempo che il controller attende per l'input. Se non arrivano dati entro il tempo specificato, il controller termina il trasferimento USB. Il valore di timeout tipico è 1 ms. Il controllo del timeout consente di impostare un compromesso quando vengono soddisfatti due criteri in conflitto:

1. Riduzione al minimo della latenza del servizio Dispositivi USB computer, che in questo caso aumenta la velocità di reazione del programma diagnostico agli eventi nell'oggetto da diagnosticare.

2. Minimizzazione del carico del computer mediante operazioni di trasferimento di pacchetti dati vuoti tramite USB, che avvengono in assenza di ricezione dati tramite interfaccia seriale. Le prestazioni complessive dipendono da questo.
Più lungo è il timeout, più a lungo il dispositivo “non dorme” in assenza di dati, ovvero per migliorare il primo criterio, il timeout dovrebbe essere aumentato e per il secondo dovrebbe essere diminuito.

Sovrascrittura delle velocità per il controller FT232

Considera l'idea di risolvere un problema simile per uno dei prodotti concorrenti: controller FT232 Società FTDI. A differenza dell'esempio precedente, qui dovremo modificare il file di configurazione del driver della porta seriale FTDIPORT.INF ... La struttura di questo file è descritta in, la procedura per modificare i campi che impostano il baud rate per una porta seriale è descritta in. Pertanto, per motivi di compattezza di presentazione, nella nostra descrizione, l'attenzione è focalizzata solo su quei parametri che devono essere modificati. Nota anche quello dato esempio corrisponde a una delle numerose opzioni per la rappresentazione dei parametri, tutte le opzioni possibili sono elencate in ,.

Trova la seguente voce nel file FTDIPORT.INF:


HKR "" ConfigData ", 1, 01, 00, 3 F, 3 F, 10, 27, 88, 13, C4, 09, E2, 04, 71, 02, 38, 41, 9 c, 80, 4 E, C0, 34, 00, 1 A, 00, 0 D, 00, 06, 40, 03, 80, 00, 00, d0, 80

La sequenza, a partire dal sesto parametro, contiene coppie di byte, ciascuno dei quali imposta il fattore di divisione in frequenza per il divisore che determina il tasso di cambio sull'interfaccia seriale. Ogni coppia corrisponde a una certa velocità. Considera la prima coppia di parametri 10 ore, 27 ore.

1. Poiché due byte adiacenti di una parola a 16 bit vengono scritti a partire dal byte meno significativo, per ottenere un numero a 16 bit, devono essere scambiati: 10 , 27 corrisponde 2710 h, h - significa che il numero è scritto in notazione esadecimale.

2. Converti il \u200b\u200bnumero a 16 ari 2710 h nel sistema binario.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3. Interpretiamo il valore binario risultante. I due bit più significativi di un numero a 16 bit, ovvero i bit 15, 14, definiscono la parte frazionaria del fattore di divisione della frequenza secondo la seguente tabella:

Po 15 Po 14 Parte frazionaria del divisore
0 0 0
0 1 0 .5
1 0 0 .25
1 1 0 .125

Nel nostro caso, la parte frazionaria del divisore è zero. Il campo di bit 13 –0 Il numero di 16 bit è numericamente uguale alla parte intera del divisore, traduciamo dal sistema esadecimale al decimale 2710 h \u003d 10 .000.

4. La frequenza di clock all'ingresso del divisore è 3 MHz \u003d 3 .000 .000 Hz. La velocità di trasmissione sarà uguale alla frequenza del divisore di ingresso divisa per il fattore di divisione.

Velocità in baud \u003d 3 .000 .000 / 10 .000 \u003d 300 baud.

Pertanto, la prima coppia di valori imposta la velocità di trasmissione su 300. Supponiamo di dover ridefinire questa velocità a 10400 baud. Calcoliamo il rapporto di divisione richiesto (Divisor):

Divisore \u003d 3 .000 .000 / 10 .400 = 288 ,46

Il valore disponibile più vicino è 288,5. Dobbiamo impostare la parte intera del divisore uguale a 288 , frazionario uguale 0 ,5 ... Secondo la tabella 2, i bit 15, 14 saranno uguali a 01 b, b - significa che il numero è scritto nel sistema binario. Conversione di 288 in sistema esadecimale: 288 \u003d 120 h. Questo valore deve essere inserito nel campo bit 13 –0. Combinando i bit 15-14 e 13-0, otteniamo 4120 h.

Per sovrascrivere la velocità di trasmissione da 300 a 10400 baud, la voce dovrebbe essere simile a questa:


HKR "" ConfigData ", 1, 01, 00, 3 F, 3 F, 20, 41, 88, 13, C4, 09, E2, 04, 71, 02, 38, 41, 9 c, 80, 4 E, C0, 34, 00, 1 A, 00, 0 D, 00, 06, 40, 03, 80, 00, 00, d0, 80

Ricordare che se il driver del dispositivo FT232 è già installato, affinché le modifiche abbiano effetto, il software del dispositivo deve essere completamente disinstallato e reinstallato dalla directory in cui si trova il file INF modificato. A causa delle peculiarità sistema operativo, la funzione di aggiornamento del driver o eliminazione del dispositivo in Gestione dispositivi potrebbe non funzionare.

Fonti di informazione.

L'interfaccia UART è supportata da quasi tutti i microcontrollori ed è molto comoda durante lo sviluppo e il debug di tutti i tipi di dispositivi MK: carica il firmware tramite il bootloader e visualizza i log di debug del dispositivo su un computer. Ma, ahimè, in computer moderni La porta COM sta gradualmente scomparendo dal numero di interfacce disponibili, essendo soppiantata dal bus USB, e ancor più assente nei laptop. Questo mi ha fatto riflettere sulla produzione dell'adattatore USB -\u003e COM. Di solito, tali adattatori sono realizzati sulla base del popolare microcircuito della serie FT232, ma presenta un paio di svantaggi: 1) il costo del microcircuito è di ~ 150 rubli 2) dimensioni microscopiche con tutte le conseguenti difficoltà nella saldatura e nella produzione di un circuito stampato.

In alternativa a FT232, è stato scoperto un CP2102 meno noto, che costa la metà del prezzo e ha la metà delle dimensioni, e persino il case QFN-28 (5 mm x 5 mm). Questo microcircuito è un convertitore USB-UART completamente finito che non richiede alcuna reggia esterna (una coppia di condensatori di filtro per il bus di alimentazione non conta) e ha le seguenti capacità:

  • conformità alle specifiche USB 2.0, velocità massima (12 Mbps)
  • eEPROM da 1024 byte integrata per memorizzare ID produttore, ID prodotto, numero di serie, descrizione del dispositivo, ecc.
  • velocità RS232 virtuale da 300 bps a 1 Mbit
  • supporto per i formati di trasferimento dati 5, 6, 7 e 8 byte di dati; 1, 1.5 e 2 bit di stop, varie parità
  • buffer del ricevitore - 576 byte, buffer del trasmettitore - 640 byte
  • sorgenti di riferimento integrate, regolatore 3.3V integrato
  • Driver per Windows Vista / XP / Server 2003/2000, Linux, Mac OS-X / OS-9

schema

Il circuito adattatore è stato preso dal datasheet, le periferiche opzionali sono state scartate ed è stato aggiunto un LED per indicare la presenza di alimentazione.

La spina DB9 è cablata in modo simile all'uscita della porta COM di un computer, ecco il suo cablaggio (la direzione dei segnali è indicata rispetto al computer)

Il problema principale del design dell'adattatore: il problema del circuito stampato e dell'installazione del QFN-28 è stato risolto incollando il microcircuito capovolto al circuito stampato e saldando i suoi terminali con un filo PEV da 0,1 mm. Un po 'triste, ma in miniatura. Ecco il risultato:


E nel caso di DB-9 tutto sembra così:

Autisti

Ora, dopo aver controllato attentamente l'installazione, puoi testare. Il dispositivo è stato rilevato dal sistema ma driver di Windows non ho potuto trovare. Li ho scaricati. Successivamente, è apparsa una nuova porta nel mio sistema: COM5 in Windows e / dev / ttyUSB0 in Linux. Ora, collegando RXD a TXD (2 ° e 3 ° pin della spina dell'adattatore) ed eseguendo un qualsiasi terminale COM, puoi assicurarti che i byte vengano inviati .. e ricevuti .. inoltre, quest'ultimo coincide con il primo ..

Uno punto importante: i livelli di segnale all'uscita dell'adattatore sono TTL e differiscono dai livelli di segnale dell'interfaccia RS232 standard, pertanto, i normali dispositivi per la porta COM non possono essere collegati direttamente all'adattatore, inoltre, questo potrebbe danneggiare l'adattatore. Per collegare dispositivi COM standard, è necessario aggiungere un convertitore di livello sul microcircuito MAX232.

Di seguito è possibile scaricare il progetto in Eagle, nonché un disegno finito di un circuito stampato per un ferro da stiro laser (per stirare un circuito stampato bifacciale, consiglio di stampare un disegno su carta da lucido).

Continuando con l'argomento "Programmatore AVR910", su un piccolo dispositivo, voglio portare alla vostra attenzione il mio prossimo "dispositivo".
Un tempo, iniziando a padroneggiare il microcontrollore, avevo l'obiettivo di scambiare, con l'aiuto di esso, dati con un computer.

Il controller ATmega16 ha una porta UART (RS-232) o, più semplicemente, una porta COM, solo con livelli di 5 Volt.
Per "portarlo" al computer, è necessario aumentare questi livelli a 10 volt.
Questa operazione viene eseguita principalmente dal microcircuito MAX232.

Può essere utilizzato quando una porta COM viene utilizzata su un computer (hardware).
Ma ho voluto usare porta USB... Sono andato al negozio e ho comprato un semplice cavo per la data cellulare.
Come pensavo, quindi tutti i cavi sono uguali e i pin in essi sono usati per RX e TX.
Mi sbagliavo ... I cavi che ho trovato sono fatti sul chip PL2303, che non fornisce una porta COM completa.
Dei tre cavi acquistati, ne ho preso uno che, come si suol dire, ha funzionato "con il botto".
È basato su chip CP-2102... esso USB-RS232 adattatore.

Avendo trovato sulla rete uno schema di un adattatore basato su questo microcircuito, ho iniziato ad assemblare il dispositivo. Questo microcircuito può essere programmato per i tuoi dati (produttore, numero di serie, nome del dispositivo se desideri collegare il tuo dispositivo a un computer). Tutto in file allegati.

Il suo schema è scandalosamente semplice.
Inoltre, il controller può essere collegato immediatamente, senza trasferimenti di livello (5-10 Volt).
Esecuzione, come sempre, su miniatura.

Frammento escluso. La nostra rivista esiste grazie alle donazioni dei lettori. La versione completa di questo articolo è disponibile solo

File

Driver di esempio
🕗 13/12/08 ⚖️ 3.23 Mb ⇣ 435 Ciao lettore!

--
Grazie per l'attenzione!

Un programma per creare i propri driver
🕗 13/12/08 ⚖️ 238,88 Kb ⇣ 416 Ciao lettore! Mi chiamo Igor, ho 45 anni, sono un siberiano e un appassionato ingegnere elettronico dilettante. Ho inventato, creato e gestito questo meraviglioso sito dal 2006.
Per più di 10 anni la nostra rivista è esistita esclusivamente con i miei fondi.

Buona! L'omaggio è finito. Se vuoi file e articoli utili, aiutami!

--
Grazie per l'attenzione!
Igor Kotov, redattore capo della rivista "Datagor"

Schema e sigillo
🕗 13/12/08 ⚖️ 41,22 Kb ⇣ 461

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam