PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega als slave in I2C Bus



sato
10.04.2009, 16:01
Hallo
Will hoffen das mir jemand von Euch Experten erklären kann.
Ich möchte paar bytes per I2C von einen fremden board die mit einen
ARM controller ausgestattet ist, mit einen ATtiny2313 empfangen.

1 - Also der ATtiny sollte als slave arbeiten weil er nicht antworten
braucht. korrekt?
2 - Muss die I2C Verbindung an den PB5 und PB7 pins in ATtini2313
benutzen?
3 - Die slave Adresse kann freilich definiert werden? Da nur ein slave an
den Bus hängt kann eine Nummer von &H01 bis &HFF dafür benuzt
werden?
4 - Ist der ATtiny2313 dafür empfehlenswert?
5 - Brauche ich dafür die kostenpflich TWI Library von MCS? Habe gelesen
das einen Software Lösung von Picknik die ohne MCS Library
auskommt?
6 - Wo kann ich Beispiel code für diesen Zweck ansehen um daraus zu
lernen?
7 - Das I2C Protokoll kann nur Bytes senden, keine Word, Longs oder
Integer?

Danke für Eure Hilfe
Gruss
Sato

Felix H.
10.04.2009, 16:33
Hi,

hast du dir das schonmal angeschaut?

https://www.roboternetz.de/wissen/index.php/Bascom_Soft-I2c_Library

-tomas-
10.04.2009, 23:31
als Einstieg ist die Atmel Application Note AVR312 "Using the USI module as a I2C slave" gut geeignet

die Bascom Portierung findest Du hier:
https://www.roboternetz.de/wissen/index.php/Bascom_und_USI-Kommunikation#USI-I2C-Slave
bzw. direkt
https://www.roboternetz.de/phpBB2/viewtopic.php?t=25058 Post vom 11.01.2009
Das vollständig interruptgesteuerte Programm belegt 476Byte im Speicher eines ATtiny25

sato
11.04.2009, 01:18
Hallo
Das ist mit Bascom etwas zu kompliziert, darum habe ich mich jetzt für einen PIC controller entschieden, da ist es leichter die I2C kommunikation zu nutzen und ich habe auch mehr Erfahrung als mit Atmega.
Ich habe mein letztes Projekt mit einen Atmega2561 umd Bascom gemacht und es gefällt mir sehr gut, aber mit I2C im Bascom habe ich mich noch nicht richtig anfreunden können, aber das kommt bestimmt noch.

Danke für Eure Hiilfe

Grüsse
Sato