TinyBoard84

Vi presento la Tiny84Board, una piccola schedina di prototipazione simil-Arduino basata sull'Attiny84. La scheda è dotata di porta USB e MCU Attiny2313 con il firmware dell'USBtinyISP di Adafruit: è riconosciuta come "usbtiny" sia da avrdude che dal software di Arduino, in questo modo è possibile programmarla direttamente dall'IDE (usando il core Tiny per la scrittura degli sketch).

L'Attiny84 ha tutti i pin riportati sugli header esterni in modo da facilitare la prototipazione dei circuiti. Ho aggiunto un piccolo regolatore MCP1700-330 per fornire su un pin anche i 3,3V, tensione che può risultare comoda per gestire alcuni componenti. Dai pin è possibile prelevare i segnali di GND e +5V sia sull'header superiore che inferiore, per comodità di sviluppo. C'è anche un connettore ISP per poter flashare il Tiny84 direttamente da un programmatore o da un Arduino. La schedina può anche essere alimentatata tramite una coppia dei pin +5V/GND, non solo tramite la porta USB. Pulsantino di reset per resettare l'Attiny84 (segnale riportato anche su un pin).

Per la programmazione è possibile usare tutte le modifiche al core Tiny che ho presentato nella mia guida. Manca nella guida solo il file boards.txt che ho preparato per poter programmare la scheda dall'IDE.

Se siete interessati, fatemi sapere che posso vendere la scheda sia in kit da assemblare che già assemblata. Sto facendo i preventivi da un paio di service per vedere dove posso andare a cadere con il prezzo. Ho scelto volutamente solo componenti DIP ed a filo passante (no SMD) per facilitare l'assemblaggio anche da parte dei non pratici in saldature complesse (come me :sweat_smile: ).

Già progettata ma non ancora realizzata ho anche una versione semplificata senza connettore ISP e senza regolatore da 3,3V della Tiny84Board ed ho anche quasi terminato lo sviluppo della Tiny85Board, una scheda più piccola basata sull'Attiny85. Anche per queste se siete interessati fatemi sapere via P.M.

Della TinyBoard84 ho al momento 3 esemplari assemblati: sono senza solder mask e serigrafia (come la scheda in foto). Se interessano, contattatemi via P.M. Le schede seguenti vorrei realizzarle con solder mask e serigrafia, non solo per facilitare il montaggio ma anche per avere l'indicazione dei pin sulla scheda (sul prototipo che vedete in foto ho applicato delle strisce di carta esternamente ai pin con riportati i nomi dei pin): spero che i service mi forniscano un prezzo decente.

La foto ritrae il lato componenti, la scheda montata ed il lato saldature della Tiny84Board.

Moooooooolto interessante :slight_smile:

amario57:
Moooooooolto interessante :slight_smile:

Grazie XD

Mi sono dimenticato di dire che la scheda è molto compatta, solo 75x28 mm (la metà di un Arduino): un vero francobollo, portabilissima anche in tasca :wink:

bellissimissimissima,

la versione con l'85 fara' concorrenza a gioblu'
l'idea vincente e' il non utilizzo di componenti smd.

Se vuoi proseguire su questa strada ti do' un'idea, una ethernet board con l'ENC28J60 perche' esiste in PDIP :slight_smile:

le vendite le fai tutte in nero ? con la finanza come la mettiamo ? :slight_smile:

Per quanto riguarda il prezzo ?

Molto molto bello !!!
Peccato che non ci sia la seriale :frowning:

Testato:
bellissimissimissima,

Grassie :sweat_smile:

la versione con l'85 fara' concorrenza a gioblu'
l'idea vincente e' il non utilizzo di componenti smd.

E' una scelta obbligata se vuoi offrire un prodottino saldabile da te.

Se vuoi proseguire su questa strada ti do' un'idea, una ethernet board con l'ENC28J60 perche' esiste in PDIP :slight_smile:

Non sapevo.

le vendite le fai tutte in nero ? con la finanza come la mettiamo ? :slight_smile:

Fino ad un certo importo a semestre non sono obbligato a prendere partita Iva, sotto a 2500€ sono guadagni occasionali e basta dichiararli e pagare la ritenuta d'acconto.

valvale97:
Per quanto riguarda il prezzo ?

