PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C-Bus macht bei 16Mhz takt Probleme



tliebl00
05.03.2005, 20:22
Hallo,
ich habe mein RN-Speak mit dem Mega8 Board via I2c-Bus verbunden.
Wenn ich den internen Takt 1Mhz nutze funktionierts , wende ich den 16Mhz Oszillator ext. an, macht der I2c-bus nicht mehr mit. (fusebytes geändert).
hat jemand ne Idee, wie das Symptom zu deuten ist?
Tom

tobimc
05.03.2005, 20:39
HI

Nutzt du den I²C als Softwareemulation, oder über die Hardware?

Bei der Bascom'schen I²C-Variante hab ich auch manchmal (öfters, immer) Probleme.

Ganz liebe Grüße,
Tobi

tliebl00
05.03.2005, 23:11
Hallo Tobi,
danke für die schnelle Reaktion, ich nutze die Softwareansteuerung ( mit I2Cinit usw.. Da ich noch sehr neu bin in dieser Materie tappe ich aber noch im Dunklen. Ich schlage mich so mit bascom rum, aber die Ergebnisse sind alles andere als befriedigend. ich hab jetzt mal mit dem Oszi auf die SDA und SCL Ports geguckt, und habe festgestellt, daß der I2C-Takt sich ja um ein Vielfaches erhöht, wenn ich den externen Takt (8Mhz)des MPU nutze. Aber auch bei 1 Mhz gibt es massig Probleme, der RN-Speak macht leider nicht immer das gleiche. Ich weis jetzt leider nicht mehr weiter. Das "Beste" ist, wenn ich (im 1 Mhz Modus) den RN-Speak ansteuere (mit i2csend) ist auch ein Unterschied vorhanden. 1. wenn der ISP am Mega8Board angeschlossen ist, ist die Funktion ok. 2. Wenn kein ISP-Kabel dran ist, spricht der RN-Speak nur den ersten Textbaustein. Hast Du noch ne Idee?.Im Forum wird öfters davon gesprochen, eine neue I2C.lib downzuloaden, aber ich finde nix zum dl.
Ich hätte noch ne Frage, wie bekommen es die kollegen im Forum hin, die Listings in so schönen schmalen Streifen in ihr Posting einzubauen?
Liebe Grüße zurück
Tom

tobimc
08.03.2005, 17:23
HI Tom!

Sorry, dass ich dir erst so spät antworte!! Habe den Thread etwas aus den Augen verloren...

Warscheinlich hast du schon ne Lösung... :oops:

Dass sich SCL und SDA bei höherem Systemtakt schneller werden, ist klar, weil der AVR einfach schneller läuft.
Das kannst du mit
$crystal = 10000000 'Quarz oder RC-Frequend in _Hz_

Mit dem ISP Kabel sast du? Hm.
Wie ist denn dein Versuchsaufbau genau?

Haben die Boards eine gemeinsame Masse? <- SEHR SEHR WICHTIG

Die korrigierte i2c.lib ist durchaus empfehlenswert, obwohl es bei mir damit nicht gerade besser ging.

Also Sorry nochmal und noch nen schönen Tag,
Tobi

tliebl00
08.03.2005, 18:21
Hi Tobi,
danke für die Nachricht. Bin froh, daß Du gepostet hast. Also zum Problem: Ich bin noch nicht weitergekommen, Das mit dem gemeinsamen gnd ist interessant. Ich habe nur die Verbindung durch das Buskabel. Muß ich morgen Abend ausprobieren. Ich bin jetzt in Augsburg Nachtschicht.
Melde mich morgen nochmal.
Liebe Grüße
Tom

tobimc
08.03.2005, 21:57
HI

Wie breit ist das Buskabel? Ist das nach RN-Norm?
Da wird nämlich die Masse gleich mitübertragen.

Das ist wichtig, weil sonst die Chips auf dem anderen Board
nicht HIGH von LOW unterscheiden könnten, bzw. nur schlecht.

Das wäre fast wie das "in der Luft hängen" der Pins...

Hast du mal nachgemessen (mit nem Oszi oder so) ob zu deinen Pins auch was rauskommt?

Ein I²C-Signal sieht so aus:
http://www.tobias-schlegel.de/PublicData/DOUBLE.png

So muss es aussehen.

Ganz liebe Grüße,
Tobi

Frank
08.03.2005, 22:29
Hallo,

also eigentlich ist der I2C-Bus in Bascom recht stabil, zumindest wenn man die neuste Lib oder die neuste Bascom-Version nutzt.
Allerdings muss ich zugeben das die Firmware RN-Speak 1.3 manchmal ein bisschen umständlich im Handling ist. Manchmal verharkt sich da was wenn die I2C-bytes nicht wie gewünscht serviert werden. Das liegt auch daran weil die Firmware relativ schnell von Soft- auf Hardware umgestellt wurde.

Es kommt aber in Kürze (in diesem Monat angedacht) noch eine optimierte Firmware für RN-Speak raus. Die wird dann unkritischer und auch von der Bedienung unkomplizierter sein.
Vielleicht wartet ihr dieses Variante mal ab.

Gruß Frank

tliebl00
08.03.2005, 22:32
Hallo Tobi,
alles RN-Norm, Der Witz ist, wenn das blöde Ding eine gute Minute hat, dann funzt es perfekt. Die Signale habe ich angeschaut, sehen so aus wie auf Deinem Oszillogramm. Ich bräuchte einen Logik-Analyser, um zu sehen, welche Werte der I2C-Bus schickt. Muß mal sehen ob es eine Möglichkeit gibt die Signale mitzutracen.
Herzlichen Gruß Servus
Tom

IngBo
09.03.2005, 05:45
Hallo tlieb,

wenn du die SCL-Takt bis max. 50kHz (nur zum Testen) einstellen kannst, dann kannst du folgendes als Tracer verwenden

https://www.roboternetz.de/phpBB2/viewtopic.php?t=7160

IngBo

tliebl00
09.03.2005, 10:51
Hallo zusammen,
erst mal Danke daß Ihr so fleissig mitpostet, aber ich glaub schon fast, das Problem liegt viel tiefer.
Ich werd versuchen mit dem Tool von IngBo mitzutracen, welche Signale auf dem Bus "rumgeistern".
meld mich wieder!
Gruß Tom

tliebl00
12.03.2005, 16:49
Hallo zusammen,
dies it ein Jubelschrei!! Dank der Unterstützung von Frank mit der neuen Beta-Software des RN-Speak incl. der Hardware-Modifikation (3 5Kohm Widerstände) bei Teilbestückung der ISD-Chips läuft er nun anstandslos.
Ein Superteil!
Danke an Frank und alle Anderen, die sich den Kopf zerbrochen haben
Herzlichen Gruß
TOM