Come programmare un PIC12?


8

Ho un PIC12F675 che devo programmare. Sto usando un Pickit 2 e il software Pickit 2. Presumibilmente dovrei essere in grado di programmarlo utilizzando questo circuito , ma il software Pickit 2 non rileva affatto il chip.

circuito

Cosa non va?

EDIT: ho aggiunto un'immagine del mio circuito tagliato fuori. Ed ecco dove puoi trovare la scheda tecnica per PIC12F675. Passa alla pagina 4 per il pinout.

breadboard

EDIT2: Ho appena guardato i chip (stupido, ma ho pensato che mouser mi avrebbe inviato ciò che avevo ordinato) e ho notato che in realtà sono PIC12C671. Quanta differenza farebbe questo?

EDIT finale: Wow! Grazie a tutti quelli che mi hanno aiutato in questo! Non mi aspettavo questo tipo di risposta. Alla fine è stato un piccolo stupido problema proprio come pensavo che sarebbe stato. È stata colpa mia per non aver ricontrollato tutto quando ho ricevuto il pacchetto da Mouser.


2
Sei sicuro che il tuo circuito sia corretto, sia alimentato, abbia condensatori di disaccoppiamento, sia collegato al tuo computer?

Ho 5 volt che vanno ad esso ed è collegato al mio computer. Sembra che abbia trascurato i condensatori di disaccoppiamento. Ciò avrebbe un impatto così grande sul circuito?
Willem Ellis,

1
Probabilmente no, ma non vuoi sprecare una settimana per un condensatore di disaccoppiamento che puoi aggiungere in un minuto.

2
12F675 è supportato da PICkit 2 e MPLAB.
Leon Heller,

3
Vdd sul connettore ICSP deve essere collegato a + 5V.
Leon Heller,

Risposte:


9

Un possibile problema è che alcuni PIC necessitano di un ciclo di accensione per entrare in modalità di programmazione. Il 12F675 in particolare ha bisogno di questo quando la parola di configurazione nell'applicazione configura il pin MCLR come GPIO.

Quando pcikit2 alimenta il tuo chip target fornirà il ciclo di accensione. Con il + 5V indipendente fornito non è possibile farlo.


Dopo aver coperto i problemi più probabili potresti andare per quelli improbabili ... Non ridere di me, sto attingendo alla mia esperienza!

  • potresti avere due pickit2 collegati? (Sì, una volta l'ho fatto ed ero sbalordito dal fatto che quello selezionato dall'applicazione pickit2 non fosse quello a cui era collegato il PIC. Ho anche perso una volta un'ora quando ho avuto due fili PIC di destinazione in parallelo. Ciò dà risultati molto strani quando entrambi hanno comunicato il loro ID chip al programmatore.)
  • pickit2 che stai usando è collegato al PC che stai usando? (Faccio lezioni PIC e gli studenti possono diventare abbastanza creativi in ​​chi si collega il laptop a chi è PIC)
  • sia il pickit2 che il chip sono il lato destro rotondo? La merce pickit2 è vista dall'alto (dove si trovano il pulsante e i LED).
  • il chip è davvero un 12F675? (Una volta ho provato per un'intera giornata a far funzionare il convertitore A / D di un 12F629 - per i non guru PIC: è il fratello più economico del 12F675, è più economico perché non ha un convertitore A / D ).
  • I fili sono esattamente come li mostri, non confusi? E non sono per caso rotti? Se si utilizza una breadboard senza saldatura: crea ancora tutti i contatti?
  • Il firmware in pickit2 è una versione che corrisponde al tuo PC? forse ricaricare il firmware per essere sicuri al 100%.

In risposta al tuo EDIT2: ROFL, controlla il mio proiettile 4. Il PIC12C671 è un chip completamente diverso, e la C significa che è un chip EPROM (programmabile una volta), che non è supportato da pickit2.


Ho provato ad alimentarlo dal PICKit stesso e non funziona ancora.
Willem Ellis,

:( Grazie per l'aiuto! Come ho detto, ho pensato che Mouser mi avesse inviato le chips giuste. Colpa mia per non aver ricontrollato tutto prima di iniziare. Grazie ancora!
Willem Ellis

1
Come dico ai miei studenti: sentiti libero di fare un errore per la prima volta. Ma mai più.
Wouter van Ooijen,

4

Il programmatore PICkit2 dovrebbe funzionare così com'è per la tua parte senza intestazioni. (Il debug è completamente un'altra questione.)

Oltre al consiglio di disaccoppiamento del condensatore offerto, considera questo: la maggior parte (tutti) i dispositivi PIC richiedono un pullup di 10k da _MCLR a VDD. Prova ad aggiungerlo e guarda cosa succede.

Supporto PICkit2

Ecco un esempio di cablaggio dal poster di installazione di PICkit3. (Le piedinature di PICkit2 e PICkit3 sono identiche, quindi le informazioni sono rilevanti al 100%.)

Diagramma ISCP

Puoi vedere che i pin da 1 a 5 del programmatore devono essere collegati al tuo circuito. Nel tuo schema manca la connessione VDD Target dal pin 2. Prova a connetterlo e consenti a PICkit2 di alimentare il circuito.


3
La mancanza di un resistore su MCLR non impedisce al PICkit di programmare il dispositivo. Tuttavia, potrebbe interrompere l'esecuzione del programma.
Leon Heller,

Ho aggiunto il pull-up e mi sono assicurato di aver selezionato il dispositivo corretto in MPLAB. Ancora niente dadi.
Willem Ellis,

@LeonHeller Ho basato la mia dichiarazione su _MCLR sul poster PICkit3, che mostra il _MCLR pull-up sotto il modo "corretto" di cablare le cose.
Adam Lawrence,

@Madmanguruman Vorrei non averlo collegato esattamente in questo modo, ma ho verificato con il foglio dati e tutti i collegamenti sono corretti.
Willem Ellis,

2

PICKit2 supporta il tuo dispositivo ( sorgente ). Questo significa che c'è qualcosa che non va nella tua configurazione. Ci sono alcune cose che puoi controllare:

  • C'è un problema nella comunicazione con PICKit? No, se così fosse, si otterrebbe un errore che non è stato possibile trovare lo strumento ICSP.
  • C'è un problema con il circuito con il chip? Forse . Dovresti controllare il tuo circuito, aggiungere condensatori di disaccoppiamento se non ancora fatto. Tutti i pin VDD e VSS devono essere collegati, anche quelli del connettore ICSP. Inoltre, controlla l'alimentatore: è regolare?
  • C'è un problema con il software? Molto probabilmente , direi. Hai selezionato il chip giusto in MPLAB? Puoi programmare altri chip con la stessa configurazione?

Ho controllato tutto questo. Aggiunto nei cappucci di disaccoppiamento e nella resistenza di pull-up MCLR. Sto usando il software PICKit2 v2.61 per programmare il chip, invece di MPLAB. Anche se ho provato quello che hai detto in MPLAB. Ottengo questo errore quando provo a connettermi al chip. Verifica che un PIC12F675 sia installato correttamente nell'applicazione
Willem Ellis il

@WillemEllis Molto bene. Ho pensato ad altro: hai collegato tutti i pin Vdd e Vss del chip? Controlla anche se PGC è collegato a PGC e non a PGD - questo mi ha causato qualche problema ultimamente.

@WillemEllis ci sono progressi su questo?

scusami per aver impiegato così tanto tempo a risponderti. Sfortunatamente no. Ho parlato con il mio professore e neanche lui è riuscito a capirlo. Mi sono assicurato che tutto sia collegato come nel circuito con PGD e PGC che vanno ai pin corretti. Ancora niente fortuna.
Willem Ellis,

Se sei sicuro che le tue connessioni siano buone, prova un altro dispositivo o un altro PICkit2.
Adam Lawrence,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.