Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

DA CMOS A PIC

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] DA CMOS A PIC

Messaggioda Foto UtenteTHERA » 17 mag 2006, 13:14

:cry: SALVE A TUTTI,MI FAREBBE PIACERE REALIZZARE CON PIC
UN APPARATO DA ME REALIZZATO IN CMOS SERIE 4000
E COSTITUITO DA BEN 8 INTEGRATI-
C'E' UN SANTO CHE MI PUO' AIUTARE-
Avatar utente
Foto UtenteTHERA
0 2
 
Messaggi: 17
Iscritto il: 17 mag 2006, 13:08

1
voti

[2]

Messaggioda Foto UtentePaolino » 17 mag 2006, 13:34

Ci possiamo provare; prova a descrivere il circuito o meglio a mostrarne lo schema elettrico. :wink:
Paolo.
Avatar utente
Foto UtentePaolino
32,5k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4220
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[3] DA CMOS A PIC

Messaggioda Foto UtenteTHERA » 17 mag 2006, 13:44

GRAZIE PAOLINO,IN SOSTANZA SI TRATTA DI UN GENERATORE ONDE QUADRE CON POSSIBILITA' DI SELEZIONARE 6 FREQUENZE FISSE
INTORNO AI 100 Hz,E LAPOSSIBILITA' DI FARLE EMETTERE IN
SEQUENZA IN AUTOMATICO,PIU' O MENO E' COSI',AD OGNI EMISSIN
SI ACCENDE IL RISPETTIVO LED
Avatar utente
Foto UtenteTHERA
0 2
 
Messaggi: 17
Iscritto il: 17 mag 2006, 13:08

1
voti

[4]

Messaggioda Foto UtentePaolino » 17 mag 2006, 16:56

IN SOSTANZA SI TRATTA DI UN GENERATORE ONDE QUADRE CON POSSIBILITA' DI SELEZIONARE 6 FREQUENZE FISSE INTORNO AI 100 Hz
Intendi che da un solo pin vuoi far uscire, a scelta, una delle 6 frequenze?

E LAPOSSIBILITA' DI FARLE EMETTERE IN SEQUENZA IN AUTOMATICO
Questo punto devi spiegarlo meglio...

AD OGNI EMISSIN SI ACCENDE IL RISPETTIVO LED
Quindi un LED per ogni frequenza in uscita. Ok, questo non rappresenta un problema. Domanda: la scelta delle frequenze è a priori e FISSA nel programma o devi poterle variare?

Paolo.
Avatar utente
Foto UtentePaolino
32,5k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4220
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[5] CMOS PIC

Messaggioda Foto UtenteTHERA » 17 mag 2006, 17:30

PER PAOLINO:riepilogo
una volta alimentato il micro,l'apparato non emette nulla e si accende un led STAND BY,PREMENDO IL TASTO SELEZIONE,POSSIAMO SSELEZIONARE 6 FREQUENZE FISSE NON MODIFICABILI E CIOE':
6,25-12,50-25-50-75-100 Hz SELEZIONABILI UNA PER VOLTA,ALLA
RISPETTIVA FREQUENZA CORRISPONDE UN LED-
ALLA SETTIMA PRESSIONE DEL TASTO" SELEZIONE,ANDIAMO NUOVAMENTE IN STBY,ALL'OTTAVA PRESSIONE L'APPARATO
ESEGUE UNA COMMUTAZIONE AUTOMATICA DELLE 6 FREQUENZE,FINO A QUANDO SI PREME NUOVAMENTE IL TASTO SEL.CHE CI PORTA IN STBY,E AD UNA PRESSIONE SUCCESSIVA IN MANUALE-NEL FUNZIONAMENTO AUTOMATICO SI ACCENDE UN LED PER INDICARCI QUESTO STATO,E ANCHE IN SQUENZA I SEI LED DELLE FREQUENZE-
QUANDO SI PASSA IN STBY IL CONTATORE DEVE RESETTARE IN MODO
CHE PREMENDO SEL SI INIZI SEMPRE DA 6,25 HZ-
IN PIU' LA SELEZIONE DEL DUTY CYCLE A 14% 27% 40% tramite selettore a 3 posizioni- il tutto dura fino a quando e' alimentato,all'atto dell'accensione si predispone in stby(relativo led acceso)
Avatar utente
Foto UtenteTHERA
0 2
 
Messaggi: 17
Iscritto il: 17 mag 2006, 13:08

0
voti

[6]

Messaggioda Foto Utenteaduri » 18 mag 2006, 12:52

A mio parere e' consigliabile utilizzare la funzione PWM presente in parecchi PIC (ad es. 16f628A).
Ti posso listare un accenno di listato in miKrobasic (c'e' il compilatore free in rete),tratto da un esempio
di una nota rivista, per la gestione del PWM, variando il duty cycle:

Codice: Seleziona tutto
program duty_cycle

dim duty as byte
dim k as byte 
dim t_on as byte
dim t_off as byte


main:

portb=0       'Azzera portb
trisb=%11110000      'Definisce PORTB 4 ingressi e 4 uscite
t_on=0
t_on=100      'uscita off

while true
   'duty cycle 14%


   if portb.4=1 then    'Se premo pulsante 1
      t_on=14
      t_on=86
   end if

   'duty cycle 27%


   if portb.5=1 then    'Se premo pulsante 2
      t_on=27
      t_on=73
   end if
   'a questi punti gestisci dei cicli simili ai
   '2 precedenti con duty cycle diversi a tuo piacimento

'gestione PWM

portb.0=1       'attiva uscita
   for k=1 to t_on
      delay_us(1)      
   next k
      portb.0=0'disattiva
   for k=1 to t_off
      delay_us(1)      
   next k
wend
end.



N.B. non l'ho testato ma penso che dovrebbe funzionare, chiaramente con i dovuti adattamenti.
Il circuito HW sara' composto da 2 o piu' pulsanti collegati (in questa configurazione) da RB4 a RB7 e l'uscita
del segnale da RB0.
Ricordati di collegare delle resistenze di pull-down tra pulsanti e massa ed il comune dei pulsanti al +5V.

Ti consiglio di studiarti i data sheet dei PIC prima di procedere.

Ti chiedo solo una cosa.
Una volta che hai completato il progetto, se e' andato a buon fine,
rendi partecipe il forum del tuo successo e nello spirito del forum
condividi il tuo lavoro.
Avatar utente
Foto Utenteaduri
425 1 5 10
Expert
Expert
 
Messaggi: 860
Iscritto il: 29 giu 2005, 23:13
Località: Genova

1
voti

[7]

Messaggioda Foto UtentePaolino » 18 mag 2006, 12:55

Mi sono preso qualche tempo per pensarci su e per darti alcune risposte su come potresti procedere.
Prima idea.
Viste le specifiche del tuo progetto, sembra interessante poter sfruttare il modulo hardware PWM che molti PIC hanno al proprio interno. Visto che il conteggio del pin-out sembra farevole (in funzione del numero di I/O impiegati), ti suggerisco di vagliare l'ipotesi di un PIC16F819. Per ottenere delle frequenze così basse con il PWM hardware, è necessario collegare al PIC un quarzo con frequenza bassa, diciamo 32768 Hz. Così facendo, se non ho sbagliato i conti, riesci a regolare tutte e 6 le frequenze in uscita (da 6.25 Hz a 100 Hz) con duty-cycle al 50%. E qui viene il il bello della regolazione del duty-cycle. Stando al datasheet, mi sembra che i valori che richiedi siano ottenibili senza troppi problemi.

Seconda idea
Con un quarzo da 32768 MHz il PIC funziona, ma certamente non come se avesse un quarzo da 4 MHz o da 20 MHz... Se preferisci usare un quarzo con frequenze maggiori da 32768 Hz, puoi pensare di affrontare nuovamente il progetto come illustrato precedentemente (cioè con il modulo PWM integrato) e di generare frequenze con valori di 10 o di 100 volte superiori a quelli che suggerisci e poi di applicare un divisore (per 10 o per 100) all'uscita del PIC.

Terza idea
La cosa più laboriosa a livello software è quella di generarsi autonomamente le frequenze con il relativo duty-cycle, ma questo richiede l'uso dei TIMER e una buona dose di conoscenza della programmazione. In questo caso, dato che le frequenze non sono critiche, un codice scritto in C può alleviare il fastidio dell'assembly. Un vantaggio c'è: puoi usare un PIC senza il modulo PWM integrato e risparmiare qualche centesimo di Euro... Se hai in casa un PIC16F84A può andar bene allo scopo, anche con un quarzo da 4MHz.

Ciao.

Paolo.
Avatar utente
Foto UtentePaolino
32,5k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4220
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

1
voti

[8]

Messaggioda Foto UtentePaolino » 18 mag 2006, 12:57

Mentre scrivevo la mia risposta, ti ha fornito un contributo anche Aduri e, come vedi, mi sembra proprio che siamo andati nella medesima direzione.
Paolo.
Avatar utente
Foto UtentePaolino
32,5k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4220
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[9]

Messaggioda Foto UtenteTHERA » 18 mag 2006, 13:14


TI RINGRAZIO,AVEVO PENSATO DI SVINCOLARE LA REGOLAZIONE
DEL DUTY CYCLE DAL MICRO,E INTERVENIRE SUL SEGNALE IN USCITA
CON UN NE 555 O CD4093 ECC-
QUINDI MI RIMARREBBE SOLO E DICI POCO LA GENERAZIONE DELLE
6 FREQUENZE E LO SWEEP
GRAZIE CIAO,COME FARE !!!!!!!!!!!!!!!!!!
Avatar utente
Foto UtenteTHERA
0 2
 
Messaggi: 17
Iscritto il: 17 mag 2006, 13:08

1
voti

[10]

Messaggioda Foto UtentePaolino » 18 mag 2006, 16:07

TI RINGRAZIO,AVEVO PENSATO DI SVINCOLARE LA REGOLAZIONE DEL DUTY CYCLE DAL MICRO,E INTERVENIRE SUL SEGNALE IN USCITA CON UN NE 555 O CD4093 ECC-

Mi devi spiegare come... Se svincoli la regolazione del duty-cycle dal micro (ossia dal generatore) non capisco come tu possa modificarne dall'esterno il valore. Hai uno schema?

QUINDI MI RIMARREBBE SOLO E DICI POCO LA GENERAZIONE DELLE 6 FREQUENZE E LO SWEEP GRAZIE CIAO,COME FARE !!!!!!!!!!!!!!!!!!

Per la generazione delle 6 frequenze, abbiamo risposto sia io sia aduri con in totale 4 possibilità diverse. Tra le mie 3 ipotesi ti posso indicare la numero 1 (c'è meno codice da scrivere e non devi sbatterti molto col C o l'assembly).
Avatar utente
Foto UtentePaolino
32,5k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4220
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

Prossimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti