Forum: Mikrocontroller und Digitale Elektronik I2C / TWI -> UART welcher uC?


von flyingwolf (Gast)


Lesenswert?

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

von crazy horse (Gast)


Lesenswert?

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.

von flyingwolf (Gast)


Lesenswert?

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.

von crazy horse (Gast)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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ß

von flyingwolf (Gast)


Lesenswert?

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.

von crazy horse (Gast)


Lesenswert?

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...

von Sascha (Gast)


Lesenswert?

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

von flyingwolf (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.