ISP und I²C am Tiny2313

Gast #179837
Hi Leute,

bei meinem Projekt möchte ich die I²C Schnittstelle des Tiny nutzen und
das ganze über ISP programmieren. Nun liegt aber der I²C Bus mit auf den
ISP Pins (alles auf den USI Pins). Dadurch habe ich beim proggen 4,7k
PullUps auf MOSI und SCK und natürlich das EEPROM am Bus.

Kann das überhaupt funktionieren und wie groß ist das Risiko das ich
Proc und/oder EEPROM verbrate, wenn ich es einfach mal probiere?

Da ich auch einen seriellen ADC einsetze, könnte ich auch den an die
Hardware USI hängen und das I²C in Software realisieren, ob das besser
wäre?


Danke

Dirk
Gast #179838
Falls es für jemanden von Interesse ist:

Das ISP wird durch die PullUps und das EEPROM nicht gestört. Ob das
EEPROM vom ISP beschädigt wird kann ich noch nicht sagen, weil es nicht
so recht mit dem USI klappen will...
Gast #179839
Update 2:

Von der Verdrahtung her gibt es keine Probleme die Teile so zusammen zu
löten. Alles was passiert ist, dass der I2C Bus nicht funktioniert,
solange ein Programmiergerät angeschlossen ist.

I²C funktioniert jetzt auch, aber nicht per USI! Die
Hardware-Schnittstelle habe ich nicht zum laufen bekommen und bin auf
die Lib von P. Fleury ausgewichen.


Also bleibt eine Frage:

Wer hat einen funktionierenden Code für TWI über das USI des
Tiny2313!?


Grüße

Dirk
Gast #179840
Wenn das USI das gleiche, wie beim Tiny26 ist:

Es ist quasi zu nichts richtig zu gebrauchen, weder als I2C noch als
SPI.

Single-Master I2C ist in Software viel einfacher.
Für Multi-Master oder Slave I2C nimmt man den Mega8.


Peter
Gast #179845
Ich kenne das Beispiel.
Aber 16 mal "out USICR,r16" hintereinander zu schreiben, ist
irgendwie nicht mein Verständnis von effizienter Programmierung.


Ich wüßte jetzt auch keine Anwendung, wo die SPI-Geschwindigkeit sich
merkbar auf die Gesamtgeschwindigkeit auswirkt.


Wenn man etwas optimieren will, muß man zuerst ermitteln, wieviel der
CPU-Zeit es überhaupt verbraucht.
Es macht z.B. keinen Sinn eine Routine in der Geshwindigkeit zu
verdoppeln, wenn das nur eine Änderung von 1% auf 0,5% CPU-Zeit
bewirkt.
Die frei werdenden 0,5% kann man dann höchstens in der Pfeife rauchen.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.