Archiv verlassen und diese Seite im Standarddesign anzeigen : i2c-slave adresse vergeben
hallo
wie kann ich einem Atmega 8 eine adresse zu teilen die ich dann als Slave benutzten kann??
gruß
patrick
tristate
31.10.2005, 17:16
einfach die adresse ins twar schreiben !?
hhmmm..........wie geht das?
einfach die adresse ins twar schreiben !?
Im Prinzip ja, sprach Radio Eriwan, aber wie das mit Radio Eriwan so ist... :-).
Um die AVRs unter Bascom als Slave nutzen zu können, braucht man zunächst die Add-On Library, die sowohl Soft- als auch Hardware Slavebetrieb unterstützt.
Für Hardware TWI sieht die initialisierung dann z.B. so aus:
Config Twislave = &H70 , Btr = 1 , Bitrate = 400000
Beispiele finden sich auf der MCS Seite, in der Hilfe und auch auf meinen Seiten.
Grüße
Henrik
glaube ich habe mich verlesen, was ist den genau eine library
gruß
patrick
glaube ich habe mich verlesen, was ist den genau eine library
Das ist eine Bibliothek, ein Modul, schlagmichtot... welches entweder bei Bedarf vom Compiler automatisch eingebunden wird (wie die I2C-Slave Library), oder händisch am Anfang des Codes mit $lib "name.lib" eingefügt wird. In beiden Fällen muss diese Datei im LIB Verzeichnis von Bascom stehen.
Die hier erwähnt Bibliothek muss zusätzlich bei MCS käuflich erworben werden.
Wie ich dieser Frage meine entnehmen zu können, hast Du noch kaum Erfahrung mit dem Programmieren. Da ist das Slavehandling unter Bascom evtl. nicht gerade die beste Idee um Erfahrungen zu sammeln. Es erfordert einiges an Vertrautheit mit dem I2C-Protokoll. Also erst mal TWI/I2C auswendig rauf und runter büffeln.
In Assembler geht das auch anders, einfacher wird die Sache aber nicht, ganz im Gegenteil.
Grüße
Henrik
ich werde mich dann wahrscheinlich dann auf spi spezalieseren habe auch gemerkt das twi sehr langsam ist.
danke für die antworten
gruß
patrick
tristate
03.11.2005, 01:27
na ich weiss ja nicht was du an daten senden/emfangen willst aber 400khz is ja wohl nicht gerade langsam...
mfg
ist aber langsamer als spi habe ich erfahren und wenn man will kann man ja auch mal bestimmt beides nutzen wie ich das vorhabe wegen dem ds1621
gruß
patrick
SprinterSB
03.11.2005, 11:26
Kommt drauf an, was man haben will...
Die 400kHz beim IIC ist die Frequenz von SCL. Um ein Byte zu senden ist man dann bei maximal 50kHz. Für 1 Byte vom Slave abzufragen kann man 4 Bytes Transfer rechnen.
SlaveAdresse - DatenAdresse - SlaveAdresse - Datum
Wobei das günstiger wird, wenn man mehrere Bytes abfragt. Damit ist man bei rund 12 kb/s bzw 80µs pro Transfer.
Mit SPI kommt SCK mit 8MHz rüber bei 16MHz MCU-Takt. AVR als SPI-Sklave verkraftet aber leider nicht so viel, da wären es nur 4MHz. Das wär gegenüber IIC schon mal Faktor 10.
Wobei die Software im SPI-Sklaven fix genug sein muss, sonst verpasst man was. Beim IIC mit TWI kann das nicht passieren, weil der Sklave den Bus bremsen darf via SCL-Stretch.
joar dann brauch man aber auch wieder rum die i2c-slave libary.
wollte die eigentlich nicht kaufen.
gruß
patrick
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.