Ho aggiornato il core Attiny per l’IDE 1.5.8 di Arduino aggiungendo la libreria tinyISP (scritta da Jack Christenses e modificata da me con l’aggiunta del supporto agli Attiny2313 e 4313), con la quale è possibile gestire le comunicazioni SPI con i microcontrollori della famiglia Attiny, che non hanno una periferica SPI dedicata ma che offrono la possibilità di programmare la periferica USI (la stessa usata per gestire la comunicazione I2C) affinché sia in grado di dialogare anche con la Three-Wire (compatibile con la SPI).
(per il link al download, espandete l’articolo)
salve Leonardo,
innanzitutto grazie per la guida che hai messo a disposizione, veramente utile.
Ho da poco iniziato a lavorare sull’attiny e non ho avuto particolari problemi nel trasferire dei piccoli progetti da Arduino all’attiny85.
Da alcuni giorni però sono bloccato su un problema relativo alla comunicazione seriale tra un attiny85 ed un Arduino UNO.
In pratica ho seguito le tue guide (anche quelle precedenti cambiando versione dell’IDE), ma niente da fare. L’attiny trasmette, ma Arduino interpreta male e sul monitor seriale vedo solo dei caratteri “strani”.
L’unica differenza che posso riscontrare tra quello che descrivi tu e la mia situazione è che io utilizzo il “tiny programmer” di sparkfun, ma poi sposto l’attiny sulla breadboard e lo collego come indichi tu.
Ho visto facendo ricerche su google che il problema è noto, ma poi sembra che tutti risolvano cambiando l’IDE.
Hai un consiglio da darmi? Sto sicuramente commettendo un errore banale, ma proprio non riesco ad andare avanti.
grazie mille
Giulio
Controlla prima di tutto di aver impostato la stessa velocità della seriale su entrambi i chip, perché “caratteri strani” spesso appaioni per questo motivo. Es.: Tiny a 9600, Arduino a 19200.
Ciao Leonardo,
grazie tanto per aver messo a disposizione la tua conoscenza in questo blog, e in particolare per questa guida.
Ho un problema, quando vado a “scrivere il bootloader” per settare i FUSE, l’IDE mi risponde con un errore:
avr_read(): error reading address 0x0000 read operation not supported for memory “lock”
avrdude: failed to read all of lock memory, rc=-2
da cosa potrebbe dipendere secondo te? cosa mi consigli di fare?
La scrittura del programma, funziona correttamente.
Grazie mille
Riccardo
Devi sostituire il file avrdude.conf che hai sul tuo sistema con quello presente nella guida che hai scaricato
perfetto, funziona alla grande!! avevo capito che non era necessario sostituirlo nell’ultima versione dell’IDE.
Grazie ancora!
Riccardo
Dear Leonardo,
mille grazie for this compact guide and the code. Maybe, in an up-coming version, you could add to your Attiny guide more information on pin numbering in the Arduino IDE vs. physical pin numbers (The graphics just indicate the port numbers, which, unfortunately, are not the Arduino pin mumbers.)
Secondly, one issue should might be addressed which is not obvious to the Attiny newb (like me): Contrary to the Atmega328, some digital I/O pins in the ‘tinies can also be used as analog input pins. What must/can/must’nt I do in pin mode declarations in my Arduino code when I want to use the pins for these different purposes?
Thirdly, maybe some coments on the following problem: What design considerations should be made when SOIC-Attinies are soldered into a circuit and peripherals are hard-connected to those pins which are also used for in-system programming (MOSI, MISO, SCK). What peripherals to these pins would be tolerated by the programmer, what kind of peripherals should be avoided on those pins?
Thanks again,
Thomas
ciao Leonardo
Ho aggiornato la mia versione di Arduino 1.5.8 segeundo passo passo la tua guida , ottima,.
Ma collegando il mio tiny85 per il cricamento dello sketch ricevo il seguente messaggio:
errore durante il caricamento manca il parametro “upload.tool” nella configurazione.
Ciò e rincoducibile al mancato aggiornamento del file avrdude.
Ho caricato dopo ricerche nel file bords la parte inerente ATtiny85:
###########################################################################
attiny85at8.name=ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)
# The following do NOT work…
# attiny85at8.upload.using=avrispv2
# attiny85at8.upload.using=Pololu USB AVR Programmer
# The following DO work (pick one)…
attiny85at8.upload.using=arduino:arduinoisp
# attiny85at8.upload.protocol=avrispv2
# attiny85at8.upload.using=pololu
attiny85at8.upload.maximum_size=8192
# Default clock (slowly rising power; long delay to clock; 8 MHz internal)
# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value
# Brown-out detection disabled; [BODLEVEL=111]
# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
attiny85at8.bootloader.low_fuses=0xE2
attiny85at8.bootloader.high_fuses=0xD7
attiny85at8.bootloader.extended_fuses=0xFF
attiny85at8.bootloader.path=empty
attiny85at8.bootloader.file=empty85at8.hex
attiny85at8.build.mcu=attiny85
attiny85at8.build.f_cpu=8000000L
attiny85at8.build.core=tiny
###########################################################################
senza ottenere alcun risultato, ho sbagliato?
Può indicarmi la via per uscire dalla secca.
Grazie
Ciao Leonardo,
Complimenti per la guida. Mi sono da poco avvicinato ai attiny85 e vorrei iniziare con qualche piccolo progettino.
Attualmente ho una ide 1.6.5 posso comunque seguire la tua guida?
Grazie