Panoramica di MSP430F169
Il Microcontrollore MSP430F169 è uno dei della famiglia MSP430 di Texas Instruments. Comprende più dispositivi che presentano set distinti di periferiche progettate per diverse applicazioni. L’architettura di questi microcontrollori, insieme a cinque modalità a basso consumo, è stata ottimizzata per ottimizzare la durata estesa della batteria per applicazioni di misurazione portatili. Inoltre, l’oscillatore controllato digitalmente (DCO) consente tempi di riattivazione rapidi di meno di 6 µs dalle modalità a basso consumo alla modalità attiva.
Questi microcontrollori trovano tipiche applicazioni in sistemi di sensori, applicazioni di controllo industriale, misuratori portatili e altri domini simili.
Caratteristiche
- Basso consumo energetico;
- Cinque modalità di risparmio energetico;
- DMA interno a tre canali;
- Programmazione seriale integrata;
- Protezione del codice programmabile tramite fusibile di sicurezza;
- Con rilevatore di sottotensione e bootloader;
- Monitoraggio della tensione di alimentazione con rilevamento del livello programmabile.
Configurazione dei pin
L’MSP430F169 è effettivamente disponibile sia in versioni a 64 pin che a 100 pin, con diverse configurazioni dei pin per ciascuna.
Per la versione a 64 pin, alcuni pin chiave includono:
| Tipi di pin | Nome del pin | Descrizione |
|---|---|---|
| Pin di alimentazione | VCC | Ingresso della tensione di alimentazione positiva |
| GND | Massa | |
| RST/NMI | Ingresso di reset e interrupt non mascherabile | |
| TEST | Ingresso/uscita della modalità di test | |
| AVSS/AVCC | Massa e tensione di riferimento per ADC | |
| DVSS/DVCC | Massa e tensione di riferimento per i circuiti digitali | |
| Pin di ingresso/uscita | P1.x-P8.x | Pin di I/O per uso generale |
| Pin di comunicazione | UCA0CLK | Ingresso/uscita del clock del modulo USART A0 |
| UCA0STE | Ingresso/uscita STE del modulo USART A0 | |
| UCA0TXD | Uscita dei dati di trasmissione del modulo USART A0 | |
| UCA0RXD | Ingresso dei dati di ricezione del modulo USART A0 | |
| UCB0CLK | Ingresso/uscita del clock del modulo SPI B0 | |
| UCB0STE | Ingresso/uscita STE del modulo SPI B0 | |
| UCB0SIMO | Uscita dei dati di trasmissione del modulo SPI B0 | |
| UCB0SOMI | Ingresso dei dati di ricezione del modulo SPI B0 | |
| UCB0SDA | Ingresso/uscita dei dati del modulo I2C B0 | |
| UCB0SCL | Ingresso/uscita del clock del modulo I2C B0 | |
| Timer e contatori | TA0CCR0-TA0CCR6 | Timer A0: registro di cattura/confronto 0-6 |
| Registro di controllo del timer A0 | ||
| TB0CCR0-TB0CCR2 | Timer B0: registro di cattura/confronto 0-2 | |
| Registro di controllo del timer B0 | ||
| Pin analogici | ADC12CLK | Ingresso del clock ADC12 |
| ADC12MEM0-ADC12MEM15 | ADC12: registro di memoria 0-15 | |
| AVREF+ | Ingresso della tensione di riferimento positiva per ADC | |
| AVREF- | Ingresso della tensione di riferimento negativa per ADC | |
| Pin JTAG | TCLK | Ingresso/uscita del clock di test |
| TDI | Ingresso dei dati di test | |
| TDO | Uscita dei dati di test | |
| Pin con funzioni speciali | ACLK | Ingresso dell’oscillatore al quarzo da 32.768 kHz |
| SMCLK | Uscita del clock principale del sistema | |
| RTCCLK | Ingresso/uscita del clock in tempo reale |

