Hallo, ich suche einen I2C-IO-Expander(mind. 4 Ausgänge) mit mindestens 4 Bits zur freien Adressierung (benötige 10 Expander). Sonst keine Einschränkungen. Danke.
:
Bearbeitet durch User
Moin, vielleicht kannst Du einen ATtiny nehmen. Mit dem ATtiny2313A/4313 hättest Du 15 oder 16 freie Pins. Ev. ATtiny24/44/84 oder ATtiny25/45/85 mit dementsprechend weniger Pins gehen natürlich auch. Den Adressbereich kannst Du frei wählen. Die angehängte SW habe ich vor längerer Zeit bei http://www.avrfreaks.net gefunden. Ist aber nicht mehr da. Über den I2C-Bus liest und schreibst Du direkt den SRAM- Speicher. Nun brauchst Du nur noch ein kleines Programm, das die gewünschten Ein und Ausgänge in den SRAM schreibt bzw. liest. Auch PWM oder ADC liese sich so nutzen. Das Programm PowerMCU.asm läuft sehr zuverlässig. Gruß Carsten
Carsten-Peter C. schrieb: > Die angehängte SW habe ich vor längerer Zeit bei > http://www.avrfreaks.net gefunden. Das Programm alleine nützt ihm nichts. Das verwendet reichlich proprietäre Makros. Die sind sehr wahrscheinlich in der "avr.inc" deklariert, die vom Programm referenziert wird, die du aber nicht dazu gepackt hast. > Nun brauchst > Du nur noch ein kleines Programm, das die gewünschten Ein und Ausgänge > in den SRAM schreibt bzw. liest. Nein, braucht er nicht. Alle IO-Register sind auch im SRAM-Space gemapped und lassen sich mit den üblichen Instruktionen zum SRAM-Zugriff dort ansprechen. D.h.: wenn das Programm an sich funktioniert, kann man alleine damit auch auf die PORTx-, DDRx- und PINx-Register zugreifen. Deren Adressen im SRAM-Space entsprechen den Adressen im IO-Space + 0x20.
Moin, Seht euch mal den PCA9655E(9654E) an. Mit geeigneter Kombination der Adress-Pins (siehe Table 6) lassen sich bis zu 64 Adressen einstellen. Manko: 8/16-bits https://www.onsemi.com/pdf/datasheet/pca9655e-d.pdf Vielleicht gibt es noch mehr von der Sorte mit weniger IO. Gerhard
:
Bearbeitet durch User
Ob S. schrieb: > Das Programm alleine nützt ihm nichts. Das verwendet reichlich > proprietäre Makros. Die sind sehr wahrscheinlich in der "avr.inc" > deklariert, die vom Programm referenziert wird, die du aber nicht dazu > gepackt hast. Moin, Du hast Recht, das sind nur die Treiber für den Slave I2C. Die Dateien "tn2313def.inc" und "avr.inc" findet man leicht im AtmelStudio und müssen in das Verzeichnis kopiert werden, wo Deine .asm sich befindet. Danach lassen sich die Daten aus und vom SRAM lesen und beschreiben. Ob auch andere Bereiche adressierbar sind, habe ich nicht probiert. Es sollte einfach sein, einen Port abzufragen und ins SRAM zu schieben und umgekehrt. Wenn Du nicht damit zurecht kommst, kann ich Dir gerne behilflich sein. Gruß Carsten
Beitrag #7638186 wurde vom Autor gelöscht.
Carsten-Peter C. schrieb: > Du hast Recht, das sind nur die Treiber für den Slave I2C. Das war ja soweit auch richtig und gut. > Die Dateien "tn2313def.inc" und "avr.inc" findet man leicht im > AtmelStudio Die "tn2313def.inc" ja, das ist das, was Atmel/Microchip liefert. Aber die "avr.inc" nein. Die ist proprietär, also von irgendwem selbst geschrieben. Wahrscheinlich von dem, der die darin deklarierten Makros dann in seinem Programm genutzt hat. Wer auch immer sie geschrieben hat, sie ist jedenfalls nicht im Lieferumfang irgendeines AtmelStudios. > Wenn Du nicht damit zurecht kommst, kann ich Dir > gerne behilflich sein. Ich komme locker damit zurecht, sogar ohne die fehlenden Makros. Ich kann mir leicht zusammenreimen, was darin stand. Aber der TO, dem du diese Lösung empfohlen hast, der kann das vermutlich nicht. Der braucht sehr wahrscheinlich diese "avr.inc", um überhaupt eine Chance zu haben, damit etwas anfangen zu können. Also wenigstens so weit, dass er ein Programm überhaupt erstmal assembliert bekommen würde. Ob er dann in der Lage sein würde, den funktionierenden Slave auch sinnvoll bezüglich seiner eigentlichen Zielstellung zu nutzen, ist schon wieder eine andere Frage. Die Software würde es aber immerhin hergeben.
Moin, ich habe den Treiber empfohlen, weil ich damit gute Erfahrungen gemacht habe. Ich nutze das Atmel Studio 6.2 (vorher 6.0) unter Win XP. Dort war die Datei noch zu finden. Ich nutze das für meinen Dimmer (Beitrag "4-fach Dimmer 2Stromstoßschalter Schaltuhr"), für das Datensammeln des Stromzählers, des Gaszählers und einer Temperaturregelung. Mann kann eben damit nicht nur Ports bedienen (PWM, AC, ADC, Counter, EEPROM, Uhr usw.). Wenn jemand daran Interesse hat, gebe ich es gerne weiter. Nur aufräumen werde ich das nicht. Da der TO sich nicht weiter gemeldet hat, wird das wohl nicht interessant für ihn sein. Gruß Carsten
Carsten-Peter C. schrieb: > ich habe den Treiber empfohlen, weil ich damit gute Erfahrungen gemacht > habe. Ich nutze das Atmel Studio 6.2 (vorher 6.0) unter Win XP. Dort war > die Datei noch zu finden. Nur deshalb, weil sie irgendwer irgendwann mal dorthin kopiert hat. Standardmäßig wurde sie von Atmel niemals ausgeliefert. Sieht man übrigens auch leicht am Inhalt: Das ist zu erheblichen Teilen offensichtlich von jemandem geschrieben worden, der eine Akku-zentrierte Architektur gewohnt war und Probleme hatte, die Vielfalt der Register eines AVR8 zu beherrschen. Der hat sich halt defs und Hilfs-Macros geschrieben, die es ihm erstmal einfacher machen. Und ziemlich schreibfaul scheint er auch gewesen zu sein. Viele der Makros dienen auschließlich dazu, Codezeilen einzusparen, verbergen aber dabei z.B. benutzte Register. Wer sowas will, soll besser gleich C verwenden... Warum sollte Atmel sowas liefern? > Ich nutze das für meinen Dimmer > (Beitrag "4-fach Dimmer 2Stromstoßschalter Schaltuhr"), für das Datensammeln > des Stromzählers, des Gaszählers und einer Temperaturregelung. Wie schon gesagt: daran, daß das funktioniert, bestand kein Zweifel. Um für den TO aber wenigstens möglicherweise nutzbar zu sein, braucht er halt diese "avr.inc", sonst bekommt er den Kram nicht übersetzt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.