Home
Accesso / Registrazione
 di 

YourDuino realizza con il dsPic il tuo modulo CPU in stile Arduino

YourDuino realizza con il dsPic il tuo modulo CPU in stile Arduino

Realizza il tuo modulo CPU basato sul microcontrollore dsPIC.
In perfetto stile Arduino, presentiamo YourDuino, una cpu con a bordo la potenza del DSC Microchip per applicazioni hobbistiche e professionali e , perchè no, anche per produzioni.

Introduzione al progetto Yourduino

Forse la fatica più grande è stata trovare il nome, un nome che non fosse già usato nella famiglia dei cloni o delle applicazioni di Arduino! Comunque eccolo qui! realizzate il vostro DUINO!

Il progetto YourDuino è disponibile a soli 9 euro. Potete realizzarlo da soli (fai-da-te) scaricando tutti i codici sorgenti (Schema elettrico, lista parti, circuito stampato, file gerber, esempi di codice sorgente sviluppato su piattaforma Microchip).   Download Yourduino

Il modulo presenta a bordo un microcontroller DsPic con quarzo da 10Mhz, quindi, grazie al PLL interno, in grado di operare fino a 40MHz, quindi a 100nS a ciclo istruzione Microchip.

Inoltre il DsPic 30F6010A offre capacità di calcolo avanzate come moltiplicazione, divisione ed operazioni specifiche DSP. Queste caratteristiche unite a periferiche PWM, Capture Compare, AD Converter etc. lo rendono ideale per il controllo motori.

YourDuino schema elettrico del modulo DsPic

Schema elettrico con DSPIC

La naturale applicazione del modulo è il controllo motori, anche se può essere usato in qualsiasi applicazione.
Sono presenti ben 9 uscite PWM e ben 24 ingressi bufferizzati dal 4051 che consentono il controllo motore in analogico, come l'acquisizione della corrente, della temperatura ed eventuali fault. Sempre per il controllo motori sono presenti degli ingressi per il controllo di posizione.

Questo oltre a tutti gli I/O già presenti nel dsPIC30F6010A.
Inoltre è presente un riferimento di tensione MCP1541 ed una eeprom esterna per eventuali salvataggi di dati.
Infine, avrete a disposizione anche 2 seriali UART, 1 SPI ed il modulo CAN.

Insomma se volete controllare i motori bene, altrimenti ci potete fare un sacco di altre applicazioni.

Quei due partitori che vedete nella prima parte dello schema elettrico, con etichette AD_28V e AD_12V sono gli ingressi per l'ad converter del micro, per monitorare le tensioni di 28V in genere usata per alimentare i motori e dei 12V in genere usata per l'elettronica.

Dimenticavo, è presente anche un regolatore di tensione per fornire i 5V al dsPIC, si è ancora uno dei pochi micro (di una certa potenza di calcolo) a 5V.

Ed è presente il connettore per debuggare con l'ICD2.

Dspic per controllo motori - Yourduino

Circuito stampato Yourduino

Yourduino CPU con DSPIC circuito stampato

Ambiente di sviluppo Microchip MPLAB

Per sviluppare con Yourduino dovete scaricarvi (è gratis) il software MPLAB da sito microchip.com. Tramite MPLAB potrete programmare, emulare e debuggare il vostro firmware.

Di base MPLAB contiene inoltre un editor di testo per scrivere software ed il compilatore assembler. Con un modulo aggiuntivo è possibile utilizzare anche il C
(ci dovrebbe essere ancora la versione student edition).

Il dsPic si presta bene anche al C, considerate comunque che scrivere in assembler con le istruzioni e la potenza del dsPic è tutta un'altra storia rispetto ai famosi PIC o al famosissimo PIC16F84, che pur essendo molto noti, hanno anche molte limitazioni che i progettisti conoscono bene.

Yourduino esempio firmware in linguaggio C

Ecco un esempio di firmware in C per testare le 2 porte seriali (uart) a bordo del modulo dsPIC. Possono essere modificate in routine oppure usate tramite delle istruzioni al compilatore, la classica IF, che se TRUE, obbligherà il compilatore a compilare appunto la parte di codice indicata dall'IF.


#if TEST_UART1 == 1
//	UART 1 TEST
unsigned long delayU1;
	sprintf(comTxBuf,"YOURDUINO TEST UART1:\r\n");	
	printUART1(comTxBuf);	
	delayU1=250000;
	while(1)
	{
		if(DataRdyUART1())
		{
			rx=ReadUART1() ;
			sprintf(comTxBuf,"%c\r\n",rx);	
			printUART1(comTxBuf);
		}else{
			delayU1--;
			if(delayU1==0)
			{
				PORTC^=0x4000;
				sprintf(comTxBuf,">\r\n");	
				printUART1(comTxBuf);	
				delayU1=250000;
			}
		}
	}
#endif

#if TEST_UART2 == 1
unsigned long delayU2;
	sprintf(comTxBuf,"YOURDUINO TEST UART2:\r\n");	
	putsUART2 ((unsigned int *)comTxBuf);	
	delayU2=250000;
	while(1)
	{
		if(DataRdyUART2())
		{
			rx=ReadUART2() ;
			sprintf(comTxBuf,"%c\r\n",rx);	
			putsUART2 ((unsigned int *)comTxBuf);
		}else{
			delayU2--;
			if(delayU2==0)
			{
				PORTC^=0x4000;
				sprintf(comTxBuf,">\r\n");	
				putsUART2 ((unsigned int *)comTxBuf);	
				delayU2=250000;
			}
		}
	}
#endif

Yourduino esempio firmware in Assembler

Questa invece è la gestione della porta seriale U1 (stampa i dati da un buffer nella sezione psv) in assembler.

U1TX_psv:
	mov	[W1], W2		; lower byte
	and	#0x00FF, W2
	mov	#'@', W0		; end of text
	cp	W0, W2
	bra	Z, U1TX_psv_end
	mov	W2, W0
	btsc	U1STA, #UTXBF		; wait buffer clear
	bra	$-2
	mov.b	WREG, U1TXREG

	mov	[W1], W2		; upper byte
	swap	W2
	and	#0x00FF, W2
	mov	#'@', W0		; end of text
	cp	W0, W2
	bra	Z, U1TX_psv_end
	mov	W2, W0
	btsc	U1STA, #UTXBF		; wait buffer clear
	bra	$-2
  mov.b	WREG, U1TXREG

	inc2	W1, W1

	bra	U1TX_psv

U1TX_psv_end:
	RETURN

Yourduino USB

Yourduino è presente anche nella versione USB. Il modulo è formato sempre da un dsPIC e poi da un microcontrollore Microchip PIC18F2550 che gestisce la porta USB. La comunicazione tra i 2 micro è affidata alla uart e può supportare trasferimenti ad alta velocita (sempre relativamente alle capacità della uart).

L'idea è di sfruttare il modulo per applicazioni USB, dove il PIC18 gestisce sia l'interfaccia seriale usb che il protocollo ed una prima elaborazione dati e buffer mentre al dsPIC saranno affidati tutti gli altri controlli.

Yourduino CPU con DSPIC

Il progetto YourDuino è disponibile a soli 9 euro. Potete realizzarlo da soli (fai-da-te) scaricando tutti i codici sorgenti (Schema elettrico, lista parti, circuito stampato, file gerber, esempi di codice sorgente sviluppato su piattaforma Microchip).   Download Yourduino

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di fra83

Trovo interessante che ci sia

Trovo interessante che ci sia anche la possibilità di collegare una linea CAN, è sicuramente un bel prodotto e poi è open source.
Inoltre il firmware per prodotti microchip è molto comprensibile e le routine di facile riutilizzo.
Non saprei ancora che applicazione proporre...magari nel prossimo contest sarà un premio!:-)

ritratto di Emanuele

Ciao fra83

Ciao fra83,
forse lo vedrai in un prossimo Review4U

Il CAN è gestibile via software dalla periferica interna al DSPIC (controller CAN), poi ovviamente, esternamente va implementato il driver del tipo MCP2551

ritratto di linus

domanda

Mantiene la compatibilità con i moduli dell'arduino? ovvero posso innestare un modulo progettato per l'arduino mantenendo le stesse funzionalità. Comunque sia è un bel progetto, nel vederlo più attentamente, mi son chiesto perché sia stato utilizzato LM340 invece del classico LM7805.

ritratto di Emanuele

YourDuino

La scheda non è compatibile pin to pin con Arduino, l'ho assimilata ad Arduino perche è Open Source e perche sposa lo stesso concetto di modulo-cpu.

Certo avrei potuto renderla compatibile con Arduino, un Arduino con DSPIC, ma sarebbe stato l'ennesimo tentativo di clonare un'idea riuscita, cosa che già stanno facendo in molti, senza successo :)

La scelta del regolatore è stata dettata, oltre che dalle specifiche, anche dalla reperibilità e dal package smd, infatti il 7805 è piu facile trovarlo nel classico TO220. L'LM340 comunque è quasi del tutto identico al 7805, condividono addirittura lo stesso datasheet.

ritratto di linus

Chiaro

Certamente hai ragione che yourduino non sia un clone dell' Arduino, ma forse non mi sono spiegato molto bene, la mia era solo una considerazione di carattere pratico nel poter utilizzare senza particolari problemi anche le shield dell'Arduino, in modo da avere un prodotto differente ma 'compatibile' con le varie shield già in commercio, del resto si comprende già dal progetto stesso che è un approccio diverso dalla realizzazione di un clone.

ritratto di telegiangi61

Progetto interessante

Trovo interessante il progetto, e condivido la scelta di non imitare (a parte il nome duino) il super clonato Arduino in tutte le sue salse.

ritratto di Emanuele

Si, anche perche quando ho

Si, anche perche quando ho progettato la prima versione di YourDuino le Arduino_Shield erano veramente poche (forse non esistevano ancora)... piu di 6 anni fa :)

ritratto di Fabrizio87

Personalmente trovo che

Personalmente trovo che l'anima di Arduino sia il suo sistema di sviluppo integrato,
Questo personalmente non mi attira più di tanto.

ritratto di Emanuele

Con Arduino hai una semplicità d'uso avanzata...

Con Arduino hai una semplicità d'uso avanzata, a discapito però di alcune caratteristiche come il debug, che in ambito professionale è necessario. Se vuoi debuggare con una scheda Arduino devi avere un debugger Atmel (o terze parti) e quindi siamo alle stesse condizioni di YourDuino.

Con YourDuino, per avere uno strumento professionale, devi acquistare solo il debugger Microchip (Ad esempio ICD2), poi il software è gratuito MPLAB IDE ed anche il compilatore C (esiste la Student Edition).

P.S. a proposito, hai visto il nuovo MPLAB X V1.0 cross-platform
http://ww1.microchip.com/downloads/mplab/X_Beta/index.html

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Ultimi Commenti