Il punto è il costo del PCB. Per averlo in tempo per l'incontro del 6 maggio ho fatto un ordine celere a Millennium Dataware e le schede mi sono costate. Se riesco a trovare un service che mi faccia serigrafia+solder ad un costo accettabile ma senza fornirmi le schede su pannello perché sono piccole. PCB-Proto, ad esempio, avrebbe un prezzo interessante ma per la dimensione della scheda mi fornisce tutto su pannello, ed io mica ho gli strumenti per il taglio :sweat_smile:

ratto93:
Molto molto bello !!!
Peccato che non ci sia la seriale :frowning:

E' un problema che ho valutato moltissimo all'inizio ma ho poi deciso di scartare perché la seriale sui Tiny non è implementata via HW (1° motivo) e poi perché le soluzioni tipo V-USB o Avr-Cdc non funzionano (2° motivo); avrei dovuto usare un chip tipo FT232 ma è SMD ed anche l'MCP2200 è sempre e solo SMD (3° motivo). Usare allora una breakout avrebbe solo fatto lievitare il prezzo (4° motivo).

molto bella! ora pero' ti faccio le domande da ignorante :stuck_out_tongue:
come si chiama il chip che andiamo a programmare? attiny84 cosa?
quanti i/o ha? quanta memoria? velocita'?
quanti comp esterni servono poi per farlo andare in standalone?
che costo avrebbe il solo at? (considerando che con 6-7eu ti fai un standalone 328 col quarzo a 16Mhz)

ATtiny84 --> http://www.atmel.com/Images/doc8006.pdf

reizel:
molto bella! ora pero' ti faccio le domande da ignorante :stuck_out_tongue:
come si chiama il chip che andiamo a programmare? attiny84 cosa?

ATtiny84.

quanti i/o ha? quanta memoria? velocita'?

v. datasheet, così com'è è 1MHz, credo, ma puoi settare i fuse fino a 10MHz, se vuoi andare oltre devi alzare la tensione di alimentazione a 5V. Inoltre, oltre gli 8MHz devi prevedere il quarzo esterno.

quanti comp esterni servono poi per farlo andare in standalone?

basta la sola R di pull-up sul reset.

che costo avrebbe il solo at? (considerando che con 6-7eu ti fai un standalone 328 col quarzo a 16Mhz)

un paio di euro

grazie menniti, quindi altre 2 cose, cosi' com'e' e' a 1Mhz @ 3.3v, se anche lo alimetassi con una lipo o tra 4,5-3volt funziona sempre bene?
(ho in mente un applicazione che usa il pwm e batteria di qualche tipo)
il fatto che serve solo una r esterna lo rende comodissimo e 1Mhz credo lo faccia consumare molto poco (qualche mA?)

leo72:

ratto93:
Molto molto bello !!!
Peccato che non ci sia la seriale :frowning:

E' un problema che ho valutato moltissimo all'inizio ma ho poi deciso di scartare perché la seriale sui Tiny non è implementata via HW (1° motivo) e poi perché le soluzioni tipo V-USB o Avr-Cdc non funzionano (2° motivo); avrei dovuto usare un chip tipo FT232 ma è SMD ed anche l'MCP2200 è sempre e solo SMD (3° motivo). Usare allora una breakout avrebbe solo fatto lievitare il prezzo (4° motivo).

Mi perdo sempre con questa distinzione: il 2313 in quella configurazione ti permette di caricare il firmware tramite USB sul tiny84 (e tramite quali pin, quelli della seriale virtuale? Quindi c'è un colloquio seriale tra il 2313 ed il PC? In cosa si differenzia allora rispetto alla V-USB? Vedo che comunque hai usato un oscillatore, quindi la configurazione è simile alla V-USB. Puoi darmi un bel chiarimento definitivo? (sul funzionamento NON sul progetto, per rispetto di privacy :))
Ovviamente mi associo ai complimenti ma da MCP2200-Friend ti faccio un appunto grande quanto una casa! Vero, è un SMD, e allora? il passo SOIC è 1,27mm, cioè la metà dello standard 2,54, non è una impresa saldarlo, anzi ci vuole 1 minuto di attenzione e basta. Vantaggi: hai l'USB vera, comunicazione seriale, occupa 1/3 del 2313. Svantaggi: richiede un quarzo, ma non è detto che con un oscillatore non funzioni lo stesso (da provare), basta. Al limite lo presaldi tu per chi non se la sente, tanto dopo la prima volta che stai lì a tentare lo salderai come tutti gli altri. Non credo che alla fine avrai una differenza di costi, anzi... Pensaci bene prima di passare alla "produzione"; questa idea che hai avuto potrebbe essere vincente, a maggior ragione se fornita di questa opzione.

reizel:
grazie menniti, quindi altre 2 cose, cosi' com'e' e' a 1Mhz @ 3.3v, se anche lo alimetassi con una lipo o tra 4,5-3volt funziona sempre bene?
(ho in mente un applicazione che usa il pwm e batteria di qualche tipo)
il fatto che serve solo una r esterna lo rende comodissimo e 1Mhz credo lo faccia consumare molto poco (qualche mA?)

poi mando fattura di provvigioni a Leo :smiley:
Il micro a 1MHz funziona benissimo a qualsiasi alimentazione; rileggendo meglio il post di Leo però forse lui sta alimentando a 5V ed ha aggiunto 3,3V come tensione opzionale, ma la sostanza non cambia. Più è bassa la tensione e meno consuma (da valutare per le batterie).
Il consumo è minimo, in attività a 3,3V non credo superi i 4-5mA (il tiny85, fratellino piccolo, a me fa 2,1mA) ma oviamente dipende da cosa gli fai fare; se poi hai la possibilità di implementare la modalità sleep i consumi scendono a livelli ridicoli, da 0,05µA a 2µA.

Intanto grazie per i complimenti, vediamo di rispondere alle domande.

reizel:
molto bella! ora pero' ti faccio le domande da ignorante :stuck_out_tongue:
come si chiama il chip che andiamo a programmare? attiny84 cosa?

Attiny84 "quello_che_vuoi", nel senso che ci puoi mettere qualsiasi versione dell'Attiny84 (Attiny84, Attiny84V e Attiny84A). Puoi anche metterci gli Attiny24 e Attiny44, se è per questo, basta cambiare la board virtuale.

quanti i/o ha? quanta memoria? velocita'?

11 I/O che puoi usare tutti come pin digitali. Di questi pin 4 hanno funzionalità PWM e 8 come ingressi analogici.
La Flash è di 2/4/8 KB a seconda se usi il 24/44/84. Il clock con oscillatore interno può essere impostato a 1 MHz o 8 MHz. Per configurazioni con clock esterno puoi arrivare a 10 MHz col modello Attiny84V, a 20 MHz con l'Attiny84 e Attiny84A. Però perdi 2 pin per il quarzo.

quanti comp esterni servono poi per farlo andare in standalone?

In pratica serve solo la R da 10K di pullup sul pin di reset, se metti l'oscillatore interno.

che costo avrebbe il solo at? (considerando che con 6-7eu ti fai un standalone 328 col quarzo a 16Mhz)

L'Attiny84A-20PU da RS costa 2,72€ + IVA al pezzo, o 2,12€+IVA cad. per 5 pezzi.

Sai qual'è la vera differenza fra l'USBtinyISP e la V-USB? Il firmware! Mentre quest'ultima cerca di replicare un convertitore USB/seriale, l'USBtinyISP fa un pò di quello che fa lo sketch ArduinoISP, emula cioè via software un programmatore. Tutto qui. Esso prende i dati dalla porta USB e li riversa sul micro da programmare tramite configurazione ISP. Esso usa infatti i pin MOSI/MISO/SCK tale e quale l'ArduinoISP ad esempio. Quando arriva uno sketch dalla seriale, resetta il micro col pin RST, poi instaura una comunicazione ISP e riversa lo sketch direttamente nella flash. Ecco perché funziona sempre e bene. Non usa bootloader, non cerca di comunicare via seriale ecc... Fa solo il programmatore. E lo fa dannatamente bene.

Ovviamente mi associo ai complimenti ma da MCP2200-Friend ti faccio un appunto grande quanto una casa! Vero, è un SMD, e allora? il passo SOIC è 1,27mm, cioè la metà dello standard 2,54, non è una impresa saldarlo, anzi ci vuole 1 minuto di attenzione e basta. Vantaggi: hai l'USB vera, comunicazione seriale, occupa 1/3 del 2313. Svantaggi: richiede un quarzo, ma non è detto che con un oscillatore non funzioni lo stesso (da provare), basta. Al limite lo presaldi tu per chi non se la sente, tanto dopo la prima volta che stai lì a tentare lo salderai come tutti gli altri. Non credo che alla fine avrai una differenza di costi, anzi... Pensaci bene prima di passare alla "produzione"; questa idea che hai avuto potrebbe essere vincente, a maggior ragione se fornita di questa opzione.

Torno al discorso. Ma ne vale la pena per un micro che non ha la seriale HW? Inoltre tieni presente che così com'è posso usare la scheda da terminale programmandola direttamente con avrdude. Ma con l'MCP2200, come faccio? Mi appare una porta nell'elenco di quelle disponibili e poi con quella dialogo col micro, giusto?

reizel:
grazie menniti, quindi altre 2 cose, cosi' com'e' e' a 1Mhz @ 3.3v, se anche lo alimetassi con una lipo o tra 4,5-3volt funziona sempre bene?

Aspetta. Chiarisco un attimo. Così com'è la scheda lavora a 5V, che prende direttamente dalla porta USB come l'Arduino. Ho messo un regolatore aggiuntivo per offrire su un pin di uno degli header una tensione di 3,3V per comodità d'uso, qualora si stesse lavorando su un circuito che necessita anche di questa alimentazione. L'Attiny84 può lavorare da 2,7 a 5V senza problemi, l'Attiny84V e l'Attiny84A lavorano con tensioni minime di 1,8V. Ma non montati sulla schedina.

leo72:

reizel:
grazie menniti, quindi altre 2 cose, cosi' com'e' e' a 1Mhz @ 3.3v, se anche lo alimetassi con una lipo o tra 4,5-3volt funziona sempre bene?

Aspetta. Chiarisco un attimo. Così com'è la scheda lavora a 5V, che prende direttamente dalla porta USB come l'Arduino. Ho messo un regolatore aggiuntivo per offrire su un pin di uno degli header una tensione di 3,3V per comodità d'uso, qualora si stesse lavorando su un circuito che necessita anche di questa alimentazione. L'Attiny84 può lavorare da 2,7 a 5V senza problemi, l'Attiny84V e l'Attiny84A lavorano con tensioni minime di 1,8V. Ma non montati sulla schedina.

Leo, l'ho capito dopo, avevo fatto un bellissimo e lungo post con alcune nuove idee e risposte, lo mando e nel frattempo era caduta la linea, hai presente? ]:smiley: Mi sono così incazzato che non l'ho più riscritto

Quindi Tiny2313+firmware specifico rappresentano un programmatore, ma allora il t84 viene programmato via ISP?

Ma con l'MCP2200, come faccio?

MCP2200 = FT232RL = ATmega8u2 = Atmega16u2 hai una COM (o quello che è in Linux) e con quella dialoghi e se anche la seriale del T84 è virtuale credo che ti funzioni (ma qui tu sai com'è la cosa, se non funziona allora niente più obiezioni); e comunque se non rispondi alla mia domanda su come viene programmato attualmente il micro, non so dirti altro. Cioè se attualmente programmi col 2313 via ISP e NON c'è modo di programmare il T84 via seriale ovvio che l'MCP2200 non serve a nulla. Aspetto risp e poi aggiungo altre considerazioni.

Ora ti mando un virus, eh! :stuck_out_tongue_closed_eyes: Ti ho risposto:

leo72:
Sai qual'è la vera differenza fra l'USBtinyISP e la V-USB? Il firmware! Mentre quest'ultima cerca di replicare un convertitore USB/seriale, l'USBtinyISP fa un pò di quello che fa lo sketch ArduinoISP, emula cioè via software un programmatore. Tutto qui. Esso prende i dati dalla porta USB e li riversa sul micro da programmare tramite configurazione ISP. Esso usa infatti i pin MOSI/MISO/SCK tale e quale l'ArduinoISP ad esempio. Quando arriva uno sketch dalla seriale, resetta il micro col pin RST, poi instaura una comunicazione ISP e riversa lo sketch direttamente nella flash. Ecco perché funziona sempre e bene. Non usa bootloader, non cerca di comunicare via seriale ecc... Fa solo il programmatore. E lo fa dannatamente bene.