Sostieni il forum con una donazione! Il tuo contributo ci aiuterà a rimanere online!
Immagine

Re:varie riguardo PIC

Tutto ciò che riguarda l'elettronica digitale, dalla porta not al protocollo midi... e oltre!
Avatar utente
Dimitree
Diyer Esperto
Diyer Esperto
Messaggi: 425
Iscritto il: 01/09/2006, 23:56

Re:varie riguardo PIC

Messaggio da Dimitree » 26/11/2009, 16:31

ma in caso di errori di trasmissione cosa si fa? non mi pare che il midi preveda delle conferme di avvenuta trasmissione o cose simili..quindi al massimo si può ignorare il byte danneggiato..ma il messaggio viene perso però, e non viene ritrasmesso! possibile sia così?

Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

Re:varie riguardo PIC

Messaggio da davidefender » 26/11/2009, 18:49

si esatto!

si fonda praticamente sul fatto che la probabilità di un bit errato in un filo così corto è pressochè zero. Anzi se non sbaglio il protocollo MIDI non usa neppure il bit di parità, un byte errato viene interpretato come byte qualunque!

se ti volevo dire "carica la patch 13" ma ti è arrivato "carica la patch 12".... ciccia!  :face_green:
:ciao:
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)

giordy72
Neutrino
Neutrino
Messaggi: 17
Iscritto il: 18/07/2009, 23:14

Re:varie riguardo PIC

Messaggio da giordy72 » 26/11/2009, 20:48

'Main:
bsf PORTA,2
bsf PORTA,3
call Delay
bcf PORTA,2
bcf PORTA,3
call Delay
goto Main

e se ne accende-lampeggia solo 1, mentre l'altro non da segni. Se però li alterno lampeggiano tutti e due, come detto prima..
cosa sbaglio?'

Premetto che non conosco i PIC (uso atmel e altri) ma nel codice che hai scritto i led non lampeggiano perchè li setti uno dopo l'altro. Dovresti fare 'PORTA & 0b0001100' ma non conoscendo l'assembler del pic (e i pic) non posso aiutarti oltre :-( La stessa cosa comunque varrebbe anche se la scrivi in c.

Avatar utente
Dimitree
Diyer Esperto
Diyer Esperto
Messaggi: 425
Iscritto il: 01/09/2006, 23:56

Re:varie riguardo PIC

Messaggio da Dimitree » 27/11/2009, 2:14

si grazie giordy è vero, l'istruzione va messa come unica..infatti in C mi funziona..

comunque, oggi sono passato all'harware dell'ingresso Midi, ho costruito la parte con l'opto-isolatore..
L'ho collegato alla porta RX del mio pic, e ho notato che da sempre circa 5V..e in effetti guardando lo schema il pin 6 dell 6N138 è collegato ai 5V tramite una resistenza da 1K.. Ma allora mi chiedo, come fa a leggere il messaggio il pic se si vede sempre questi 5V? ho sbagliato qualcosa?

Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

Re:varie riguardo PIC

Messaggio da davidefender » 27/11/2009, 10:33

no è giusto, significa che in condizioni di riposo (nessun messaggio) il livello è alto, quando arriverà uno zero il PIC leggera in effetti un valore basso! grazie proprio alla resistenza da 1k che la "separa" dai 5 volt.

Quella resistenza viene chiamata apposta di pull-up, simile a quella di pull-down, fissa il valore di un ingresso ad un valore logico predefinito (in un caso i 5 volt, nell'altro massa) in maniera che in una situazione di indeterminazione (cavo staccato) l'ingresso non cominci ad oscillare!

:ciao:
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)

Avatar utente
Dimitree
Diyer Esperto
Diyer Esperto
Messaggi: 425
Iscritto il: 01/09/2006, 23:56

Re:varie riguardo PIC

Messaggio da Dimitree » 27/11/2009, 15:03

bene grazie mille! ma come le sai queste cose?? :lol1:  c'è un documento sulle specifiche hardware del protocollo? non riesco proprio a trovarlo..
ho provato a testare il voltaggio sul connettore midi out, quando mando un messaggio midi dal pc a questo midi out il voltaggio (negativo) aumenta di 0,2V, sul pin 4 del midi.. mentre non vedo differenze sul pin 6 di uscita del foto-isolatore..è sempre sui 5V..
ma questa cosa che in riposo c'è livello alto il pic lo sa già oppure bisogna settarlo appositamente anche per questo?

Avatar utente
luix
Amministratore
Amministratore
Messaggi: 3422
Iscritto il: 06/05/2006, 14:26

Re:varie riguardo PIC

Messaggio da luix » 27/11/2009, 15:13

Se lo misuri col multimetro non vedi niente, devi metterci un oscilloscopio che abbia una banda superiore ai 30kHz del midi... il multimetro fa tre letture al secondo, quello con un secondo fa trenta mila oscillazioni!!!!
MEMENTO trimmer Humdinger :lol1:

Avatar utente
luix
Amministratore
Amministratore
Messaggi: 3422
Iscritto il: 06/05/2006, 14:26

Re:varie riguardo PIC

Messaggio da luix » 27/11/2009, 15:14

CMQ grazie delle info sui pic davide!!! A breve (qualche mese) sicuramente farò una tesi che riguarda qualcosa in cui c'è un microcontrollore! quindi ti massacrerò di domande §:-)
MEMENTO trimmer Humdinger :lol1:

Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

Re:varie riguardo PIC

Messaggio da davidefender » 27/11/2009, 15:17

Dimitree ha scritto: bene grazie mille! ma come le sai queste cose?? :lol1:  c'è un documento sulle specifiche hardware del protocollo? non riesco proprio a trovarlo..
il mondo è pieno di possibilità per chi sa trovarle: http://en.wikipedia.org/wiki/UART  :lol1:
Dimitree ha scritto: ma questa cosa che in riposo c'è livello alto il pic lo sa già oppure bisogna settarlo appositamente anche per questo?
non solo lo "sa" ma non può essere altrimenti! è infatti specifica dello standard USART.. come SICURAMENTE ricorderai ( :mang:) dopo aver letto il mio documento in sticky "MIDI e USART" ogni pacchetto all'interno del canale dati è delimitato dal bit di start e di end; se leggi il documento che ti ho or ora linkato, nella sezione "Asynchronous receiving and transmitting", leggerai che il bit di start è SEMPRE a 0 ovvero valore elettrico basso.

Tutto torna: se la linea è idle ci sono 5 volt, appena si sente la linea andare a 0V sta per cominciare un pacchetto!  :face_green:

ciaoo!  :ciao:
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)

Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

Re:varie riguardo PIC

Messaggio da davidefender » 27/11/2009, 15:20

luix ha scritto: CMQ grazie delle info sui pic davide!!! A breve (qualche mese) sicuramente farò una tesi che riguarda qualcosa in cui c'è un microcontrollore! quindi ti massacrerò di domande §:-)
ooooo  :what: :what:  eheheh sono davvero onorato! non elargisci complimenti spesso...  :yrock: :yrock:

grazie grazie!  :lol1: :lol1: !!  :ciao:
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)

Avatar utente
luix
Amministratore
Amministratore
Messaggi: 3422
Iscritto il: 06/05/2006, 14:26

Re:varie riguardo PIC

Messaggio da luix » 27/11/2009, 15:52

davidefender ha scritto: non elargisci complimenti spesso... 
Di sicuro non a vanvera  :fonz:
MEMENTO trimmer Humdinger :lol1:

Avatar utente
Dimitree
Diyer Esperto
Diyer Esperto
Messaggi: 425
Iscritto il: 01/09/2006, 23:56

Re:varie riguardo PIC

Messaggio da Dimitree » 27/11/2009, 18:57

grazie!

quindi dove e come potrei mettere un led che mi segnala che arrivano bytes dal midi? a prescindere dal pic..

Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

Re:varie riguardo PIC

Messaggio da davidefender » 27/11/2009, 19:25

basterebbe metter un led collegato con il CATODO (e non con l'anodo) sul pin di ingresso del PIC, e sull'ANODO una resistenza connessa a 5Volt, così quando la linea non è più idle (bit 0) il led dovrebbe lampeggiare.. l'unico problema è la frequenza forse comunque eccessiva, fai una prova ma attento!  :alt1: nel circuito del led fai passare poche milliampere, diciamo 3 o al massimo 5 (controlla il datasheet dell'optoisolatore per controllare quanta corrente al massimo può erogare).

Altrimenti potresti fare in modo che quando un dato è presente nella coda UART, fai fare un lampeggio ad un LED in una porta di output, ancora più semplice!  :lol1:

:ciao:
Ultima modifica di davidefender il 27/11/2009, 19:27, modificato 1 volta in totale.
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)

Avatar utente
Dimitree
Diyer Esperto
Diyer Esperto
Messaggi: 425
Iscritto il: 01/09/2006, 23:56

Re:varie riguardo PIC

Messaggio da Dimitree » 27/11/2009, 20:20

no il secondo metodo non posso usarlo perchè il led lo volevo proprio per vedere se passa qualcosa dal cavo midi fino all'uscita dell optoisolatore..
comunque, altra domandina..devo abilitare per forza Global Interrupt per far si chè funzioni l'interrupt dell'usart? oppure mi basta attivare il bit RCIE del registro PIE1 (è il bit di attivazione interrupt) ?

Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

Re:varie riguardo PIC

Messaggio da davidefender » 28/11/2009, 14:26

mm a quanto capisco hai dei problemi con la USART giusto?
guarda nello specifico ovviamente non so quali siano o meno i registri da abilitare con la serie PIC, io uso gli ATMEL quindi non ho esperienza diretta, cmq è facile, con il led vedi se per caso passa il segnale MIDI, poi al massimo puoi abilitarli tutti gli interrupt così non ti sbagli!  :face_green: il primo passo è farlo funzionare, poi man mano capisci togliendo cosa, non funziona più!

Del resto, puoi anche disabilitare tutti gli interrupt e eseguire una seguenza di polling con la quale controlli che il buffer della USART sia vuoto o meno, è più semplice e a meno rischio di errori di programmazione! Fammi sapere come è andata!

:ciao:
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)

Rispondi