mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-30 04:26:50 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| AVR In-System Programming over WiFi for ESP8266
 | |
| ===============================================
 | |
| 
 | |
| This library allows an ESP8266 module with the HSPI port available to
 | |
| become an AVR In-System Programmer.
 | |
| 
 | |
| Hardware
 | |
| --------
 | |
| 
 | |
| The ESP8266 module connects to the AVR target chip via the standard
 | |
| 6-pin AVR "Recommended In-System Programming Interface Connector Layout"
 | |
| as seen in `AVR910 <http://www.atmel.com/images/doc0943.pdf>`__ among
 | |
| other places.
 | |
| 
 | |
| If the AVR target is powered by a different Vcc than what powers your
 | |
| ESP8266 chip, you **must provide voltage level shifting** or some other
 | |
| form of buffers. Exposing the pins of ESP8266 to anything larger than
 | |
| 3.6V will damage it.
 | |
| 
 | |
| Connections are as follows:
 | |
| 
 | |
| +-----------+-------------+
 | |
| | ESP8266   | AVR / SPI   |
 | |
| +===========+=============+
 | |
| | GPIO12    | MISO        |
 | |
| +-----------+-------------+
 | |
| | GPIO13    | MOSI        |
 | |
| +-----------+-------------+
 | |
| | GPIO14    | SCK         |
 | |
| +-----------+-------------+
 | |
| | any\*     | RESET       |
 | |
| +-----------+-------------+
 | |
| 
 | |
| For RESET use a GPIO other than 0, 2 and 15 (bootselect pins), and apply
 | |
| an external pullup/down so that the target is normally running.
 | |
| 
 | |
| Usage
 | |
| -----
 | |
| 
 | |
| See the included example. In short:
 | |
| 
 | |
| .. code:: arduino
 | |
| 
 | |
| 
 | |
|     // Create the programmer object
 | |
|     ESP8266AVRISP avrprog(PORT, RESET_PIN)
 | |
|     // ... with custom SPI frequency
 | |
|     ESP8266AVRISP avrprog(PORT, RESET_PIN, 4e6)
 | |
| 
 | |
|     // Check current connection state, but don't perform any actions
 | |
|     AVRISPState_t state = avrprog.update();
 | |
| 
 | |
|     // Serve the pending connection, execute STK500 commands
 | |
|     AVRISPState_t state = avrprog.serve();
 | |
| 
 | |
| License and Authors
 | |
| ~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| This library started off from the source of ArduinoISP "sketch" included
 | |
| with the Arduino IDE:
 | |
| 
 | |
| ::
 | |
| 
 | |
|     ArduinoISP version 04m3
 | |
|     Copyright (c) 2008-2011 Randall Bohn
 | |
|     If you require a license, see
 | |
|         http://www.opensource.org/licenses/bsd-license.php
 | |
| 
 | |
|     Support for TCP on ESP8266
 | |
|     Copyright (c) Kiril Zyapkov <kiril@robotev.com>.
 |