INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mega: Hardware i2c bus speed (Wire.) verändern?
11.10.2014, 13:35 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2014 14:29 von HaWe.)
Beitrag #9
RE: Mega: Hardware i2c bus speed (Wire.) verändern?
Lego verwendet bitbang-i2c über einen AVR-Coprozessor.
Beim Sensor handelt es sich um den ganz normalen Lego Ultraschall-Sensor, der in den Mindstorms-Kits enthalten ist.
Und ja, es stimmt, der US-Sensor ist alles andere als Standard-i2c-konform.
Unter anderem hat er eingebaute 83k Pullups (edit: ) und man braucht wohl extra Wait States und Restarts.

Die Pin-Verdrahtung ist korrekt, inkl. zusätzlicher Arbeits-VCC 9V, und ich verwende dieselben Kabel mit RJ11-Stecker.





ich bekam jetzt gerade einen Hinweis von Andy Shaw, einem echten Programmier-Profi, der auch das komplette Java-Betriebssystem samt VM für Lego NXT und EV3 entwickelt:
Zitat:I'm not surprised as I mentioned above the Lego i2c code (on both the NXT and EV3) adds extra wait states and an extra restart specifically for the Ultrasonic sensor. I doubt if any hardware i2c master will talk with it.
(...)
You can't add the extra wait states or the restart if using hardware i2c. See the following (or simply google Arduino Lego Ultrasonic) http://blog.tkjelectronics.dk/2011/10/nxt-shield-ver2/





das ganze ist mir aber denn doch im Moment ein wenig zu hoch, denn ich verstehe das Software-bitbang absolut nicht, und darauf läuft es jetzt wohl hinaus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.06.2016, 20:58 (Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2016 20:58 von Mathias.)
Beitrag #10
RE: Mega: Hardware i2c bus speed (Wire.) verändern?
(10.10.2014 23:04)SkobyMobil schrieb:  Hallo,
in der Lib "twi.c" kannst Du dran drehen.

Suche nach:

// initialize twi prescaler and bit rate
cbi(TWSR, TWPS0);
cbi(TWSR, TWPS1);
TWBR = ((F_CPU / TWI_FREQ) - 16) / 2;

lese das:

/* twi bit rate formula from atmega128 manual pg 204
SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR))
note: TWBR should be 10 or higher for master mode
It is 72 for a 16mhz Wiring board with 100kHz TWI */

oder in der "twi.h"

#ifndef TWI_FREQ
#define TWI_FREQ 100000L
#endif

Ich würde erst die "twi.h" probieren...
Gruß und Spaß
Andreas

Der Thread ist ein bisschen alt, aber wer trotzdem den Takt ändern will, muss die twi.* nicht verändern.

Man kann es auch direkt im Haupt-Sketch machen.
Das sieht dann etwa so aus:

Code:
void setup(void) {
    long CPU_FREQ = 12000000L;
    Serial.begin(115200);
    Wire.begin();
    TWBR = ((CPU_FREQ / 200000L) - 16) / 2;
    //    TWBR = ((CPU_FREQ / 400000L) - 16) / 2;  // 400KB/s
    //    TWBR = ((CPU_FREQ / 100000L) - 16) / 2; // 100KB/s default
}

Quelle: http://www.darc.de/fileadmin/_migrated/c...Lib_02.pdf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.07.2016, 20:09
Beitrag #11
RE: Mega: Hardware i2c bus speed (Wire.) verändern?
Es geht noch einfacher, es ist bei Wire eine fertige Funktion dafür eingebaut.
Code:
    Wire.begin();
    Wire.setClock(400000L);
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino MEGA + EthernetShield W5100 und weiteres SPI Device ? Stargazer 12 569 11.10.2017 19:03
Letzter Beitrag: Tommy56
  Mega 2560 Visualisieren binderj1 11 523 01.10.2017 19:07
Letzter Beitrag: Tommy56
  Logger am Mega 2560 Wolfgang50 3 307 13.09.2017 10:53
Letzter Beitrag: Tommy56
Wink Arduino TFT Display MEGA 2560 Samsuino 47 3.636 24.07.2017 12:45
Letzter Beitrag: Harry Hirsch
  Treiberprobleme Arduino Mega 2560 DonAthello 19 1.614 14.07.2017 10:14
Letzter Beitrag: SkobyMobil
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 16 1.260 26.03.2017 14:15
Letzter Beitrag: oOSpikeOo
  Mega 2560 und deren RX/TX alpenpower 17 4.705 06.03.2017 13:25
Letzter Beitrag: Franz54
  Einstieg Arduino Mega Markus0815 14 1.615 08.01.2017 13:40
Letzter Beitrag: Tommy56
  Arduino Mega startet immer wieder neu Badger1875 9 1.671 26.12.2016 17:56
Letzter Beitrag: Badger1875
  2 Mega 2560 R3 unterschiedliche Firmware? Gonmaus 2 622 11.12.2016 13:40
Letzter Beitrag: P.Martin

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste