L'interrupt viene DISABILITATO prima della procedura unlock.
e riabilitato dopo la scrittura
Ciò che vedo di DIVERSO dal flowchart nei datasheet è di aver specificato l'indirizzo dopo la procedura UNLOCK
quello che effettivamente non capisco è se l'interrupt deve rimanere disattivato fino a scrittura terminata (circa 2 mS) verificando il flag specifico
meglio essere un granello di pepe che una cacca d'asino
Ottavo
postato il: 23.03.2019, alle ore 07:47
Ciao a tutti e grazie per la collaborazione.
Per quanto riguarda il GIE, ho seguito le indicazioni riassunte nell'esempio 10-2
di pagina 123.
Al momento non ricordo più dove, ma da qualche parte nel documento è riportato che la conclusione della procedura di scrittura è da considerarsi tale, quando il bit NVMCON1.WR ritorna a zero e a ciò pensa l'hardware, così come avviene per il bit di lettura.
Fin qui sembra che tutto sia conforme a quanto indicato nel ds.
L'unica difformità consiste, come correttamente fattomi notare da agric, nella dichiarazione dell'indirizzo.
Con altri pic non ho mai avuto problemi di sorta, anche perché facevo uso delle funzioni di libreria, ma con questo PIC mi trovo in una situazione un po' anomala.
Non posso usare MPLAB perché nella versione che ho, ottimizza poco e male la memoria che invece a me serve fino all'ultimo bit, altrimenti non avrei scelto un pic con 28k di program flash memory.
detesto citazioni, massime e aforismi nella firma
Ottavo
postato il: 23.03.2019, alle ore 08:02
Essendo un amatore, la versione migliore di MPLAB è per me un impegno economico non giustificabile.
Fra le varie possibilità ho trovato MikroC for pic che aveva un costo notevolmente inferiore e per di più - Una Tantum -
Rispetto all'abbonamento mensile di MPLAB che a quel tempo veniva offerto - ora non so se la politica è rimasta tale - sembrava un bel risparmio, così ho acquistato la licenza e anche la EasyPic7Pro.
Solo successivamente ho scoperto che con i PIC più recenti,
le librerie funzionano male o non funzionano per niente, anche quelle più stupide. Senza librerie, mi ritrovo a scrivere tutto...
Che fregatura!
detesto citazioni, massime e aforismi nella firma
picmicro675
postato il: 23.03.2019, alle ore 08:33
agric: [L'interrupt viene DISABILITATO prima della procedura unlock.
e riabilitato dopo la scrittura
Devo ammettere che ho avuto una terribile svista.
Ottavo: Essendo un amatore, la versione migliore di MPLAB è per me un impegno economico non giustificabile.
Se cerchi qualcosa che funziona allora pensa al FOSS.
https://en.wikipedia.org/wiki/Free_and_open-source_software Non è certo completo come quelli professionali, ma sono discreti e permettono di raggiungere lo scopo. Rimane sempre lo scoglio che i PIC non sono ben supportati da librerie come gli AVR.
Mi par evidente che la politica di Microchip e di mungere anche dalla parte del software. Tant'è vero che l'XC è basato su un compilatore open source, solo che hanno aggiunto alcune deviazioni per ciucciare dei soldi.
Come amatore, se vuoi spendere credo che la spesa minore sia con Boost, senza andare alla versione Pro, si ha un bel pacchetto a 69 USD.
http://www.sourceboost.com/Products/BoostC/Overview.html Oppure potresti optare per SDCC. Lo trovo che gli manca qualcosa di documentazione, in particolare per i PIC.
Ottavo: Solo successivamente ho scoperto che con i PIC più recenti,
le librerie funzionano male o non funzionano per niente
Direi che se non hai programmi con la benda all'occhio, allora è meglio che scegli gli AVR o altri micro, come gli Esperssif, che sono supportati da Arduino IDE e risolvi in ``tre balletti``.
Anno nuovo, forum nuovo.
Mi sa che lascio.
Ottavo
postato il: 23.03.2019, alle ore 09:04
Al momento non posso cambiare.
Ho già bruciato 500€ per compilatore e scheda di sviluppo e inoltre per questo progetto l'hardware è completo, già montato e funzionante. Mi è costato altri 200€.
MikroC for pic veniva incensato anche su ElettronicaIN; io l'avevo già comprato anni prima (2015) Ma i loro tutorial sono sempre al limite dell'inutilità o copiati di sana pianta dalla documentazione e poi tradotti.
inoltre ho una considerevole scorta di pic vari che supera i 100 pezzi.
Nonostante tutto, tra mille difficoltà sono sempre riuscito a raggiungere lo scopo.
Per quest'applicazione mi manca solo la scrittura di qualche word in EEprom o in Flash dove ancora c'è un po'di spazio.
Non posso abbandonare adesso...a costo di aggiungere quelle 4 righe in assembly.
Voglio capire perché non va e solo dopo magari brucio tutto o distruggo a mazzate.
Ma PRIMA voglio capire.
Comunque ho provato a scrivere l'indirizzo prima...ma nulla di fatto.
Il bit si azzera correttamente ma se spengo e riaccendo i dati non rimangono.
detesto citazioni, massime e aforismi nella firma
picmicro675
postato il: 23.03.2019, alle ore 12:39
Capisco che l'investimento c'è stato e anche corposo.
Per questo caso, non so se conosci le possibilità di debug della scheda. Il micro è nuovo, non ho tanta conoscenza, ma penso che sia della famiglia ehnanced e quindi ha un fuse per attivare il debug a bordo. Visto il foglio dati dovrebbe essere il bit 13 della config2.
Per questo con MPLAB si dovrebbe ottenere le informazioni della situazione al punto che si possa mettere un breakpoint. Allora dovresti cercare di fermare dopo la scrittura e leggere il contenuto se è stato scritto ``sul serio``.
Infine potrebbe esserci qualcosa che determina di ricaricare la copia salvata quando si fa un riavvio (a caldo o a freddo). Oppure hai impostato la protezione dei dati che impediscono la scrittura. Vedi paragrafo 11.4 .
Writing to the EEPROM is accomplished by the
following steps:
1.
Set the NVMREGS and WREN bits of the
NVMCON1 register.
2.
Write the desired address (address +7000h) into
the NVMADRH:NVMADRL register pair
(Table 11-2).
3.
Perform the unlock sequence as described in
Section 11.4.2 “NVM Unlock Sequence”.
Allora la sequenza sono di pochi passi, ma va tenuto conto di sbloccare la NVM, dopo i primi due punti. Tenuto conto che all'indirizzo si deve aggiungere l'offset di 7000h.
Se stai scrivendo in flash, allora la descrizione è quella del paragrafo 11.4.5.
Sono cose che vanno lette e rilette per capire bene come si deve procedere, per evitarsi dei grattacapi.
Anno nuovo, forum nuovo.
Mi sa che lascio.
Ottavo
postato il: 23.03.2019, alle ore 14:02
Ti ringrazio per l'aiuto.
Si la EasyPic ha l'In-curcuit debugger oltre al programmer, non è il massimo ma funziona quasi decentemente.
Ottavo: Che strazio, il forum mi va in sqlerror.
Ho risolto ma non riesco a pubblicare il codice o scrivere più di 2 righe
Questo succede quando utilizzi le virgolette (doppi apici), non usarli più.
mentre per i post vuoti, probabilmente, premi più volte l'invia, e magari non vedi subito il post vuoto perché il browser ci mette un po' ad aggiornarsi.
Ottavo
postato il: 23.03.2019, alle ore 14:44
Quindi devo scrivere in italiano correggiuto per poter pubblicare un messaggio?
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito