Hallo Leute, Ich möchte ein I2C-Bus auslesen und das Signal etwas überarbeitet seriell übertragen, um ein anderes System zu emulieren. Jetzt habe ich mir mal die Tinys und die kleinen Megas angesehen. Der kleinste mit TWI ist wohl der tiny24. Leider hat der aber keine UART-Schnittstelle mehr, oder doch? Im Datenblatt steht unter UART "USI" aber nicht ob und wie man daraus eine UART Schnittstelle machen kann. Der Mega8 ist mir schon ein bisschen zu groß. Gibt es Alternativen? Kann man aus dem USI UART-Daten rausschicken und wenn ja, wie? Danke im Vorraus fw
prinzipiell kannst du sowohl I2C als auch UART per Software machen, dann bist du ganz frei in der Wahl des Controllers. I2C brauchst du eigentlich gar nicht als Hardwareeinheit, zumindest als master ist das sehr einfach, gibt genügend Codebeispiele dafür.
das könnte stimmen, aber ich würde es mir gerne einfach machen ... schon desshalb, weil das Ganze ein gewisse Stabilität in der Funktion haben sollte und weil mir die Zeit fehlt... Ich muss mir das mit dem I2C erst mal zu Gemüte führen. Ich hab noch nix damit gemacht.
ein Softwarelösung ist nicht instabiler als eine Hardwareeinheit. Allenfalls gibt es Komplikationen mit dem Timing der Datenübertragung (bei I2C irrelevant), ansonsten hat es den Nachteil, dass die CPU mehr beschäftigt ist, als wenn Aufgaben an eine Hardwareeinheit delegiert werden. Aber ein Auslastungsproblem kann ich bei dir kaum erkennen. Nimm also irgendeinen, der eine UART hat, dann hast du den kritischeren Teil in Hardware erledigt.
Hi, das USI ist gerade dazu da, sowohl einen auf UART als auch auf TWI zu machen. Schau dir dazu die Appnotes 307 und 310 von Atmel an. Die Komplexität des Codes liegt jeweils zwischen reiner Hardware und reiner Softwarelösung, ist ja klar ;) Da du natürlich nur ein USI hast, muss eine Funktion ganz in Software gemacht werden, aber dazu gibt es auch Codebeispiele z. B. Appnote 304 für einen Software-UART (aber mach lieber den TWI in Software, wie CrazyHorse empfiehlt). Gruß
vermutlich ist die Idee, einen Tiny zu nehmen und UART + TWI in Software zu machen nicht die Schlechteste. Ich glaube ich hebe mir das als Beta-Plan auf wenn ich mich mal langweile. Die Zeit, die ich brauche um die Software zu tippeln dürfte den materiellen Mehraufwand eines uCs der beide Schnittstellen zur Verfügung stellt bei weitem übersteigen.
Tja, dann nimm halt den Mega8. Als etwas kleinere Variante gibts noch den Tiny2313. Dessen USI ist aber irgendwie kein richtiges I2C-Interface, ich bin schon mal dran gescheitert. Hatte dann auch keine Lust mehr - copy & paste, ruckzuck war die Software-I2C fertig. Wenn du die Routinen selbst schreiben müsstest, würde ich deine Bedenken ja verstehen...
Hi flyingwolf, schau dir mal die ATmegas 48/88/168 an. Die sind schön klein, haben TWI und USART und kosten fast nichts. Gruß Sascha
Ich trau den Codebeispielen von Atmel nicht mehr über den Weg, damit habe ich mich sooo angeschmiert, das brauche ich nicht noch einmal. Würdest Du mir denn Deine getestete und für gut befundene Software zur Verfügung stellen?
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.