- Messaggi: 4
- Ringraziamenti ricevuti 0
MSP430, Microcontrollori 16 bit Ultra Low Power
Programmazione Porta UART in CCS e scambio dati tra due MSP (uso TX e RX)
- manuele de marco
- Autore della discussione
- Nuovo Utente
-
Less
Di più
11 Anni 2 Mesi fa #1
da manuele de marco
Programmazione Porta UART in CCS e scambio dati tra due MSP (uso TX e RX) è stato creato da manuele de marco
buona sera, è la prima volta che scrivo in questo"forum", sono uno studente di 4 ITIS, il mio prof mi ha detto di fare una ricerca su come programmare una porta UART in CCS, scrivere il codice e spiegarlo. poi dovrei parlare anche dello scambio dati tra MSP. NOI QUESTE COSE NON LE ABBIAMO MAI FATTE, LEGGENDO IN GIRO HO TROVATO POCO, O MEGLIO, HO TROVATO POCO CHE RIESCO A CAPIRE. QUALCUNO MI POTREBBE DARE UNA DRITTA SPIEGANDOMI CON PAROLE SEMPLICE COME SI PROGRAMMA UNA PORTA UART? GRAZIE
Si prega Accesso o Crea un account a partecipare alla conversazione.
- paoletto
-
- Elit Utente
-
Less
Di più
- Messaggi: 186
- Ringraziamenti ricevuti 3
11 Anni 2 Mesi fa #2
da paoletto
Risposta da paoletto al topic Programmazione Porta UART in CCS e scambio dati tra due MSP (uso TX e RX)
Ciao Manuele, benvenuto 
Prima di tutto ti consiglio di capire bene la logica della ricetrasmissione dei dati con la UART, una volta capito il protocollo è tutto più semplice.
Non posso che consigliarti la guida del buon Mauro:
www.laurtec.it/tutorial-54/elettronica-d...-il-protocollo-rs232
Dopo fatto questo, puoi provare a leggere l'esempio di utilizzo della porta UART sul testo C18 step by step.
Non è scritto per CCS ma per C18, ma questo non deve spaventarti. Mi aspetto che ci siano funzioni simili anche per CCS compiler, se capisci la logica puoi facilmente riportare il codice scritto per C18 in CCS!
www.laurtec.it/tutorial-54/cad-e-softwar...-by-step#comment-137
Buon lavoro!
Paoletto

Prima di tutto ti consiglio di capire bene la logica della ricetrasmissione dei dati con la UART, una volta capito il protocollo è tutto più semplice.
Non posso che consigliarti la guida del buon Mauro:
www.laurtec.it/tutorial-54/elettronica-d...-il-protocollo-rs232
Dopo fatto questo, puoi provare a leggere l'esempio di utilizzo della porta UART sul testo C18 step by step.
Non è scritto per CCS ma per C18, ma questo non deve spaventarti. Mi aspetto che ci siano funzioni simili anche per CCS compiler, se capisci la logica puoi facilmente riportare il codice scritto per C18 in CCS!
www.laurtec.it/tutorial-54/cad-e-softwar...-by-step#comment-137
Buon lavoro!

Paoletto
Si prega Accesso o Crea un account a partecipare alla conversazione.
11 Anni 2 Mesi fa - 11 Anni 2 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Programmazione Porta UART in CCS e scambio dati tra due MSP (uso TX e RX)
Dopo aver letto il tutorial sul protocollo RS232, il quale dal lato microcontrollore fa uso del modulo UART, fai riferimento anche alla user guide della famiglia MSP430 a cui fai riferimento.
Se istalli CCS avrai poi anche MSP430Ware, che possiede esempi brevi di trasmissione seriale basata su UART (una ventina di righe di codice).
Saluti,
Mauro
PS
Benvenuto nel Forum!
Se istalli CCS avrai poi anche MSP430Ware, che possiede esempi brevi di trasmissione seriale basata su UART (una ventina di righe di codice).
Saluti,
Mauro
PS
Benvenuto nel Forum!

Ultima Modifica 11 Anni 2 Mesi fa da Mauro Laurenti.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- birg81
- Visitatori
-
11 Anni 1 Mese fa #4
da birg81
Risposta da birg81 al topic Programmazione Porta UART in CCS e scambio dati tra due MSP (uso TX e RX)
Salve, vi chiedo infinitamente scusa, è Manuele è il mio alunno
Sono il prof. G.
Mi auguro che voi vogliate aiutarlo.
Ho dato a tutti i miei alunni un compito diverso.. indicando loro cosa fare e a grandi linee dove cercarlo.
E chiedo scusa sia ai miei alunni che a voi moderatori se posso con i miei modi sembrare cattivo ma ritengo utile che i miei alunni imparino a saper cercare, perché se do loro la "pappa pronta" non si faranno mai le ossa.
Sono speranzoso che per mercoledì mattina (scandenza della consegna) i miei ragazzi riescano a portarmi qualcosa di finito... altrimenti.. LI BOCCIO!!!
Mi auguro pertanto che vogliate aiutare i miei poveri tapini...
Alla prossima
Sono il prof. G.
Mi auguro che voi vogliate aiutarlo.
Ho dato a tutti i miei alunni un compito diverso.. indicando loro cosa fare e a grandi linee dove cercarlo.
E chiedo scusa sia ai miei alunni che a voi moderatori se posso con i miei modi sembrare cattivo ma ritengo utile che i miei alunni imparino a saper cercare, perché se do loro la "pappa pronta" non si faranno mai le ossa.
Sono speranzoso che per mercoledì mattina (scandenza della consegna) i miei ragazzi riescano a portarmi qualcosa di finito... altrimenti.. LI BOCCIO!!!
Mi auguro pertanto che vogliate aiutare i miei poveri tapini...
Alla prossima
Si prega Accesso o Crea un account a partecipare alla conversazione.
11 Anni 1 Mese fa - 11 Anni 1 Mese fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Programmazione Porta UART in CCS e scambio dati tra due MSP (uso TX e RX)
Ciao,
vediamo di rendere lungo il weekend.
Un esempio funzionalizzante con UART e' il seguente:
Il codice e' estratto da Code Composer studio, ovvero MSP430Ware.
La licenza del codice e' presente nel file allegato.
Il programma invia i dati ricevuti ovvero fa un echo.
Per testarlo si puo' usare una LaunchPad, da programmare per mezzo di CCS.
Alcuni dettagli sul come far funzionare l'esempio li trovi in questo Post .
Per far comunicare due MSP430 dovrai creare un collegamento Null-Model tra gli stessi (vedi il tutorial Il protocollo RS232 segnalato in precedenza).
Per capire il programma ti rimando al corso MSP430 .
Successivamente leggi il capitolo della User guide dedicato alla USCI...e avrai tutto.
Saluti,
Mauro
PS
@birg81
sospettavo che fosse un tuo studente...
vediamo di rendere lungo il weekend.
Un esempio funzionalizzante con UART e' il seguente:
Code:
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
if (CALBC1_1MHZ==0xFF) // If calibration constant erased
{
while(1); // do not load, trap CPU!!
}
DCOCTL = 0; // Select lowest DCOx and MODx settings
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 104; // 1MHz 9600
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
}
// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
}
Il codice e' estratto da Code Composer studio, ovvero MSP430Ware.
La licenza del codice e' presente nel file allegato.
Il programma invia i dati ricevuti ovvero fa un echo.
Per testarlo si puo' usare una LaunchPad, da programmare per mezzo di CCS.
Alcuni dettagli sul come far funzionare l'esempio li trovi in questo Post .
Per far comunicare due MSP430 dovrai creare un collegamento Null-Model tra gli stessi (vedi il tutorial Il protocollo RS232 segnalato in precedenza).
Per capire il programma ti rimando al corso MSP430 .
Successivamente leggi il capitolo della User guide dedicato alla USCI...e avrai tutto.
Saluti,
Mauro
PS
@birg81
sospettavo che fosse un tuo studente...
Ultima Modifica 11 Anni 1 Mese fa da Mauro Laurenti.
I seguenti utenti hanno detto grazie : manuele de marco
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti