Pages: [1]   Go Down
Author Topic: Comunicazione atmega328->attiny  (Read 961 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 139
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Come faccio a far comunicare (anche monodirezionalmente) un atmega con un attiny (x4 - x5)  o anche attiny->attiny ??
Ho seguito questa guida http://www.gioblu.com/tutorials/comunicazione/309-programmazione-seriale-di-un-attiny85-con-arduino-2009 (la parte riguardante la connessione seriale tra i 2 avr) ma non funziona nulla, ci sono errori e mancano parti di codice.... cercando un pò in giro non sono arrivato a nulla! Lo scopo finale è gestire un lcd con un attiny, passandogli stringhe di testo.
Premetto che non ho nessun problema a programmare gli attiny....
Grazie!

Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 112
Posts: 7115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In base al tipo di comunicazione che vuoi effettuare ci sono problematiche diverse.
Puoi far comunicare i due micro con la Seriale, la I2C o la SPI. Non tutte queste tipo di connessioni sono disponibili nativamente nei Tiny ma possono essere implementate via software.
Però mi sorge una domanda, sei sicuro di avere tutti i pin necessari per pilotare un display LCD e comunicare anche con un'altro micro?
Quale tiny vuoi usare? Credo che l'85 sia da escludere.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Full Member
***
Karma: 0
Posts: 139
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, con 2 pin piloto il driver per LCD, e con altri 2 spero di usare seriale/I2C/SPI, e con un attiny x5 me ne rimane uno libero.... oppure si va con dei x4, con 11 pin disponibili....
Ora mi studio I2C che mi pare la via piu semplice, e vedo che si riesce a fare...
Grazie!
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 112
Posts: 7115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Che tipo di LCD stai usando? Gli LCD che io conosco hanno bisogno di almeno 6 pin.
Comunque da quanto ho capito vuoi crearti un LCD pilotato dal tiny dove all'interno si trovano le librerie specifiche.
Quindi sull'Arduino, dove eviteresti di mettere le librerie del display, ti servirebbe comunque un metodo per comunicare i dati.

Vediamo se passa di qui Leo72. E' lui l'esperto dei tiny.  smiley-mr-green
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Full Member
***
Karma: 0
Posts: 139
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lcd 44780 compatibile (16x2 o 20x2), e come driver un 74LS164, bastano 2 pin e la libreria ShiftRegLCD....
Per la comunicazione tra gli AVR opterò per I2C, sto facendo prove con tinywireS e pare funzionare (attiny84<->attiny45)
Sto costruendo un computerino per la moto (in realtà è gia montato da marzo) ma ho difficoltà a gestire contagiri, contakm e LCD (oltre a contaore, temperatura motore, uscita per ventola radiatore e altre 3-4 cosette), per cui visto che non è gran lavoro mettere un secondo attiny, sto riprogettando tutto per la seconda moto! Dimenticavo, la prima versione, con attiny84, è al limite, con lo sketch ottimizzato al massimo delle mie possibilità, utilizzo 8152byte su un totale di 8192.... questo sacrificando testi e altre cosette...
Logged

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

Per l'I2C sui Tiny devi usare questa libreria:
http://arduino.cc/playground/Code/USIi2c
Funziona sia con i micro ad 1 che ad 8 MHz.

Alla pagina linkata trovi anche una lib appositamente scritta per comunicare con display LCD via I2C
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 139
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie leo, le prove le sto facendo appunto con quelle librerie....
Logged

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

Allora non ho capito il problema... cos'è che non funziona?  smiley-sweat
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 139
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora non ho capito il problema... cos'è che non funziona?  smiley-sweat

Il problema pare risolto.... non sapevo come far comunicare 2 AVR, e con I2C è possibile! Ora devo solo organizzare le idee e buttare giu qualcosa di funzionante!
Logged

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

OK.
Ricordati le pull-up sulle linee I2C se la distanza è maggiore di una decina di cm dato che quelle interne all'Atmega328 (attivate in automatico dal core di Arduino) potrebbero non bastare.
Logged


Pages: [1]   Go Up
Jump to: