Forum: Compiler & IDEs ISP und I²C am Tiny2313


von Dirk (Gast)


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

von Dirk (Gast)


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

von Dirk (Gast)


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

von peter dannegger (Gast)


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

von Dirk (Gast)


Lesenswert?

Das USI wird im Tiny26, Tiny2313 und mega169 verwendet.

Ich hatte halt gehofft dadurch Platz im Flash zu sparen...

von A.K. (Gast)


Lesenswert?

@peter: Was stört dich am SPI via USI? Ich benutze es für ein Nokia 3310
Display am Tiny2313, ohne Probleme.

von Peter D. (peda)


Lesenswert?

@A.K.

es bringt keinerlei Nutzen.
Der Code ist genauso groß, als wenn man es komplett in Software macht.


Peter

von A.K. (Gast)


Lesenswert?

Grösse ja, aber Tempo? Ich möchte mal sehen, wie Du SPI per Software mit
Bitrate Clk/2 realisierst. Bei I2C kein Thema, bei SPI bisweilen schon.

von peter dannegger (Gast)


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

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.