Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Gestione velocità e lettura rpm ventole 3 fili

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[21] Re: Gestione velocità e lettura rpm ventole 3 fili

Messaggioda Foto Utentebau16 » 6 set 2013, 21:52

Ok mi sono portato avanti leggendo istruzioni, configurando nel modo corretto ed infine collegando il tutto.

In modalità "Programmer -> PICKit3" tutto ok, riesco a programmare il PIC16F648A. :ok:

In modalita "Debugger -> PICKit3" sembra collegarsi ma nel momento in cui controlla il "Device ID" mi restituisce che il device letto non è quello configurato.
Da cosa ho capito, dovrei acquistare un componente per debuggare il PIC: "AC162053". #-o

Mi confermate?? :?:

Di seguito il messaggio di errore durante il tentativo di connessione.
Codice: Seleziona tutto
PICkit 3 detectedConnecting to PICkit 3...
Firmware Suite Version...... 01.26.56
Firmware type......................Midrange

CAUTION: Check that the device selected in MPLAB IDE (PIC16F648A)
is the same one that is physically attached to the debug
tool. Selecting a 5V device when a 3.3V device is connected
can result in damage to the device when the debugger checks
the device ID.

PICkit 3 Connected.
Target Detected
Target Device ID (00001100) does not match expected Device ID (00001120).
Avatar utente
Foto Utentebau16
35 2
 
Messaggi: 31
Iscritto il: 28 dic 2012, 0:36

1
voti

[22] Re: Gestione velocità e lettura rpm ventole 3 fili

Messaggioda Foto UtentePaolino » 8 set 2013, 18:15

Purtroppo per il PIC che hai scelto c'è la necessità di usare un modulo ausiliario per il debug. Questo aspetto si applica a diversi PIC12 e a qualche PIC16F. Non ricordavo che il tuo rientrasse nel gruppo.
Cercherò di dare una lettura al codice per capire cosa succede.

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

[23] Re: Gestione velocità e lettura rpm ventole 3 fili

Messaggioda Foto Utentebau16 » 9 set 2013, 13:34

Si infatti, peccato per questo modulo aggiuntivo!
Quando avrò tempo e terminati i PIC16F648A cerco un PIC che non necessiti di tali adattatori.

Ti informo che il problema nel codice è stato risolto, ora il software sembra non avere più pecche! :ok:

Anche se voglio sottoporre il problema poiché molto strano (sicuramente colpa mia):
alcune delle variabili utilizzate nel "CALL LETTURA_TEMPERATURE" erano dichiarate nel banco 1 come segue:
Codice: Seleziona tutto
BANCO0      UDATA    0x20

; UART BYTE TRASMISSIONE
T_TX_B00   RES      1         ;BYTE00: RPM FAN1
T_TX_B01   RES      1         ;BYTE01: RPM FAN2
T_TX_B02   RES      1         ;BYTE02: RPM FAN3
T_TX_B03   RES      1         ;BYTE03: RPM FAN4
T_TX_B04   RES      1         ;BYTE04: RPM FAN5
T_TX_B05   RES      1         ;BYTE05: FEEDBACK PWM FAN1
.........
ecc ecc........
.........

BANCO1      UDATA    0xA0
; DS18S20+ CODICE ID DELLA SONDA SELEZIONATA DA LEGGERE
DS18_CODICE_BYTE1      RES      1      ;BYTE1 CODICE ID 64BIT ATTUALMENTE SELEZIONATO
DS18_CODICE_BYTE2      RES      1      ;BYTE2 CODICE ID 64BIT ATTUALMENTE SELEZIONATO
DS18_CODICE_BYTE3      RES      1      ;BYTE3 CODICE ID 64BIT ATTUALMENTE SELEZIONATO
DS18_CODICE_BYTE7      RES      1      ;BYTE7 CODICE ID 64BIT ATTUALMENTE SELEZIONATO

Queste variabili esistono perché leggo contemporaneamente la temperatura da 6 sonde diverse (che ho denominato A, B, C, D, E, F), quindi ogni volta richiedo la temperatura ad una singola sonda... nel caso di seguito la sonda "C".
Nel codice le seguenti variabili, trovandosi nel banco 1, le utilizzavo spostandomi di banco con i seguenti comandi (che credo giusti, correggetemi se sbaglio):
Codice: Seleziona tutto
BSF      STATUS,RP0
MOVF   DS18_C_CODICE_BYTE1,W
MOVWF   DS18_CODICE_BYTE1
MOVF   DS18_C_CODICE_BYTE2,W
MOVWF   DS18_CODICE_BYTE2
MOVF   DS18_C_CODICE_BYTE3,W
MOVWF   DS18_CODICE_BYTE3
MOVF   DS18_C_CODICE_BYTE7,W
MOVWF   DS18_CODICE_BYTE7   
BCF      STATUS,RP0
CALL   DS18S20_LETTURA_TEMPERATURA
.........
ecc ecc........

Ora penso sia chiaro che ho semplicemente spostato le variabili nel BANCO0, rimosso i BSF e BCF del STATUS,RP0 e tutto funziona perfettamente! :?: perché :?:

Spero più di trovare una risposta al problema visto che il giorno che ho necessità di utilizzare variabili sul banco 1 non ne sarei in grado. Grazie!
Avatar utente
Foto Utentebau16
35 2
 
Messaggi: 31
Iscritto il: 28 dic 2012, 0:36

Precedente

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti