Ho comprato questo integrato per utilizzare un display a sette segmenti e volevo un po di aiuto in quando ho fatto i collegamenti ma non funziona =( , allora voglio capire se sbaglio sul lato software, hardware o entrambi
I collegamenti li ho effettuati in questo modo:
Siccome non ho ancora arduino ma sto usando questa scheda e, essendo un po a digiuno di elettronica, volevo sapere se avevo fatto qualche errore nel fare i collegamenti
Io però credo che i problemi derivino molto dal codice perè ho provato a fare così
la mia scheda ha un registro da 32bit mappato 16 per il set e 16 per il reset dei corrispettivi pin
ad esempio setto 1 sul bit 10 della gpiof allora il pin 10 da uscita alta.
ho mappato
Pin 1 della porta F sul pin DS
Pin 9 della porta F sul pin SH_CP
Pin 10 della porta F sul pin ST_CP Pin di la
Pin 2 della porta F su MR
*/
GPIOF->BSRR |= 1<<26; //ST_CP=0
GPIOF->BSRR |= 1<<1; //DS metto 1 e poi 0
GPIOF->BSRR |= 1<<17;
GPIOF->BSRR |= 1<<10; //ST_CP=1
Conclusione?non succede nulla.....cosa sbaglio secondo voi?
Credo anche che quella sequenza che usi è errata, c'e' una certa logica da seguire per pilotare uno shift register (soprattutto un clock, dovresti vedere come usare SPI su quella scheda)
P.S. quale programma usi per programmare quella ST ?
In realtà, ho scritto perchè sono in attesa che mi arrivi arduino e siccome ho già un po di dimestichezza con la scheda della st volevo avere un supporto dal punto di vista "elettronico" su quello che vorrei fare.
Inoltre, realizzare questo con arduino è abbastanza semplice in quanto su internet si trovano guide su guide per usare uno shift register ma tutto con un approccio troppo di alto livello e pensavo che fosse interessante approcciare a basso livello (sopratutto se lo scopo è imparare)...
Detto questo ritornando al topic...
Premetto che io a livello pratico non ho familiarità con queste cose ed è questo il motivo per il quale scrivo qui. Riguardo i collegamenti integrato-display ci sono errori?Dal lato micro integrato invece devo impostare i pin in maniera tale che facciano le stesse cose che fanno quelle di arduino.
Il segnale che esce dal pin del clock di arduino a che frequenza va?
nid69ita:
Direi proprio quella è una STM32 della ST !!!
Credo anche che quella sequenza che usi è errata, c'e' una certa logica da seguire per pilotare uno Shift register (soprattutto un clock, dovresti vedere come usare SPI su quella scheda) https://www.youtube.com/watch?v=4NlSIgoP4KM
Le leggerò perché da quando ho potuto dedurre questo integrato vuole oltre alla comunicazione seriale che dovrei implementare usando lo SPI (devo ancora prenderci familiarità con questo purtroppo) anche un clock che dovrei implementare con un timer (su questo non avrei problemi).
nid69ita:
P.S. quale programma usi per programmare quella ST ?
B-jo:
Le leggerò perché da quando ho potuto dedurre questo integrato vuole oltre alla comunicazione seriale che dovrei implementare usando lo SPI (devo ancora prenderci familiarità con questo purtroppo) anche un clock che dovrei implementare con un timer (su questo non avrei problemi).
No, lo SPI integra già un pin di clock.
MISO, MOSI, SCK e SS SS è il select, MISO e MOSI sono input e output. SCK=clock
B-jo:
In realtà, ho scritto perchè sono in attesa che mi arrivi arduino e siccome ho già un po di dimestichezza con la scheda della st volevo avere un supporto dal punto di vista "elettronico" su quello che vorrei fare.
Inoltre, realizzare questo con arduino è abbastanza semplice in quanto su internet si trovano guide su guide per usare uno shift register ma tutto con un approccio troppo di alto livello e pensavo che fosse interessante approcciare a basso livello (sopratutto se lo scopo è imparare)...
Beh anche con Arduino puoi imparare: ci sono un sacco di guide in giro per usarlo con Atmel Studio tramite il suo bootloader. Basta andare con calma e imparare a leggere i datasheets.
PS: posso chiederti come mai, essendo solo agli inizi se ho capito bene, hai già un bestione come l'STM32?
eh effettivamente sembrerà paradossale ma sto preparando un esame in cui bisogna imparare a programmare questa scheda.
Per me che sono a digiuno di queste cose e non avendo mai toccato un microcontrollore è veramente una mazzata.
Però fortunatamente sto prendendo confidenza con la scheda e ora ho imparato almeno a fare le cose base (mi manca lo SPI soltanto) se vogliamo vedere il bicchiere mezzo pieno posso dire che se non era per questo esame magari non mi sarei mai impegnato come sto facendo ora a comprendere queste cose anche perchè sto scoprendo man mano che mi piace tantissimo programmarla e fare tante cose tra cui il display a sette segmenti che è più un mio sfizio per poter visualizzare i risultati che ottengo nelle varie prove xD
Credo che i collegamenti siano fatti bene in quanto i pin dell'integrato li ho collegati rispettivamente a
-Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7 ai segmenti del display opportunamente preceduti da delle resistenze da 220ohm
i pin centrali del display li ho messi a massa.
-il pin 8 dell'integrato l'ho messo a massa il pin 16 l'ho collegato all'uscita da 5 V della scheda
-ho messo i pin13(OE) e il pin10(MR) a massa
-ho collegato i pin14(DS) pin12(STCP) e pin11(SHCP)
Allora adesso devo gestire il pin14(DS) per la comunicazione seriale, pin12(ST_CP) per il clock e il pin11(SH_CP) per terminale la comunicazione.
In questo discorso che ho fatto evidentemente c'è qualcosa che non va o che non ho capito bene perché ho creato una funzione che mi fa da clock accendendo e spegnendo il pin12 con l'ausilio di un timer fornito dalla scheda, immetto i dati tramite il pin14 e poi setto ad un uscita alta il pin11.
Ho fatto fuzionare un paio di 7 segmenti con quell'integrato.
Ti dispiace postare uno schema elettrico? Così non capisco.
Riguardo la configurazione dei registri sull'ST non so dirti, non l'ho ancora studiato quel micro. Però ti consiglio prima di pilotare le porte "a mano" settando brutalmente i pin con i ritardi giusti senza l'ausilio di hw interno. Così subito sei sicuro se i collegamenti sono corretti.
Vediti e capisciti anche i timing di un protocollo SPI.
thexeno:
Però ti consiglio prima di pilotare le porte "a mano" settando brutalmente i pin con i ritardi giusti senza l'ausilio di hw interno. Così subito sei sicuro se i collegamenti sono corretti.
Si infatti hai perfettamente ragione cosi almeno eliminiamo già dei possibili malfunzionamenti
Vediti e capisciti anche i timing di un protocollo SPI.
Eh devo un po vedere perchè mi sono illuso che potesse funzionare dandogli un clock continuo e facendo un immissione di dati seriale...
Purtroppo non so usare l'SPI della mia scheda un po complesso per me
Per schematico intendevo dire schematico (stile vedi allegato)
Comunque per un circuito semplice tipo questo si capisce (ti consiglio di imparare ad usare Eagle, o meglio FidoCad! se hai Java installato. Non devi imparare nulla o quasi per usarlo ed è utilissimo nei forum perché se posti il testo generato diventa editabile facilmente Find out more about FidoCadJ | SourceForge.net)
Il clock va fatto funzionare per un numero ESATTO e precalcolato di clock. Pena shiftare via i dati che ti serve mandare in output. Fidati, con Google il protocollo te lo impari in frettissima e puoi "emularlo" a mano come dicevamo. Comincerei da wikipedia. Poi puoi provare ad usare l'hw interno e se hai Arduino usi le librerie che ti hanno consigliato che fanno il lavoro sporco al posto tuo (se non hai voglia di imparare come funziona l'SPI.. ma per quella scheda non hai alternative, ma una volta imparato non lo dimentichi più)
Se programmare i moduli USB 1.1/2.0 è un bagno di sangue, l'SPI è una goccina di sudore
PS: se è per un esame poi, soddisfazione a parte, imparare a leggere il suo datasheet (che equivale a saper usare il micro) non può far altro che bene.
thexeno:
Per schematico intendevo dire schematico (stile vedi allegato)
Comunque per un circuito semplice tipo questo si capisce (ti consiglio di imparare ad usare Eagle, o meglio FidoCad! se hai Java installato. Non devi imparare nulla o quasi per usarlo ed è utilissimo nei forum perché se posti il testo generato diventa editabile facilmente Find out more about FidoCadJ | SourceForge.net)
Io lo usato già in un altro forum ma in realtà non avevo capito che volessi uno schema con fidocad
Il clock va fatto funzionare per un numero ESATTO e precalcolato di clock. Pena shiftare via i dati che ti serve mandare in output. Fidati, con Google il protocollo te lo impari in frettissima e puoi "emularlo" a mano come dicevamo. Comincerei da wikipedia. Poi puoi provare ad usare l'hw interno e se hai Arduino usi le librerie che ti hanno consigliato che fanno il lavoro sporco al posto tuo (se non hai voglia di imparare come funziona l'SPI.. ma per quella scheda non hai alternative, ma una volta imparato non lo dimentichi più)
Se programmare i moduli USB 1.1/2.0 è un bagno di sangue, l'SPI è una goccina di sudore
Eh immagino xD...Io ho parlato con il mio professore e mi ha consigliato di implementarlo a mano perchè l'spi del micro ha una particolare condizione di funzionamento (se non mi sbaglio con qualcosa legato al clock)
PS: se è per un esame poi, soddisfazione a parte, imparare a leggere il suo datasheet (che equivale a saper usare il micro) non può far altro che bene.
In realtà lo devo imparare e diciamo che pian piano lo sto cercando di assimilare bene.
(apro una piccola parentesi...Purtroppo la cosa difficile è trovare le varie porte da configuarare sul quale ci devo perdere un po la testa xD)
Sono mesi che sto giocando con un PIC18F47J53, e all'inizio ho perso giorni attaccato al datasheet senza scrivere codice. E' anche il mio primo PIC, per cui mondo nuovo o quasi. Ancora più tempo avevo perso sull'Atmega328P perché anche se più semplice, era il primo datasheet serio che leggevo. Quindi, capisco il muro che ti pare di avere di fronte.
PS-OT: è una cosa per l'università? Posso chiedere se è un politecnico?
Il problema è che ho 4 manuali su cui cercare informazioni e fortunatamente il 80% delle cose sta su quello principale il restante è sparso....comunque nonostante ciò mi piace molto questa cosa che sto facendo quindi lo faccio veramente con passione
PS-OT: è una cosa per l'università? Posso chiedere se è un politecnico?
Devo sostenere lo scritto di questo esame che prevede l'uso di un po di cose di questa scheda (prima si usava il pic).
E' la triennale di ingegneria
Ps Se ti riferivi a questa cosa del display, è una cosa aggiuntiva che vorrei realizzare io per mia soddisfazione in quanto mi sta piacendo molto programmare con questa scheda (anche se i miei amici mi dicono che sto perdendo tempo xDxD)
Ah dimenticavo, io sono riuscito a farlo funzionare il display sulla scheda pilotando ogni segmento con una porta però poi mi volevo spingere oltre facendo questa cosa con l'integrato (tra l'altro volevo anche creare delle librerie per poter utilizzare il display a sette segmenti nei vari programmi che andrò a fare)