Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC2

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC2

Messaggioda Foto Utentefloppinoo » 18 mag 2016, 10:20

Raga sto usando un PIC 16f628, volevo capire cosa succede sui piedini :
RA7/OSC1/CLkIN
RA6/OSC2/CLKOUT

quando imposto l'oscillatore interno o esterno.
Sto riutilizzando un codice in cui si usa un RFID 522, con comunicazione SPI full duplex, in pratica il progetto originale, imposta sul PIC l'oscillatore interno di 4 MHz. Inoltre nello schema circuitale del progetto, RFID 522 preleva da RA6, il clock necessario alla comunicazione spi (linea SCK), mi chiedevo se la stessa cosa succede se invece di usare l'oscillatore interno del PIC usassi un oscillatore esterno (con quarzo), naturalmente impostado tutto alla velocità di 4mhz?
IN pratica la domanda è questa se uso un oscillatore esterno (per aumentarne la precisione) , invece di quello interno del PIC , posso prelevare sempre su RA6 un segnale di clock utile di 4 MHz, per la comunicazione SPI ?

Inoltre nel progetto originale dove si usa il clock interno del PIC, la linea RA7/OSC1/CLkIN è usata come porta normale di reset del modulo RFID 522 (semplice porta di uscita, linea RST), mi chiedo se devo per caso sostituire quest’assegnazione con un'altra porta libera del PIC , nel caso dovessi modificare il progetto da oscillatore interno/esterno, in particolare giusto per capire, cosa succede in RA7 quando è impostato sul PIC oscillatore esterno invece di quello interno ?

spero di essere chiaro è un dubbio che non reiesco a chiarire per poter procedere con le modifiche :(
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

1
voti

[2] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto UtenteBrianz » 18 mag 2016, 10:42

Indipendentemente dal micro usato, che in questa circostanza non ha nessuna importanza, la regola è che i pin possono assumere solamente UNA funzione per volta.

Se li stai usando per la comunicazione seriale, non potranno certamente essere usati per l'oscillatore esterno e viceversa.
Nel momento in cui fissi nel config la funzione di oscillatore esterno, dovrebbe essere evidente che i pin relativi sono sottratti a qualsiasi altra funzione.
Se l'oscillatore è LP/XT/HS sia OSC1 che OSC2 sono impegnati in quello.
Se l' oscillatore è un External Clock IN solo OSC1 è impegnato e OSC2 o è GPIO o CLOCKOUT a seconda della scelta nel config.

In secondo luogo, il nonnetto 628 NON ha un modulo MSSP quindi NON esegue SPI se non come emulazione software, col che puoi dedicare alla cosa uno qualunque dei GPIO.

Per ultimo, anche se MFRC522 ammette SPI fino a 10MHz, non puoi usare il clock primario da 4MHz del PIC, dato che quello del ciclo di istruzione è FOSC/4....
Avatar utente
Foto UtenteBrianz
5.828 5 10
CRU - Account cancellato su Richiesta utente
 
Messaggi: 858
Iscritto il: 24 mar 2016, 11:27

0
voti

[3] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto Utentefloppinoo » 18 mag 2016, 10:59

Bho io sto seguendo questo progetto anche se in alcuni punti non è chiaro ... lo ametto

http://simplesoftmx.blogspot.it/2015/04/pic-16f628a-16f627a-lector-rfid-rc522.html

Ma sinceramente qui usa un clock da 4 MHz per piloatere rfid 5222, pero come dicevo usa
un clock interno, e usa il piedino RA6 come segnale di clock, invece io volevo usare uno oscillatore esterno, a sto punto non so come riuscirci. :(
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

2
voti

[4] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto UtentePaolino » 18 mag 2016, 11:59

floppino ha scritto:IN pratica la domanda è questa se uso un oscillatore esterno (per aumentarne la precisione) , invece di quello interno del PIC , posso prelevare sempre su RA6 un segnale di clock utile di 4 MHz, per la comunicazione SPI ?

La risposta è semplice: NO.

Mi spiego.

Se vuoi impiegare un quarzo esterno sei costretto a collegarlo alla coppia RA6/RA7, impedendo di fatto qualsiasi altro impiego di quei pin come I/O. La cosa è già stata indicata anche da Foto UtenteBrianz.

Infine: proprio per quello che diceva Foto UtenteBrianz, il PIC16F628A non avendo modulo MSSP hardware, ti costringe a realizzare una comunicazione SPI software. Puoi pertanto collegare un quarzo a RA6/RA7 e usare un altro PIN per la funzione SCK. Il codice del progetto che hai linkato va modificato, impostando ad esempio così:

Codice: Seleziona tutto
#define MFRC522_SCK PIN_B4 // Impiego pin B4 per la generazione del clock SPI


Dato che il progetto fa riferimento ad un header che non è pubblicato (rc522.h) ma che appartiene al compilatore CCS (la versione gratuita è installabile), dovrai verificare se puoi cambiare il pin (da A6 a B4).

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[5] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto Utentealev » 18 mag 2016, 12:30

Discussione spostata in Firmware e programmazione
Avatar utente
Foto Utentealev
5.990 2 9 12
free expert
 
Messaggi: 6282
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

1
voti

[6] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto UtenteBrianz » 18 mag 2016, 12:37

Che il progetto non sia chiaro è evidente.

Comunque hai per il momento in corso anche un altro casino. Vediamo di chiarire

RFID NON usa alcun clock a 4MHz. Dove vedi questo?
Per quanto ne so
INTRC_IO //Internal RC Osc, no CLKOUT
ovvero hai l'oscillatore interno e la funzione GPIO su OSC1/OSC2.
Per avere l'uscita clock su RA6 probabilmente sarà solo INTRC (non conosco CCS, ma avrà ben un manuale...)

Ma anche quando tu avessi il CLKOUT cosa te ne fai?
Stai parlando di SPI, ovvero di un protocollo seriale sincrono clock+dato, dove il clock è sincronizzato con i dati e non può essere altrimenti. Quindi il clock alla periferica lo crea il programma in sincronia con i dati in uscita e con la cattura dei dati in ingresso.
Quindi, NON hai nessun modo di usare il clock primario, dato che il ciclo interno di istruzioni è 1/4. Quindi, @4MHz, al massimo, si potrà parlare di 1MHz, ma neanche di quello, visto che la comunicazione emulata via software richiede l'esecuzione di diverse istruzioni per bit.
Chiaro?

Se, per qualche inspiegabile motivo vuoi un oscillatore esterno, sia anche EC, devi avere modo di variare l'assegnazione dei pin nel programma, se no, no se puede.
Avatar utente
Foto UtenteBrianz
5.828 5 10
CRU - Account cancellato su Richiesta utente
 
Messaggi: 858
Iscritto il: 24 mar 2016, 11:27

0
voti

[7] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto Utentefloppinoo » 18 mag 2016, 12:58

si in effetti l'emulazione SPI da come ho capito dal file rc522.h lo fa a livello sw ...
rc522.h --> https://drive.google.com/folderview?id= ... sp=sharing

penso che i 4mhz li imposti solo per permettere la comunicazione seriale a 9600 baund, per poter leggere la id della tessera, id ricavata dalle funzioni della libreria rc522.h (che appunto simula SPI a livello SW), e poi trasmetterle al PC il risultato con porta seriale usando i classici piedini rb1 RX rb2 TX, del 16f ...
Codice: Seleziona tutto
#FUSES INTRC_IO,NOWDT,NOBROWNOUT,NOLVP,PUT,NOMCLR;
#use delay(clock=4000000);
#use rs232(baud=9600,xmit=PIN_B2,rcv=PIN_B1,bits=8);



raga non mi chiedete troppo, sto cercando di capirci qualcosa quello è l'unico progetto che ho trovato che usa il PIC 16f..., quindi anche se il progetto usa il compilatore css mi dovro adattare e sbatterci su la testa, ||O tutti gli altri progetti usano arduino ma io voglio usar un PIC come il 16f .... .

Scusate delle domande forse a voi appaiono banali ma sto cercando di intuirne un possibile collegamento e funzionamento con il 16f... e usando il compilatore xc8 della mplab ide ...


Se magari avete alla mano già progetti con il 16f ... e rfi522 ve ne sarei grato ... perché mi toglierei tanta roba da adattare rispetto a questo progetto (ripeto l'unico) che ho trovato in rete che usa il processore 16f :(,

per ora sono risucito a compilarlo con ide di mplab e compilatore XC8 senza errori, modificando alcune righe del rf522.h che vanno solo sul compilatore css ... non so se riusciro a farlo funzionare ma ci spero, se ci riesco posto il progetto qui, anche perche sarebbe di aiuto a molti visto che un progetto rfid con 16f e usando id mpalb non lo hanno ancora pubblicato ...
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

1
voti

[8] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto UtenteBrianz » 18 mag 2016, 14:15

E daje con sti 4MHz!
Ma 'ndo li vedi?????

C'è un riferimento al clock di 4MHz in relazione alla funzione delay che necessita di conoscere quale sia il clock per cui sta calcolando i tempi. Servirà anche alla rs232.
La quale rs232 userà l'USART interno con uscita su RB1/2.
Servirà anche per la temporizzazione di SPI. Ma non direttamente.
Se il clock di questo PIC è solo 4MHz, è ovvio che non si potrà usare che questo valore. Esattamente cosa stai cercando?

perché non vedo dove sta il problema: prova il progetto così come è offerto!
Se funziona, poi, se ne esiste la necessità, cercherai di modificarlo o portarlo in altri C o in altri processori.

E se è per replicare paro paro un qualsiasi progetto senza sapere bene cosa fa, va bene anche l'arducoso, perché no?
Certamente occorre tempo e fatica per capire come funzionano tante cose, però la scelta è avere in mano subito una cosa che non si sa come funziona o averla dopo un giusto tempo, ma sapendo come funziona.
Ma all'inizio va benissimo avere in mano subito qualcosa che funziona: tutti sono d'accordo con questo; un successo porta sicurezza e soddisfazione personale; anche solo di riflesso è cosa buona.
Però, poi, si deve decidere se voler essere creativi o solo copiativi.
Avatar utente
Foto UtenteBrianz
5.828 5 10
CRU - Account cancellato su Richiesta utente
 
Messaggi: 858
Iscritto il: 24 mar 2016, 11:27

0
voti

[9] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto Utentefloppinoo » 18 mag 2016, 14:34

te hai ragione .... ma penso che scrivere una libreria rfid da zero senza aver eun progetto funzionante sia una cosa un po difficile da realizzare, forse perderei troppo tempo anche se si tratta di un hobby.

Il problema che il prgetto è scritto per css e molte righe di codice vanno riadattate ....
e devo pur capire come settare quelle porte e come collegarle all PIC perche il prgetto non mostra uno schema lelettronico.

Non è facile credimi prendere quel progetto e riadattarlo, prima di avere qualcosa compilabile ho dovuto sudare parecchio, se davo quella libreria rc522.h in pasto all XC8 mi dava un sacco di errori e ancora il main devo sistemare alcune cose che sicuramente mancano epr far partire corettamente o tentare di farlo funzionare su XC8

Purtroppo non è come dici tu ... se metto quel progetto su mplabide con xc8 non funziona nulla
anche la stessa libreria rs232 sto riadattando quella fatta da me qualche mese fa per il 16f ...

E' logico che dovrro poi essere creativo ma prima della creativita serve studiare quello che si ha a disposizione perche aime solo con rfid e senza progetti validi e codice già scritto ... la vedo dura combinare qualcosa .

MA sto cercando di adattarmi e risolvere i problemi un passettino alla volta.
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

0
voti

[10] Re: clock interno o esterno cosa succede su RA7/OSC1 RA6/OSC

Messaggioda Foto UtenteBrianz » 18 mag 2016, 15:01

A me invece sembra proprio come dico io.
Hai presente che tutti i C sono diversi tra di loro? Che le librerie di uno hanno ben poche (o niente) probabilità di funzionare su un altro?
Quindi, sperare di prendere librerie CCS e aspettarsi che vadano su XC8 è assurdo.
Con XC8 dovrai usare le librerie di XC8.
Mettersi a modificare quelle di un altro C è una impresa che può essere non da poco. Sopratutto se non hai bene chiaro cosa fanno le varie funzioni.

Quanto allo schema elettrico, si può derivare dalle assegnazioni del programma. Non vedo il problema. Non è una bella cosa che non ci sia nell'articolo, ma è comune nel web fare cose tanto per fare.

Quanto al "settare" o usi le librerie e quelle fanno da se o scrivi da zero e allora devi sapere cosa fare per generare SPI o RS232 o qualsiasi altra cosa. Se devi partire da zero senza librerie devi sapere come sono i protocolli, i segnali da generare, i comandi da dare. Varie settimane di lavoro...

perché devi "riadattare"? Trova un CCS in rete e usa quello con la lista originale. Ci sarà sicuramente una versione gratuita. Vedilo funzionare e poi passi al resto.
Fino a che stai a ingolfarti in complicazioni non necessarie, non vai avanti.

Se CCS ti sta sui cosi, usa MikroC; li ci sono applicazioni RFID.

Poi, basta mettere nel tritatutto di google cose come "PIC rfid" per trovare applicazioni anche in XC8.
Avatar utente
Foto UtenteBrianz
5.828 5 10
CRU - Account cancellato su Richiesta utente
 
Messaggi: 858
Iscritto il: 24 mar 2016, 11:27

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti