Renesas M16C Consolle

La consolle M16C RENESAS permette sia di visualizzare su di un display 16x2 i dati ricevuti dalla seriale che di inviare una stringa di dati, magari in risposta ad una determinata richiesta.

M16C Renesas CONSOLLE REMOTA

1.SCOPO del progetto Renesas M16c consolle

Quante volte usando un apparato ci viene pensare come sarebbe comodo poter avere più informazioni di quel benedetto led che assume 527 colori o lampeggia in 6432 modi diversi ma poi, in fin dei conti, sempre uguali. Quante applicazioni oggi fanno uso di un modulo GSM? Telecontrolli, teleattuatori, comandi attivazione remota ecc. ma che pensandoci bene perché non usarlo per ricevere o inviare SMS? Certo ci sarebbe da rilavorare sul firmware, ma almeno avremmo l'hardware a disposizione! Bene, se vi siete trovati in una di queste situazioni il progetto della consolle remota (realizzata con il microcontrollore Renesas m16c) che segue può fare al caso vostro.

2.DESCRIZIONE M16C consolle

La consolle M16C RENESAS permette sia di visualizzare su di un display i dati ricevuti da un altro sistema che di inviare una stringa di dati, magari in risposta ad una determinata richiesta.
I principali blocchi funzionali che la compongono sono:

1)Display di visualizzazione.
2)Tastiera alfanumerica.
3)Seriale di comunicazione.
4)Unita centrale di elaborazione.

Di seguito andremo ad analizzare nel dettaglio ognuno di questi blocchi.

3.DISPLAY DI VISUALIZZAZIONE M16C

Per poter visualizzare i dati la scelta è caduta su di un classico display alfanumerico 16x2 ovvero un dispositivo in grado di visualizzare 16 caratteri standard ASCII su due righe. L'interfacciamento con il microcontrollore Renesas avviene mediante tre segnali di controllo e otto segnali per la linea dati, ovviamente gestiti all'interno del firmware.

4.TASTIERA ALFANUMERICA consolle M16C

Una tastiera alfanumerica da 14 tasti (0-9,RD,WR,SEND,UP DOWN) permette di scrivere i dati da inviare. L'interfacciamento con il microcontrollore è stato realizzato sfruttando il metodo a matrice ciò permette di diminuire il numero di I/O necessari alla connessione elettrica e semplifica la realizzazione del driver firmware di gestione.

5.SERIALE DI COMUNICAZIONE Renesas M16C

La comunicazione con il mondo esterno è affidata ad una seriale tramite segnali di TX, RX e GND. Un semplice transceiver RS232 è interposto tra l'unità centrale e l'esterno.

6.UNITA' CENTRALE DI ELABORAZIONE Renesas M16C

Il controllo del sistema è affidato ad un microcontrollore a 16bit Renesas della serie M16C/62P che grazie suo firmware può controllare e gestire in tempo reale il corretto funzionamento della CONSOLLE. La stesura del programma è stata realizzata in C e si compone dei principali blocchi funzionali:

gestione tastiera.
gestione display.
gestione seriale.

Queste routines vengono eseguite in maniera ciclica all'interno del main program e permettono all'utente di usufruire di tutte le funzionalità della CONSOLLE. Ovviamente ci sono anche driver software più a basso livello per la gestione fisica delle periferiche (per esempio acquisizione tastiera o inizializzazione display.)
Di seguito viene illustrata la routine che acquisisce la configurazione della tastiera.

Gestione Tastiera

//Title:        gestione_tastiera_100.c
//Author:	najro.prestato
//Current Rev:	100
//Mod.Descr.:	Modulo per acquisizione tasti
//
//		ptastihi e ptastilo congelano lo stato della tastiera alla prima acquisizione.
//		mtastihi e mtastilo congelano lo stato della tastiera alla successiva acquisizione.
//		tastihi e tastilo  vengono usati per far si che ogni modulo del programma possa accedere
//		in tempo reale allo stato della tastiera.
//		NB: 	tasto premuto 		bit=0
//			tasto non premuto 	bit=1
//
//	Esempio 1: 
//		nessun tasto premuto
//		tastilo=11111111b 	tastihi=11111111b
//
//	Esempio 2: 
//	        tasto 4 premuto per un tempo NON accettabile
//		ptastilo=11111110b (*)	ptastihi=11111111b
//		dopo x mS tasto non attivo	
//		mtastilo=11111111b 	mtastihi=11111111b
//		dato che mtastilo diverso da ptastilo non aggiorno tastilo e tastihi che mantiene
//		il valore precedente ovvero la configurazione per nessun tasto premuto (Esempio 1)
//
//	Esempio 3: 
//		tasto 4 premuto per un tempo accettabile
//		ptastilo=11111110b(*) 	ptastihi=11111111b
//		dopo x mS tasto attivo	
//		mtastilo=11111110b(*) 	mtastihi=11111111b
//		dato che mtastilo è uguale a ptastilo aggiorna tastilo e tastihi con la nuova configu-
//		-razione ovvero:
//		tastilo=11111110b(*) 	tastihi=11111111b
//
Il software completo della consolle M16C è disponibile a soli 5 euro. Potete realizzarlo da soli (fai-da-te) scaricando tutti i file (schema elettrico in PDF, lista parti, sorgenti firmware).   Download

In pratica si acquisiscono (usando dei registri di appoggio) ad intervalli regolari le configurazioni della tastiera e poi si confrontano; nel caso in cui siano uguali i registri tastilo e tastihi ; in questa maniera ci si svincola da eventuali problemi di spike, spurie, attivazioni rapide ecc.

Mentre queste sono le funzioni per gestire un display 16x2 con controller S6A0069 della Samsung

//Title:                Gestione_Display__100.c
//Author:		najro.prestato
//Current Rev:	100
//Mod.Descr.:  	Gestione display LCD con controller tipo Samsung S6A0069
//		Il formato di LCD e'gestito da LCD_ROWS e LCD_COLS
//		La modalita' e' gestita da LCD_BUS.
//		I pin di Controllo dello lcd dichiarati dalle seg. costanti:
//			LCD_RS			pin per Register selector
//			LCD_RW			pin per Read/Write
//			LCD_EN			pin per Enable
//			LCD_IO_RS		tris per Register selector
//			LCD_IO_RW		tris per Read/Write
//			LCD_IO_EN		tris per Enable
//			I pin per DATA vanno tutti su una stessa porta.
//			8 bit:	D0-D7	connessi a	Portx0 - Portx7
//			4 bit:	D4-D7	connessi a 	Portx4 - Portx7
//			Il punto Top,Left è impostato a 1,1
//			L'impostazione delle connessione avviene mediante:
//			LCD_PORT_DATA	pin port per Data
//			LCD_IO_DATA	tris per Data
//             	Per modificare le caratteristiche per altri LCD:
//              accedere e modificare lcd.h
//Note:		Size Char pos DDRAM addresses
//				2*16 	00..15 		00h..0Fh  +  40h..4Fh
//				2*20 	00..19 		00h..13h  +  40h..53h
//
//
//Funzioni disponibili per pilotaggio LCD:
//
//	lcdinit(void)			Inizializza LCD
//	checkbf(void)			Attende la fine dell'ultima operazione
//	lcdclear(void)			Invia comando Clear & Home
//	lcdputch(char)			Scrive un carattere nella pos. del cursore
//	lcdputs(char *)			Scrive una stringa di caratteri
//	lcdwrite(char, char)    Scrive un byte unsigned nella DD RAM
//	lcdcommand(char)        Scrive un comando
//	lcdgetch(char)			Legge il carattere nella pos. cursore
//	lcdread(char)			Legge un byte unsigned dalla DD RAM
//	lcdsetcurs(char, char) 	Imposta il cursore a riga, colonna
//	lcdgetcurs (char, char)	Ritorna la riga, colonna attuale del cursore
//

Questa è la routine che gestisce la comunicazione seriale:

//Title:                Gestione_Seriale_100.c
//Author:		najro.prestato
//Current Rev:	100
//Mod.Descr.:	Modulo gestione RS232:
//		Protocollo di comunicazione -> STX CMD DATI ETX
//		Comandi Gestiti	-> MI: Visualizza sul display stringa ASCII contenuta in DATI
//				-> MA: invia sulla seriale una stringa ASCII contenuta in DATI
//
Il software completo della consolle M16C è disponibile a soli 5 euro. Potete realizzarlo da soli (fai-da-te) scaricando tutti i file (schema elettrico in PDF, lista parti, sorgenti firmware).   Download

Questo è invece lo schema elettrico.

Renesas M16C consolle schema elettrico

Lista parti Consolle M16C Renesas


Item	Qty	Reference			Part
________________________________________________________

1	8	C1,C4,C5,C6,C8,			1uF
		C9,C10,C13
2	3	C2,C3,C7			0,1uF
3	2	C11,C12				22pF
4	6	D1,D3,D4,D5,D6,D7		BYD17D
5	1	D2				LGR971
6	1	J1				CON8
7	1	J2				DISPLAY 16x2
8	1	J3				MOLEX 53261-1290
9	1	J4				MOLEX MICRO-FIT
10	1	Q1				BCX 54-16
11	1	Q2				MMBT2222
12	1	R1				2K2
13	4	R2,R3,R19,R21			4K7
14	4	R4,R5,R6,R7			100K
15	5	R8,R12,R13,R14,R15		1K
16	6	R9,R11,R16,R18,R20,R25		47K
17	2	R10,R24				10
18	1	R17				0
19	2	R22,R23				10K
20	1	U1				M30624FGPFP
21	1	U2				ST232BD
22	1	U3				DS1818
23	1	U4				24LC16
24	1	Y1				4 MHz

Non ho volutamente riportato la parte alimentazione in quanto ognuno può riutilizzare qualche alimentatore pensato per altre applicazioni l'importate è fornire al sistema 5Vdc.

Aspetto con interesse i vs commenti e/o domande.

Scarica subito una copia gratis

3 Commenti

  1. Avatar photo Mjk202020 15 Febbraio 2012
  2. Avatar photo Emanuele 15 Febbraio 2012
  3. Avatar photo Emanuele 15 Febbraio 2012

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend