Pages: 1 ... 13 14 [15]   Go Down
Author Topic: Tabella MCU ATMEL - CERCASI CORE per Arduino  (Read 10293 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9477
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Astrobeed: forse mi sfugge un passaggio: se stiamo discutendo del costo del solo PCB, significa che ti si potrà chiedere il solo PCB e, al limite qualche altro componente come il PIC (per chi non voglia/possa programmarselo), perché qui si discute di 25 euro o quel che è? C'è un qualche passaggio in cui hai detto che produrrai e venderai solo PCB completamente montati?

Come detto fin dall'inizio sarà possibile prendere il solo pcb, il pcb e il pic oppure il pcb più il kit di tutti componenti da montare, non mi saltate fuori che volete solo il pcb, tre resistenze e un condensatore perché è la volta buona che vi ci mando sul serio  smiley-grin
Come ultima opzione la possibilità di avere la scheda già montata completa di ATmega1284 con il bootloader precaricato, ovviamente quest'ultima opzione sarà gravata da un costo aggiuntivo per il lavoro, ed è questa che costerà sensibilmente meno della UNO, in tutti i casi fino a che non ho lo schema definitivo è prematuro parlare di costi perché è impossibile determinarli.

Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12571
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Personalmente, essendo dotato di un mare di componentistica, mi sto attrezzando per il mondo smd, quindi mi serviranno PCB e PIC (lungi da me l'ide di mettermi a programmare PIC smiley-sweat), poi si vede, d'altra parte un kit con un costo ragionevole io lo prenderei comunque, senza stare lì a vedere se ho tutti i pezzi.
Va bene, l'importante è che la cosa ora parta, poi andando vedendo.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Personalmente, essendo dotato di un mare di componentistica, mi sto attrezzando per il mondo smd, quindi mi serviranno PCB e PIC (lungi da me l'ide di mettermi a programmare PIC smiley-sweat), poi si vede, d'altra parte un kit con un costo ragionevole io lo prenderei comunque, senza stare lì a vedere se ho tutti i pezzi.
Va bene, l'importante è che la cosa ora parta, poi andando vedendo.
Mi associo a Michele, ho tutto, stazione ad aria calda per smd etc.. quindi mi basterebbe solo il PCB e il pic pre/programmato...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Offline Offline
God Member
*****
Karma: 0
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il vero ostacolo secondo me è il porting di tutte le librerie arduino, che non sarà carto una passeggiata, anche perchè non so quanti abiano le conoscenze necessarie (io sinceramente non credo di farcela)

Gli interventi di lesto ogni tanto mi mettono un filino d'ansia smiley
Che è 'sta storia?
Mi spiegate, per sommi capi, perché le librerie non dovrebbero funzionare?
Personalmente immaginavo che, rispettando la pin map della 2009, se metto un rtc su a4 ed a5... funziona senza problemi.
Idem per una ethernet shield, dove al massimo c'è da dichiarare il pin SS come sulla mega.
Qualsiasi altra cosa, basta inizializzare il pin giusto.
Quindi non ho capito a cosa si riferisce lesto, dov'è questo inconcepibile ostatolo.

Detto ciò, sulla scheda, per favore non andateci pesante con gli smd... che qua non tutti hanno una stazione saldante ad aria calda smiley
Non schifate i through hole, che tanto la foratura la fa il service smiley-razz

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 331
Posts: 22785
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Come ho già detto anche io, non è detto che tutte le librerie necessitino di porting. Spesso funzioneranno senza modifiche, altre volte potrebbe bastare adattare appunto i pin utilizzati altre volte, penso casi rari, dovrà essere rimaneggiata la lib (penso ad esempio a quelle lib che accedono a funzioni specifiche dell'HW del micro).
Logged


Offline Offline
God Member
*****
Karma: 0
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

(penso ad esempio a quelle lib che accedono a funzioni specifiche dell'HW del micro).

Mi fai un esempio? giusto per imparare qualcosa in più smiley
Logged

0
Online Online
Shannon Member
****
Karma: 131
Posts: 10468
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

(penso ad esempio a quelle lib che accedono a funzioni specifiche dell'HW del micro).

Mi fai un esempio? giusto per imparare qualcosa in più smiley

i nomi dei registri e dei timer, oltre che le specifiche di funzionamento possono essere diverse. Tutte le librerie arduino dell'IDE credo abbiano a che fare con l'HW, e ho dato per scontato il caso peggiore. però leo sta portando le librerie per gli at-tiny, che oltre a essere MOLTO differenti hanno anche molte meno risorse (cosa non facile da gestire)...

magari se ho un pò di tempo questo fine settimana, oltre a vedere il codice della swRTC da sistemare, dò un'occhiata approfondita alle librerie e stilo un piccolo resoconto di cosa possa andare storto... è da un pò che mi gironzola per la testa l'idea di sfruttare l'overloading dei metodi e l'ereditarietà per evitare il bisogno di mille ifdef all'interno delle librerie. Verrebbe un lavoro molto più pulito e portabile, sopratutto se si aggiongono librerie per la gestione di timer, interrupt, pwm(c'è già, ma credo sia da rendere più flessibile) e ADC.
In pratica essendo le librerie una facciata, basterebbe scrivere una nuova sottoclasse per micro specifico per ottenere un'immediato porting di tutte le liberie che sceglieranno di usare le nostre librerie core al posto di scrivere codice specifico (lavorare direttamente con i registri)
In oltre sarebbe da prendere la palla al balzo per mappare l'utilizzo dei timer in modo definitivo.
C'è da decidere se partire dalle librerie dell'IDE 1 o 23
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Purtroppo quello che vuoi fare tu non paga in termini di Ram e in generale di efficienza. Usare i metodi virtual in qualche occasione può tornare utile per riutilizzare codice, il problema principale qui però non è tanto il riutilizzo di codice, ma l'efficienza. Già di suo il core lavora come se avesse ram a iosa, per gli oggetti predefiniti, necessario per semplificare le cose al principiante (diciamo che il principiante non capirebbe che deve creare instanza di classe SerialHardware se vuole usare la seriale).

Lesto dai una sguardo a questa libreria dove si fa uso di metodi virtuali magari ti torna utile per fare qualche esperimento http://www.makehackvoid.com/sites/default/files/mhvlib-20111109.7z

Oppure se non hai come scompattare il .7z, cloni il repo con git: git clone http://git.makehackvoid.com/mhvlib.git

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9477
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Purtroppo quello che vuoi fare tu non paga in termini di Ram e in generale di efficienza. Usare i metodi virtual in qualche occasione può tornare utile per riutilizzare codice, il problema principale qui però non è tanto il riutilizzo di codice, ma l'efficienza.

Esatto, già adesso il core di Arduino pesa tantissimo in termini di risorse e cicli macchina, un esempio su tutti la digital read/write che richiede quasi 20 volte il tempo necessario alla stessa cosa fatta in C ANSI e occupa molta più flash e consuma molta più ram, figuriamoci cosa succederebbe ad insistere nell'aggiunta di classi e metodi C++.
L'ho detto in molto occasioni, e lo ripeto ancora, usare il C++ su una piccola mcu 8 bit è volersi fare male da soli, potete chiedere a chi volete, purché sia uno esperto di sistemi basati su mcu e piccoli micro, e tutti quanti vi diranno la stessa cosa, usate il C ANSI, o l'assembly a seconda dei casi, nessuno vi consiglierà l'uso del C++.
Ovvio che se uno deve solo accendere qualche led e fare cose semplici l'uso del C++ semplifica molto la vita del programmatore, ma non appena si cerca di fare qualcosa di complesso saltano fuori subito tutti i paletti e i limiti della cosa.
Logged

0
Online Online
Shannon Member
****
Karma: 131
Posts: 10468
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

capisco il vostro ragionamento di ricerca efficenza, però  anche vero che la mentalità arduino è quella di sprecare risorse in cambi di un codice più semplice e portabile possibile, e quindi mi pare giusto proseguire su questa idea. Già tutte le librerie sono classi, non credo ci sia una grossa perdita usando una classe astratta, tanto la scelta di quale sottoclasse utilizzare viene fatta in fase di compilazione per esempio:

Serial s
#ifdef atmega 328
s= Serial328
#endif

#ifdef atmega 1280
s = Serial1280
#endif
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
capisco il vostro ragionamento di ricerca efficenza, però  anche vero che la mentalità arduino è quella di sprecare risorse in cambi di un codice più semplice e portabile possibile, e quindi mi pare giusto proseguire su questa idea. Già tutte le librerie sono classi, non credo ci sia una grossa perdita usando una classe astratta, tanto la scelta di quale sottoclasse utilizzare viene fatta in fase di compilazione per esempio:

Potrebbe avere senso creare una classe serial astratta, solo nel caso in cui erediti una classe buffer e in questa fai scrivere e leggere nel buffer, il come lo decide la classe che eredita la classe astratta implementando i metodi virtuali messi a disposizione. Così ad esempio ti ritrovi con una classe astratta per la seriale che puoi usare anche per la connessione ISP o altro classe che necessità di un buffer circolare.

Di astrarre l'hardware non se ne parla minimamente, già il core fa un po del lavoro con ottimi risultati dal lato semplicità, pagando in termini di velocità, proprio dove più serve ci sono delle comode funzioni che leggono dalla flash prima di sapere con quale pin reale devono lavorare.

Per me è un bello esercizio di sperimentazione e vale solo per scoprire nel dettaglio cosa paghi e cosa guadagni.

Però cosa accade ai metodi che non usi, questi sono presenti nel hex ho il linker o objcopy purga ciò che non è necessario. Per il linker ricordo di avere visto che si porta a presso tutti i metodi anche quelli non chiamati dal tuo codice.

Provaci, apri post apposito che discutiamo, postiamo codice e vediamo dove si arriva.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

0
Online Online
Shannon Member
****
Karma: 131
Posts: 10468
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bhe ovviamente la classe astratta implementa i metodi comuni a tutte le implementazioni, e le astrazioni solo la parte necessaria.

Che poi si porti appresso tutti i metodi non è un problema, visto che vorrebbe dire che già la serial attuale fà questo lavoro.. bisogna partire dal presupposto che tutto è già classe in arduino, bisogna vedere solo quanto pesa il fatto di avere una classe astratta in più
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In verita mi pare manchi una classe buffer nel core, ci sono le librerie aggiuntive nel playground, se proprio di dovrebbe fare qualcosa è una classe buffer ereditarla nella serial e lasciare all'utente la possibilità di creare istanza di buffer.

Io non credo che una sola classe possa portare tutto sto overhead o consumo di ram. Se decidi di fare qualche esperimento apri un post perchè questo è diventato un frullato di frutta.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Pages: 1 ... 13 14 [15]   Go Up
Jump to: