I/O expander

12 Anni 11 Mesi fa #26 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: I/O expander
Ciao Fabio,

la corrispondenza dei bit sta nel fatto della possibilità di usare la modalita' d'interruzioni standard o quella a due livelli.
I dettagli li ho descritti nel Testo C18 Step by Step nel capitolo delle interruzioni.

Da quello che dici sembra che is_alarm_ON_RTCC stia funzionando, ovvero riesci a leggere il bit interno che segnala l'allarme ON.
Per la linea delle interruzioni ti consiglio di non usare le interruzioni del PIC, almeno per ora.
Fai semplicemente un polling sulla porta ovvero pin che imposti come ingresso. Controlla se prima dell'allarme vale 1 (dovuto al pull-up) e dopo l'allarme vale 0.
Dopo aver verificato il funzionamento puoi aggiungere le interruzioni al PIC. Altrimenti bisogna fare il debug sia sul PIC che sul RTCC e due cose da controllare e cercare di capire il problema, può risultare complicato.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 11 Mesi fa #27 da crosby
Risposta da crosby al topic Re: I/O expander
Ciao

Ti ringrazio per la risposta. Ad ogni modo hai ragione ho cercato mi mettere insieme più cose che non conosco bene ed alla fine mi è sfuggita la situazione di mano. Gli interrupt sono anche un terreno sul quale mi muovo non agevolmente. Ho fatto altre modifiche ma ancora l'interrupt non è sentito ma penso indipendentemente dal discorso RTCC in quanto ho provato a cortocircuitare RB2/INT2 a massa direttamente sul connettore EX1 ma niente. Cercherò in primo luogo di separare i problemi come mi suggerisci. Ti tengo informato

un saluto

fabio milano

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • crosby
  • Senior Member
  • Senior Member
Di più
12 Anni 11 Mesi fa #28 da crosby
Risposta da crosby al topic Re: I/O expander
Ciao

Ho seguito il tuo consiglio ed ho provato prima la libreria testando RB2/INT2 con un polling.
Funziona ok.
L'allarme viene impostato correttamente con set_minutes_alarm_RTCC, ho provato i vari casi: senza usare enable_alarm_interrupt_RTCC oppure usando il parametro Enable_OFF.
Quando scatta l'allarme mi accorgo perchè appare la X sul display e ci rimane fino a quando (premendo BT2) non vine resettata con is_alarm_ON_RTCC.
Come test ulteriore cortocircuito sul connettore EX1 RB2/INT2 verso massa anche appare la X.
Il jumper JP9 è in posizione 1-2 altrimenti - ho provato a toglierlo - non va e la X appare solo cortocircuitando RB2.
Questo immagino sia dovuto alle R di pull-up interne sulla porta B abililitate in quanto JP9 scollega anche la resistenza R4.
Quindi tutto ok, adesso voglio affrontare il discorso interrupt e sleep.
La cosa strana è questa.
Prima avevo provato a fare un programmino che legge da RB2 e scrive su LED1.
Il LED all'inizio è acceso quando faccio il cc (RB2 <=> ground) sulla EX1 si spegne il led.
Le resistenze di pull up interne sono state volutamente NON abilitate.
Il sorgente è nel secondo allegato, banale. Funzione con JP9 in posizione 1-2.
Ma se tolgo JP9 funziona lo stesso!
Ho guardato e riguardato lo schema elettrico ma non riesco a capire dove trova la tensione Vdd per tenere accesso il led se la resistenze di pullup R4 non c'è più?
Credo che mi sfugga qualcosa non penso di possedere una Freedom II magica!

un saluto

fabio Milano

P.S. la scheda PJ3007 non ho capito se la metterai in vendita?
Allegati:

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • crosby
  • Senior Member
  • Senior Member
Di più
12 Anni 11 Mesi fa #29 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: I/O expander
Ciao,

molto bene! :)
le cose prendono forma e stai pure testando la libreria!

L'anomalia che vedi discende dal fatto che hai a che fare con un ingresso libero.
I resistori di pull-up o pull-down hanno proprio lo scopo di poter vincolare un ingresso libero.
Un ingresso digitale non vincolato da nessun resitore di pull-up o pull-down può essere interpretato sia come 0 che come 1 ovvero e' indeterminato e dipende dal valore della tensione dell'ingresso stesso.
Considerando eventuali capacita' parassite (gate del MOS d'ingresso) e le correnti di leackage che possono caricare o scaricare tali capacita' ( a seconda che siano positive o negative), puoi avere 1 o 0.

La scheda PJ3007 sarà disponibile alla sezione servizi ma ho bisogno di un po' di tempo che attualmente mi sta mancando.
Purtroppo le prossime due settimane sono fuori e non so quanto potrò fare. Userò le notti in albergo per finire la documentazione e rivedere il nuovo articolo sugli MSP430.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 11 Mesi fa #30 da crosby
Risposta da crosby al topic Re: I/O expander
Ciao

grazie per la risposta.
Vado avanti l'obiettivo quello che mi ero messo in testa: mandare in sleep
il 4550 e svegliarlo con l'interrupt dal RTCC.

un saluto
fabio milano

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • crosby
  • Senior Member
  • Senior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login