Specifiche
| Specifica | Valore |
|---|---|
| CPU | 16-bit RISC |
| Frequenza | 8 MHz |
| Memoria Flash | 16 KB |
| RAM | 2 KB |
| Potenza in attesa | 1.1 µA |
| Potenza in modalità attiva | 330 µA a 1 MHz, 2.2 V |
| Tempo di riattivazione | meno di 6 µs |
| Durata del ciclo di istruzione | 125 ns |
| Tensione di alimentazione | Da 1.8 V a 3.6 V |
| Convertitore A/D | 12-bit |
| Timer/contatore | 2 * 16-bit |
| Temperatura operativa | -40 a 85 ℃ |
| DMA | 3 |
| I2C | 1 |
| SPI | 2 |
| Periferiche | timer, porte seriali, I2C |
| Contenitore | QFP a 64 pin o QFN a 64 pin |
Avvio del MSP430F169: clock, alimentazione e debug
Il MSP430F169 è un microcontrollore a 16 bit e basso consumo il cui avvio dipende da alimentazione pulita, configurazione del clock, multiplexing dei pin e ripristino prevedibile. Iniziare con un programma minimo che gestisca consapevolmente il watchdog, commuti un pin verificato e mostri clock e ripristino prima delle periferiche complesse.
- Stabilizzare l’alimentazione: inserire disaccoppiamento locale e misurare salita del ripristino e corrente.
- Confermare il clock: distinguere oscillatore interno e quarzo esterno e osservare un’uscita disponibile.
- Impostare i pin: configurare direzione e selezione periferica prima di UART, timer o ADC.
- Pianificare l’analogico: rispettare intervallo, impedenza sorgente, assestamento e disaccoppiamento.
- Conservare l’accesso: portare fuori i pin documentati di programmazione e debug.
Sistema di clock di MSP430F169
Il sistema di clock è molto importante per il microcomputer a chip singolo. Il motivo per cui il microcomputer a chip singolo MSP430F169 ha un consumo energetico così basso è perché ha un potente sistema di clock!

Tre sorgenti di segnale di clock
1. Bassa frequenza LFXT1CLK (32,768 KHz)
È possibile utilizzare un oscillatore a cristallo standard, un oscillatore o una sorgente di clock esterna per inserire 4 MHz ~ 32 MHz. XT1CLK può essere utilizzato come clock di riferimento per il modulo FLL interno.
L’oscillatore a cristallo a bassa frequenza (32,768 KHz) è direttamente collegato al microcomputer a chip singolo tramite i pin XIN e XOUT e non sono necessari altri dispositivi esterni (è presente una capacità di carico di 12 pF all’interno). In questo momento, l’oscillatore LFXT1 funziona in modalità a bassa frequenza (XTS=0).
Se la MCU è collegata a un oscillatore o risonatore bulk ad alta velocità, 0SCOFF=0 può far funzionare l’oscillatore LFXT1 in modalità ad alta frequenza (XTS=1). In questo momento, l’oscillatore o il risonatore a cristallo ad alta velocità è collegato tramite i pin XIN e XOUT ed è richiesto un condensatore esterno. La dimensione del condensatore è selezionata in base alle caratteristiche dell’oscillatore o del risonatore a cristallo.
Se il segnale LFXT1CLK non viene utilizzato come segnale SMCLK o MCIK, il software può impostare OSCOFF=1 per disabilitare il funzionamento di LFXT1, riducendo così il consumo energetico del microcontrollore.
BCSCTL1:
XTS(BIT6)——Selezione della modalità alta/bassa velocità LFXT1. 0: LFXT1 funziona in modalità oscillatore a cristallo a bassa velocità (predefinito); 1: LFXT1 funziona in modalità oscillatore a cristallo ad alta velocità.
2. Alta frequenza XT2CLK (8 MHz)
È possibile utilizzare un oscillatore a cristallo standard, un oscillatore o una sorgente di clock esterna per inserire 4 MHz ~ 32 MHz.
L’oscillatore XT2 genera il segnale di clock XT2CLK e le sue caratteristiche operative sono simili a quelle dell’oscillatore LFXT1 quando funziona in modalità ad alta frequenza. Se XT2CLK non viene utilizzato come segnale di clock MCLK e SMCLK, l’oscillatore XT2 può essere disabilitato con il bit di controllo XT2OFF.
BCSCTL1:
XT2OFF (BIT7) – Controllo dell’oscillatore a cristallo XT2 ad alta velocità. 0: Oscillatore a cristallo XT2 ad alta velocità acceso; 1: Oscillatore a cristallo XT2 ad alta velocità spento.
3. Oscillatore interno DCOCLK (1 MHz)
Stabilizzato dal modulo FLL.
Quando l’oscillatore fallisce, DCO verrà automaticamente selezionato come sorgente di clock per MCLK.
La frequenza dell’oscillatore DCO può essere regolata dal software impostando i bit DCOx. MODx e RSEL.x. Quando il segnale DCOCLK non viene utilizzato come segnale di clock SMCLK e MCLK, il generatore DC può essere disabilitato con il bit di controllo SCGO.
Dopo il segnale PUC, DCOCLK viene automaticamente selezionato come segnale di clock MCLK e la sorgente di clock di MCLK può essere ulteriormente impostata su LFXT1 o XT2 come richiesto. La sequenza di configurazione è la seguente:
- Impostare OSCOFF=1;
- Impostare OFIFG=0;
- Ritardare e attendere almeno 50ps;
- Controllare nuovamente OFIFG, se OFIFG=1, ripetere i passaggi (3) e (4) fino a quando OFIFG=0.
DCOCTL:
DCOx (BIT7, BIT6, BIT5)——Selezione della frequenza DCO, è possibile selezionare 8 tipi di frequenze e la frequenza DCOCLK può essere regolata a intervalli. La selezione della frequenza si basa sulla banda di frequenza selezionata da RSELx. La relazione tra DCOx, RSELx e il clock interno è la seguente:

MODx (BIT4, BIT3, BIT2, BIT1, BIT0) – Impostazione del modulatore DAC. Il controllo commuta le due frequenze selezionate da DCOx e DCOx+1 per regolare con precisione la frequenza di uscita del DCO. Se la costante DCOx è 7, significa che è stata selezionata la frequenza più alta. A questo punto, MODx non è valido e non può essere utilizzato per la regolazione della frequenza.
BCSCTL1:
RSELx (BIT2, BIT1, BIT0) – la selezione della banda di frequenza dell’oscillatore DCO, questi 3 bit controllano una resistenza interna per determinare la frequenza nominale. 0: Seleziona la frequenza nominale più bassa… 7: Seleziona la frequenza nominale più alta.
BCSCTL2:
DCOR(BIT0)——Seleziona la resistenza dell’oscillatore DCO. 0: resistenza interna; 1: resistenza esterna.
Tre sorgenti di clock
1. Clock ausiliario ACLK
ACLK si ottiene dopo che LFXT1CLK è diviso per 1, 2, 4 e 8. Può essere utilizzato come segnale di clock per ciascun modulo periferico ed è generalmente utilizzato per periferiche a bassa velocità.
BCSCTL1:
DIVAx (BIT5, BIT4)——Selezione della divisione della frequenza ACLK, la relazione di selezione della divisione della frequenza è la seguente:

Definizione macro: DIVA_0 (divisione della frequenza 1/nessuna divisione della frequenza), DIVA_1 (divisione della frequenza 2), DIVA_2 (divisione della frequenza 4), DIVA_3 (divisione della frequenza 8)
2. Clock principale di sistema MCLK
MCLK può essere ottenuto da LFXT1CLK, XT2CLK e DCOCLK dopo la divisione della frequenza per 1, 2, 4 e 8. È spesso utilizzato per il funzionamento della CPU, l’esecuzione del programma e altri moduli che utilizzano clock ad alta velocità.
BCSCTL2:
SELMx (BIT7, BIT6) – seleziona la sorgente di clock MCLK, la relazione di selezione del clock è la seguente:

Definizione macro: SELM_0 (DCOCLK predefinito), SELM_1 (DCOCLK), SELM_2 (XT2CLK), SELM_3 (LFXT1CLK)
DIVMx (BIT5, BIT4) – Selezione della divisione della frequenza MCLK, la relazione di selezione della divisione della frequenza è la seguente:

Definizione macro: DIVM_0 (divisione della frequenza 1/nessuna divisione della frequenza), DIVM_1 (divisione della frequenza 2), DIVM_2 (divisione della frequenza 4), DIVM_3 (divisione della frequenza 8)
3. Clock del sottosistema SMCLK
SMCLK può essere ottenuto dividendo XT2CLK e DCOCLK per 1, 2, 4 e 8 ed è spesso utilizzato in moduli periferici ad alta velocità.
BCSCTL2:
SELSx (BIT3) – seleziona la sorgente di clock MCLK, la relazione di selezione del clock è la seguente:

DIVSx (BIT2, BIT1) – Selezione della divisione della frequenza SMCLK, la relazione di selezione della divisione della frequenza è la seguente:

Definizione macro: DIVS_0 (divisione di frequenza 1/nessuna divisione di frequenza), DIVS_1 (divisione di frequenza 2), DIVS_2 (divisione di frequenza 4), DIVS_3 (divisione di frequenza 8)
Documentazione ufficiale
Prima di finalizzare schema, PCB o configurazione del firmware, verificare i dati del dispositivo nella documentazione aggiornata del produttore.




