ISP und I²C am Tiny2313

Gast #179837
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren