Sommario:

ATTiny HV Programmer: 4 passaggi
ATTiny HV Programmer: 4 passaggi

Video: ATTiny HV Programmer: 4 passaggi

Video: ATTiny HV Programmer: 4 passaggi
Video: Design a HIGH Voltage TPI Programmer for ATtiny10 Microcontroller --- #1 2024, Dicembre
Anonim
ATTiny HV Programmer
ATTiny HV Programmer
ATTiny HV Programmer
ATTiny HV Programmer

Questa istruzione è per un'utilità di programmazione ATTiny che utilizza un ESP8266 e un'interfaccia utente basata su browser. Fa seguito a un precedente editor di fusibili istruibile per la lettura e l'impostazione dei fusibili, ma ora supporta la cancellazione, la lettura e la scrittura delle memorie flash ed EEPROM.

Il supporto del fusibile consente di apportare modifiche alle impostazioni controllate dai 2 byte del fusibile un'attività molto semplice.

I supporti di memoria consentono il backup e il ripristino dei contenuti di flash ed EEPROM. È anche possibile scrivere nuovo contenuto da file esadecimali. Ciò rende molto semplice il ripristino o la scrittura di nuovi bootloader di micronuclei.

Il dispositivo ha le seguenti caratteristiche.

  • Server Web che supporta la lettura e la scrittura dei dati sui fusibili e una pagina dell'editor che consente un facile accesso alle opzioni dei fusibili
  • Chip di cancellazione (necessario prima di scrivere nuovo materiale)
  • Lettura e scrittura di dati di programmi Flash da file esadecimali
  • Lettura e scrittura di dati EEPROM da file esadecimali
  • Supporto per le varianti ATTiny 25, 45 e 85
  • Alimentazione USB con generatore interno 12V per programmazione ad alta tensione
  • Configurazione della rete Wi-Fi tramite punto di accesso wifiManagerAccesso del browser al sistema di archiviazione SPIFFS ESP8266 per il caricamento e il download di file
  • Aggiornamento OTA del firmware ESP8266

Passaggio 1: componenti e strumenti

Componenti

  • Modulo ESP-12F
  • Modulo boost da 5V a 12V
  • presa micro USB con connettore saldabile
  • Condensatore al tantalio da 220uF
  • xc6203 3.3V regolatore LDO
  • Transistor MOSFET 3x canale n AO3400 1 x canale p AO3401
  • Resistori 2 x 4k7 1x 100k 1x 1K 1x470R 1x 1R27
  • blocco intestazione pin
  • Piccolo pezzo di breadboard per circuiti di supporto
  • collegare wireEnclosure (ho usato una scatola stampata in 3D su

Utensili

  • Saldatore a punta fine
  • pinzette
  • Pinza tagliafili

Passaggio 2: elettronica

Elettronica
Elettronica

Lo schema mostra che tutta la potenza è derivata da una connessione USB 5V. Un regolatore fornisce 3,3 V al modulo ESP-12F. Un piccolo modulo boost produce i 12V necessari per la programmazione dell'alta tensione.

L'ESP GPIO fornisce i 4 segnali logici utilizzati nella programmazione ad alta tensione (clock, data in, data out e comando in ingresso).

Un GPIO viene utilizzato per accendere e spegnere un transistor MOSFET alimentato dal binario 12V tramite un resistore da 1K. Quando il GPIO è alto il tMOSFET è acceso e il suo drain è a 0V. Quando il GPIO è impostato su basso, il drain sale a 12V necessari per impostare la modalità di programmazione ad alta tensione. Un secondo GPIO può essere utilizzato per abbassare i 12V fino a 4V in modo che possa essere utilizzato come segnale di ripristino convenzionale. Questa struttura è attualmente inutilizzata, ma potrebbe essere utilizzata per supportare la programmazione SPI anziché la programmazione ad alta tensione.

Un GPIO viene utilizzato per attivare e disattivare un driver MOSFET a 2 stadi per l'alimentazione a 5 V dell'ATTiny. Questa disposizione viene utilizzata per soddisfare la specifica che quando il 5V è acceso ha un tempo di salita rapido. Questo non viene soddisfatto pilotando l'alimentazione direttamente da un GPIO, in particolare con il condensatore di disaccoppiamento 4u7 presente sulla maggior parte dei moduli ATTiny. Un resistore di basso valore viene utilizzato per smorzare il picco di corrente causato dall'accensione rapida dei transistor MOSFET. Potrebbe non essere necessario, ma viene utilizzato qui per evitare qualsiasi problema tecnico che potrebbe essere causato da questo picco di accensione.

Si noti che lo schema differisce leggermente dalla precedente versione dell'editor dei fusibili. I pin GPIO vengono riassegnati per rendere possibile la programmazione SPI sebbene il software non lo utilizzi al momento. I segnali di lettura dei pin dall'ATTiny hanno una protezione aggiuntiva per i segnali 5V utilizzati.

Passaggio 3: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea

L'immagine mostra i componenti assemblati in un piccolo contenitore. Una piccola breadboard si trova sopra il modulo ESP-12F e contiene il regolatore da 3,3 V e i 2 circuiti di azionamento della tensione.

Il modulo boost da 12 V si trova sulla sinistra e riceve l'alimentazione in ingresso dall'USB. La custodia ha uno slot per il blocco di intestazione a 7 pin per consentire le connessioni all'ATTiny. Dopo il cablaggio e il test, l'USB e il blocco di intestazione sono fissati all'involucro con colla a base di resina.

Un'etichetta può essere stampata dall'immagine da attaccare alla scatola per aiutare a collegare i segnali.

Passaggio 4: software e installazione

Il software per il programmatore è in uno sketch Arduino ATTinyHVProgrammer.ino disponibile su

Utilizza una libreria contenente funzioni Web di base, supporto per la configurazione Wi-Fi, aggiornamenti OTA e accesso al sistema di archiviazione basato su browser. Questo è disponibile su

La configurazione del software si trova in un file di intestazione BaseConfig.h. I 2 elementi da modificare qui sono le password per il punto di accesso della configurazione Wi-Fi e una password per gli aggiornamenti OTA.

Compila e carica su ESP8266 da un IDE Arduino. La configurazione IDE dovrebbe consentire una partizione SPIFFS, ad esempio l'utilizzo di 2M/2M consentirà l'OTA e un sistema di archiviazione di grandi dimensioni. Ulteriori aggiornamenti possono quindi essere effettuati tramite OTA

Alla prima esecuzione il modulo non saprà come connettersi al wifi locale, quindi configurerà una rete AP di configurazione. Utilizzare un telefono o un tablet per connettersi a questa rete, quindi accedere a 192.168.4.1. Apparirà una schermata di configurazione wifi e dovresti selezionare la rete appropriata e inserire la sua password. Il modulo si riavvierà e si connetterà utilizzando questa password d'ora in poi. Se ci si sposta su una rete diversa o si modifica la password di rete, l'AP verrà nuovamente attivato, quindi seguire la stessa procedura. Quando si accede al software principale dopo essersi connessi al wifi, caricare i file nella cartella dei dati navigando nei moduli ip/upload. Ciò consente di caricare un file. Dopo che tutti i file sono stati caricati, è possibile eseguire un ulteriore accesso al sistema di archiviazione utilizzando ip/edit. Se si accede a ip/, viene utilizzato index.htm e viene visualizzata la schermata principale del programmatore. Ciò consente di visualizzare, modificare e scrivere i dati del fusibile, cancellare il chip e leggere e scrivere la memoria flashh e EEPROM.

Ci sono un certo numero di chiamate web utilizzate per raggiungere questo obiettivo

  • ip/readFuses ottiene i dati attuali del fusibile
  • ip/writeFuses scrive nuovi dati sul fusibile
  • ip/erasechip.cancella il chip
  • ip/dataOp supporta le funzioni di lettura e scrittura della memoria fornisce i seguenti parametri

    • dataOp (0=lettura, 1=scrittura)
    • dataFile (nome del file esadecimale)
    • eeprom (0= Flash, 1 = eeprom)
    • versione (0= 25, 1=45, 2=85)

inoltre un parametro AP_AUTHID può essere definito nello sketch prima della compilazione. Se definito deve essere inserito nella pagina web per consentire le operazioni.

ip/edit dà accesso ai file; ip/firmware dà accesso agli aggiornamenti OTA.

Il formato del file esadecimale è un record in stile Intel compatibile con quelli prodotti da Arduino IDE. Se è presente un record dell'indirizzo iniziale, si attiverà l'inserimento di un'istruzione RJMP nella posizione 0. Ciò consente ai file del caricatore di avvio del micronucleo di essere programmati in un chip cancellato e di funzionare. Per comodità, è possibile leggere e utilizzare anche semplici file esadecimali costituiti da un indirizzo esadecimale di 4 caratteri seguito da 16 byte di dati esadecimali.

Consigliato: