I2C / TWI -> UART welcher uC?

Gast #305216
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
Gast
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.
Gast
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.
Gast
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.
Gast
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ß
Gast
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.
Gast
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...
Gast
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.