Jump to content
PLC Forum


Iniziamo Con I Microprocessori


Recommended Posts

Gabriele Riva
Posted

Inizia un nuovo GRANDE progetto, si tratta di imparare ad usare i microprocessori.

Il progetto consiste nel imparare ad utilizzare, a costruire ed a programmare con i microprocessori .

A tale scopo e' stata realizzata una scheda “Starter Kit” basata sul un micro 16 bit della serie M16C (Mitsubishi)

L’obbiettivo e’ quello di realizzare una serie di schede (hardware e software) funzionanti, e per quanto possibile

con poco da invidiare a quelle commerciali.

Il progetto si rivolge a tutte quelle persone, studenti e non, che possano trarre vantaggio da una sperimentazione

di questo tipo, il motivo che ci spinge a farlo in questo modo e la consapevolezza che a molte persone mancano i mezzi solamente per iniziare. Siamo certi che molti troveranno utile o insostituibile cio’ che apprenderanno da questa piccola cosa per altri invece sara’ tutto molto semplice e con il gusto del “gia’ conosciuto” ed a loro chiederemo di condividere il loro sapere.

Facile immaginare che saranno necessarie alcune cognizioni di base, di elettronica e di informatica,

ma sottolineo cognizioni di base e nulla di piu’

Il progetto che ha un indirizzo assolutamente didattico sara’ composto da una serie di attivita’, la realizzazione di software in linguaggio C o Assembler , la collaborazione alla realizzazione di schede di espansione quali : asse elettrico angolare, telecontrollo radio, simulazione di un plc ed altre come l’unione di questo progetto con altri in corso su questo forum.

Le risorse della scheda sono le seguenti:

4 display (in multiplexing), 4 pulsanti (3 su interrrupt), 4 led, 1 porta parallela standard, 2 seriali 232, una memoria 24c02 una memoria 24c32 , 4 connettori riportanti un totale di 60 in/out

alimentazione ottenuta da un 7805 gia’ sullo stampato partendo , quindi da un 9-12 volt continua.

Il micro dispone di 256k di flash eprom e di 20 k di ram

pagina_11.jpg

Un grazie all'autore Dario Valeri a cui cedo la parola:


  • Replies 63
  • Created
  • Last Reply

Top Posters In This Topic

  • Dario Valeri

    31

  • Gabriele Riva

    6

  • luciano

    5

  • cdc

    4

Posted (edited)

ciao a tutti

grazie a gabri per aver preparato lo spazio e per la collaborazione

sono certo che che cio' sara' apprezzato da molti.

desidero segnalare a chi legge che questa iniziativa , cioe' di "imbastire"

uno starterkit (in realta' e' un po' dipiu' che uno starterkit) e di rendere disponibili

i dati per costruirselo (o adirittura di piu') al momento e' unica addirittura in tutta europa!!!

spero di trovare persone che utilizzino questo strumento per costruirsi la pratica

(e un po di esperienza) che consenta loro di percorrere la loro strada (almeno un po')piu'

velocemente.

Sottolineo che nemmeno io ho le doti per insegnare determinate cose ma quel poco

che so lo condivido volentieri .

ok sto preparando su di uno spazio ftp i data sheet dei componenti che sono montati sulla scheda

(che sono pochissimi)

un anticipo sulle caratteristiche del micro montato a bordo :

memoria flash 128k oppure 256k

memoria ram 10k oppure 20k

interrupt 25 interni e 8 esterni

2x5 timer (hardware) a 16 bit

5 seriali (tra sincrone e asincrone)

8 ingressi analogici a 10 bit

2 uscite analogiche a 8 bit

un totale di 87 pin di in/out

wdog

nmi

il micro si programma in "C" oppure in assembler (per i pazzi come me)

su internet si trovano alcuni pacchetti demo , trial , o addirittura free.

questi sono in paio di link per scaricare:

http://www.tasking.com/ il programma che danno non ha limiti di tempo ma di dimensioni del sorgente

http://www.iar.com/ il programma che danno e' full ma con il limite di un mese

http://www.renesas.com/eng/support/e_learn...ning/index.html link al sito renesas/istruzione si puo' vedere bene come e' fatto il micro .

presto inseriro' altri link dove poter scricare software demo o free

dario

Edited by Dario Valeri
Posted (edited)

Programma:

descrivo i passi che faro' nel portare avanti questo progetto on line:

1) realizzazione del software di base per la scheda

cioe' quelle routin che vengono usate all'interno della scheda gestione display, scrittura lettura e2prom, gestione seriali, parallela , interrupt , led e pulsanti.

2)realizzazione di un protocollo di comunicazione che sara' molto simile ad un protocollo commerciale

(di altri plc) al punto da potersi connettere (entro certi limiti)con un software commerciale.

ovviamente il protocollo sara' un protocollo pubblico.

3)realizzazione del hardware e software necessario per far diventare questa scheda un un asse elettrico angolare. (metea' 2004)

4)realizzazione software ed hardware per far diventare la scheda un centro di gestione per il modellismo

(presepe o altro) (fine 2004)

tutto cio' sara' pubblico e pubblicato su questo forum per favorire l'iniziativa di chiunque!

ciao

dario

Edited by Dario Valeri
Posted

ciao

faccio i miei complimenti per l'iniziativa.

Dario volevo chieterti il ccs che e' in fotogragia

che grandezza reale ha?

e come si puo' reperire?

per quanto riguarda il compilatore C

sarebbe opportuno la scelta di uno solo

in modo che tutti siamo sincronizzati .

volevo segnalare altri 2 siti

http://www.fsinc.com

e ancora meglio

http://www.raisonance.com

limitati in 4 k per la versione demo

sperando (e non sono sicuro ) che l'architettura dell m16c

sia compatibile 8051 ...

approposito dello sviluppo di funzioni

vorrei fare la proposta di agganciare questo progetto col progetto

scada in vb ... piu' precisamente la mia proposta

e' quella di realizzare il protocollo di comunicazione

modbus da far girate sul microprocessore

e parallelamente realizzare la ocx per il visual basic

ciao

Posted (edited)

ciao

grazie per i link

le dimensioni dello stampato sono 11x9 cm

e sono dovute sopratutto alla presenza dei connettori seriale/parallelo integrati a bordo.

per quanto riguardo lo scada era gia' mia intenzione fare/proporre cio' che dici ma vorrei che

il tutto fosse stabile.

ora parli di modbus e facendolo sveli un piccolo segreto(non piu' tale)

il MODBUS e' gia' in lavorazione ma volevo renderlo pubblico a cosa fatta.!!

compilatore : non me la sento di suggerire , ad ogni modo e con un po' di sforzo si fa la stessa cosa con tutti.

io preferirei il "ede tasking" ma non avendolo in versione full lavoro con "iar" che e' piu' lento e macchinoso.

ricodiamoci che ci sono dei pacchetti con poche limitazioni (ma in dos)

inoltre approfitto per segnalare il debugger kd30 assolutamete free.

dove si trova lo stamoato ? : questo e' un piccolo problema che assieme a gabriva stiamo tentando

di risolvere. plcforum non puo' fare azione di vendita quindi non li potra' fornire .

per alcuni , come gia' detto , posso risolvere mandando uno stampato (al prezzo del costo) della

campionatura , poi si vedra'.

saranno forniti i disegni per poter fare gli stampati .

ciao

dario

Edited by Dario Valeri
Posted

Sono d'accordo anch'io sulla realizzazione di un'interfaccia con lo scada che stiamo realizzando.

Posted

ciao

spero di essere utile..

su internet ho trovato

i codici sorgenti in C del protocollo modbus sia come master (livio)

sia come slave (dario) lo potete scaricare da qui

http://www.plcforum.it/upload/modbus.zip

dove c'e' anche il sito a cui faccio riferimento ..

mi pare abbastanza interessante perche' credo che da una analisi

del codice il tutto si possa trasferire in una ocx o meglio

controllo utente per il vb ....

purtroppo come codice sorgente di modbus per vb

non ho trovato nulla ...

date anche una occhiata a questo link

http://www.control.com/1026179808/index_html

che riguarda il lato del plc..

Posted

pero' una piccola critica verso gli amministratori

del sito ....

ho perso una oretta per capire come inserire il link

per il download...

non si poteva fare una cosa piu' alla femminile?

Posted (edited)

ciao

luciano , no problem, avevi dato tutte le informazioni per poterlo scaricare.

ok ora sono alle prese con una routin che mi converta da binario a bcd (che mi converta un numero decimale a 5 cifre)

nonostante sulla scheda ci siano 4 dislpay la routin converte tutte e 5 le cifre.

per fare questa routin ed agevolare la comprensione non ho usato istruzioni dedicate

eccola qui:

/* routin di conversione binario ---> bcd  by dario
usata per la visualizzazione dei dati sul dislpay, da notare che 
per effettuare la conversione non ho usato istruzioni dedicate 
ma bensi' un metodo molto vecchio ma che consente anche ai meno esperti 
di capire come funziona e cosa e'*/

void binbcd (long val_bin)
{
int a;
int b;

a = val_bin/10000;        /*dividendo il numero da convertire per 10000 trovo la prima cifra a sinistra*/
demil = a;               /*la variabile demil cioe' decinedimigliaia contiene il valore della cifra 1*/
if (a!=0){                /* se non zero*/
b=a*10000;               /*lo rimoltiplico per 10000*/
val_bin = val_bin-b;      /*per poi sottrarre dal numero originale la cifra del "diecimila"*/
}
a = val_bin/1000;        /*dividendo cio' che rimane in val_bin per 1000 trovo la seconda cifra*/
mill = a;                /*ora la variabile mill cioe' migliaia contiene il valore della cifra 2*/
if (a!=0){               /* se non zero*/
b=a*1000;                /*lo rimoltiplico per 1000*/
val_bin=val_bin-b;       /*per poi sottrarre da val_bin*/
}
a = val_bin/100;         /*dividendo cio' che rimane in val_bin per 100 trovo la terza cifra*/
centi = a;
if (a!=0){
b=a*100;
val_bin=val_bin-b;
}
a = val_bin/10;           /*dividendo cio' che rimane in val_bin per 10 trovo la quarta cifra*/
deci = a;
if (a!=0){
b=a*10;
val_bin=val_bin-b;
}
a = val_bin;             /*cio' che rimane e' l'ultima cifra*/
uni = a;
/*fine conversione da binario a bcd*/

}

dopo di che i numeri vengono ancora trattati per essere convertiti i 7segmenti

e solo allora una routin che gira sotto interrupt timer a 2 millisecondi

scrive sui display

ciao

dario

Edited by Dario Valeri
Posted

Mi scuso se magari la risposta è presente in qualche link che avete già dato e che io non ho ancora clikkato (pigrissimo). Volevo sapere se c'è un' indicazione di prezzo sul micro e sul sistema di sviluppo con indirizzi di dove si possono trovare. Grazie.

Posted (edited)

ciao

il sistema di sviluppo e' proprio cio' che abbiamo realizzato!

assieme agli amministratori stiamo cercando un mezzo per poter

far avere lo stampato o lo stampato con il micro gia' saldato

a chi fosse interessato.

comunque il prezzo del solo micro ,(e' un 100 pin) presso distrelect

e' di euro 28 .

io da parte mia ho fatto fare una campionatura di 10 stampati

parte dei quali non "ha padrone".

quindi per chi fosse interessato comunichi con Gabriele Riva.

Gli interessati comunichino anche la loro dimestichezza con l'elettronica

(per il montaggio dei componenti)

piu' su ,ho messo dei link da dove poter scaricare il software

demo di programmazione e i data sheet dei componenti.

concludo comunicando che ho quasi finito la stesura del software

"di sistema" cioe' quella parte di software che viene usato

all'interno della scheda.(rimane da fare le seriali)

ciao

dario

Edited by Dario Valeri
Posted

ciao

a tutti

sto montando il prototipo e nei prossimi giorni

provero' il software fatto finora.

poi mettero on line tutto il disponibile.

ciao

dario

  • 2 weeks later...
Posted

:lol: Per il protocolo MODBUS io uso la dll di Ricardo Saat che si può trovare qui :

http://www.speff.com/ , non sò se può aiutare ma è freeware

Ho anche programmato le prime 6 Funzioni MODBUS in un PIC 16f876 con l'assembler

Posted

ciao Steven gia' usi questa dll?

la usi con vb6? per quali prodotti la usi?

ciao e benvenuto tra noi

Posted

:P Ciao

Questa dll la uso con VB6 e a me funziona bene, noi usiamo il sistema

di building automation della INTEREL di Bolzano http://www.interel.it/ital/framesbuilding.htm

è un sistema che usa modbus per la comunicazione con l'unità centrale.

Poi sto sperimentando (sono comunque a buon punto) un protocolo Modbus in un Pic16f876.

Posted

ciao

vorrei aggiornare chi legge sullo stato delle cose:

ho finito completamente la routin di lettura e scrittura su eeprom 24c02

ho attivato (tramita interrupt) la seconda uart dato che la prima e' usata dal debugger

fintantoche' si e' in fase di debugghing( poi rimane libera anchessa).

display , led , e pulsanti gia' funzionavano.

purtroppo c'e' una piccola dimenticanza sullo stampato .. cioe' 2 resistenze di pullup su sda ed scl

(i pullup interni del micro funzionano solo se le porte sono settate in input)

ora sto facendo un piccolo protocollo (di 5 o 6 istruzioni) per poter colloquiare

con la scheda attraverso la uart 2.

questo e' un esempio:

// comandi     "WD0 , int"  = WRITE DISPLAY  , intero
//  scrive un numero sul dislpay
//             "WP0 , port,int" WRITE PORT , port , valore intero
//  scrive un port di uscita o interno
//             "RP0 , port"  READ PORT , port
// legge un port di ingresso o interno.

/* protocollo =  "[at]"+lenght+comandi+"~"
esempio per scrivere un port "[at],9,W,P,0,F,F,F,F,f,f,~"
in quest'esempio si scrivera' il valore ff nella locazione FFFF*/

alla prossima

ciao

dario

Posted

Un saluto a tutti,sono appena entrato a far parte della famiglia e questo progetto mi ha entusiasmato,sono ormai 7 anni che non lavoro più con l'hardware in quanto sono stato dirottato a programmare software per PLC comunque spero di seguirvi e magari di rendermi utiile. Anche io sono interessato ad avere se possibile la scheda,

intanto inizio a perlustrare la ducumentazione ed il software da voi segnalato. Ciao! :rolleyes:

Dario Valeri
Posted

ciao

benvenuto fra noi

sto testando in casa la scheda che abbiamo fatto, e inoltre

sto costruendo il software di base per usare con semplicita' le cose che ci sono

a bordo scheda.

io in passato ho lavorato soppratutto con i processori texas , motorola, intel.

ma questi mi sebrano di gran lunga i migliori.

per quanto concerne le schede , aspettiamo che passio le feste . io ho in casa ancora

qualche stampato della campionatura.

sarebbe bello trovare un numero minimo di interessati per poter

comperare i mocro direttamente da grossista (il costo si dimezzerebbe).

ciao

p.s. iscriviti alla mailing list

dario

  • 2 weeks later...
Posted

Salve a tutti! Mi sono appena iscritto!

Il progetto mi interessa molto, e se è disponibile, mi piacerebbe avere lo stampato per il circuito del micro. O se è possibile farselo da solo il master del circuito. Io sono d'accordo per acquistare il materiale più caro in gruppo.

Non so come si svolga il lavoro all'interno di questo gruppo, qualcuno mi potrebbe spiegare un po' come funziona il lavoro?

Oltre al circuito stampato, di cosa ho bisogno per seguire le varie esperienze?

Ciao a tutti!

Posted

ciao

la realizzazione del circuito stampato in casa (artigianalmente ) e' quasi

impossibile .

ad ogni modo ho quasi finito la documentgazione (correggendo qualche piccolo errore)

per poter far far gli stampati da ditte specializzate.

ci sono (disponibili) alcuni stampati della campionatura, cioe' quelli che sto usando io

per testare il tutto.

come si lavora?? io ho lanciato delle idee su cosa sviluppare (hardware e software)

ed ogniuno con l'ausilio di documentazione pubblica, propria esperienza,fantasia , e con l'aiuto

degli altri puo' realizzare qualcosa ,anche se non fa parte delle proposte fatte da me, perche'

tutto fa bagaglio di esperienze , e in fondo per cominciare serve solo la scheda , un PC, un alimentatore 9 volt dc ed un cavo seriale ,non standard (grazie ad un mio errore , sob) .

poi puoi iniziare .

vorri pero' segnalare a tutti che NON e' una scuola ma semplicemente un modo per mettere

a disposizione dei mezzi per iniziare !! quindi non ci si aspetti dispense da studiare o cose di questo tipo.

ma invece ci si ricordi che nell'ambito di questo forum ed in particolare di questo progetto

la codivisione delle sperienze e del sapere e piu' che auspicabile (vorri dire obbligatoria

ma non vorri essere male interpretato)

ciao

a tutti

p.s.

ricordo a tutti che presto partira' la newsletter

dario

  • 3 weeks later...
Posted

Ciao a Tutti, :D

siccome il progetto mi interesserebbe, prima di partire volevo sapere quanto verrebbe a costere la realizzazione della scheda "starter kit" ( Stampato, MCU, e componeti vari ) ?

Ciao.


×
×
  • Create New...