Klasse Sache, hab den Link direkt mal in die Asuro-Linksammlung im RN-Wiki aufgenommen.
Hallo zusammen,
heute möchte ich meine I2C Porterweiterung für den ASURO vorstellen.
Da die TWI Pins beim Asuro leider anderweitig belegt sind, wird der I2C Bus mit Software emuliert.
Die Bibliothek ist komplett in Assembler geschrieben, stammt von Peter Fleury http://jump.to/fleury, und benötigt ca. 500 Bytes im Flash.
Als I2C Chip kommt ein Philips PCF 8574P zum Einsatz.
Damit stehen dem Asuro nun 8 freie quasi-bidirektionale Digitalports zur Verfügung.
Leider muß beim Einsatz dieser Erweiterung, wie schon bei der Ultraschall Erweiterung, auf den Linienfolger verzichtet werden. Allerdings funktionierte die Schaltung trotz versehentlich aufgestecktem Linienfolger Modul anstandslos.
Die Schaltung ist komplett auf einer normalen Asuro Erweiterungsplatine aufgebaut.
Der Entwurf der Schaltung stammt von Klaus Leidinger http://www.mikrocontroller-projekte.de/
Mehrere Erweiterungsplatinen können übereinander gestapelt werden (entsprechende Stapelleisten vorausgesetzt)
Für den I2C Bus werden die Pins PB2(ADC2) als SCL und PB3(ADC3) als SDA verwendet.
Optional kann auch noch der Interrupt Pin an INT0 verwendet werden.
Evtl. können auch andere Pins verwendet werden.
Näheres ist auch auf meiner Asuro Homepage http://asuro.pytalhost.de unter Erweiterungen zu finden.
Gruß Peter
Klasse Sache, hab den Link direkt mal in die Asuro-Linksammlung im RN-Wiki aufgenommen.
MFG Moritz
www.free-webspace.biz/update
Wow. Das gefällt mir richtig gut und ist auch sehr proffesionell.
@RCO: Darum hätte ich dich sofort gebeten, hättest du es nciht schon gemacht.
Mir gefällt die Idee also wie gesagt sehr gut und man könnte ja wenn man es braucht über nen Chip wieder die Sensoren anschließen. Dann dreht man sich zwar im Kreis, aber man gewinnt noch ein paar Ports.
Andun
www.subms.de
Aktuell: Flaschcraft Funkboard - Informationssammlung
Hallo,
danke für euer Lob.
Ich sehe die Erweiterung zuerst mal als Versuch, aus dem Asuro einen "richtigen" Roboter zu machen.
Als Erfolg sehe ich das ganze nämlich erst, wenn es gelingt, neben der Porterweiterung auch noch die Ultraschallerweiterung, einen neuen Liniensensor (über I2C) und evtl. noch ein LCD, gleichzeitig anschliessen und benutzen kann.
Dazu habe ich auch schon ein paar konkrete Ideen. Dazu später mehr. \/
Gruß Peter
ich frag mich bei den Asuros immer, wie viel man da noch drauf packen kann, wird sicher schnell eng. all zuviel gewicht trau ich dem auch nicht zu
Was mich schon die ganze Zeit wundert:
Warum kommt eigentlich niemand auf die Idee, eine 1-Drahtschnittstelle auf dem ASURO zu implementieren ?
Wenn man schon Pins sparen muss, dann reicht eine 1-Drahtschnittstelle für die bidirektionale Kommunikation.
Und im unten stehenden Schaltungsvorschlag erhält man dann gleich noch die volle Anzahl Portpins eines Atmega dazu.
Man kann dann alle Sensoren anschließen, inclusive dem Ultraschall.
Also:
IIC vergessen !
Und hier noch ein Rätsel: Wo kann man noch einen Pin beim Hilfsatmega sparen ?
Gruss,
stochri
Hallo stochri,
ich poste meine Antwort in dem extra Thread, den du dafür geöffnet hast.
Gruß Peter.
Hallo,
Mal ne Frage: Kann man die Pins einzeln auslesen und beschreiben so wie auch beim ATmega8...also Asuro?!
Wie definiert man das?
---Cruser12
also ich bin gerade dabei, auf dem asuro einen atmega32(master) und einen atmega 8(slave) über I2C zu realisieren! mal schauen obs was wird!
gruß josua
asuro!!!!!!!!!!!!!!!!!!! \/
ich dreh langsam durch...
ich hab keine ahnung was falsch ist...
#include "asuro.h"
#include "i2c.h"
#define PORTADRESSE 0x40
int main(void)
{
Init();
InitI2C();
while(1)
{
StartI2C(PORTADRESSE+ReadI2C);
StatusLED(GREEN);
}
return 0;
}
Wenn ich an meinem pin die spannung messe, sind da immer noch +-5V...?!
Kann mir BITTE jmd. helfen?
Cruser12
Lesezeichen