Author Topic: Industrial Dual Analog In Bricklet 2.0 - Datenrate zu gering?  (Read 4215 times)

ts555

  • Newbie
  • *
  • Posts: 5
    • View Profile
Hallo,
kann es sein, dass in der FW-Version 2.0.1 der OSR-Wert immer auf 4096 stehen bleibt? In "mcp3911.c" werden neue Werte nur ODER-verknüpft:
Code: [Select]
case S_SET_RATE_R:
spi_fifo_read_fifo(&mcp3911.spi_fifo, &mcp3911.spi_fifo_buf[0], 3);

mcp3911.config = (uint16_t)(mcp3911.spi_fifo_buf[1] << 8) | mcp3911.spi_fifo_buf[2];

switch(mcp3911.rate) {
case SAMPLE_RATE_976_SPS:
mcp3911.config |= MSK_CONFIG_OSR_1024;
break;

case SAMPLE_RATE_488_SPS:
mcp3911.config |= MSK_CONFIG_OSR_2048;

break;

case SAMPLE_RATE_244_SPS:
default:
mcp3911.config |= MSK_CONFIG_OSR_4096;

break;
}
 
Nach "mcp3911.config = ..." habe ich testweise diesen Ausdruck eingefügt:
Code: [Select]
mcp3911.config &=~MSK_CONFIG_OSR_4096;Ansonsten ist die maximale Abstastrate wohl auf kleiner 610sps begrenzt, bzw. "S_GET_ADC" wird höchstens ca. alle 1,65ms aufgerufen (gemessen per Oszi).

Wenn man sich per Oszi ansieht, wie oft der ADC ausgelesen wird, fällt auch ein relativ starker Jitter der Abtastzeitpunkte auf. Dies lässt sich durch eine Erhöhung der SPI Baudrate des MCP3911 verbessern. Die Baudrate ist per Default auf 100kBd eingestellt. Kann diese problemlos erhöht werden? Bei meinen Tests funktionierte es mit z.B. 4Mbd noch ohne erkennbare Fehler.
   
 
« Last Edit: July 26, 2019, 11:30:32 by ts555 »

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.135
    • View Profile
Re: Industrial Dual Analog In Bricklet 2.0 - Datenrate zu gering?
« Reply #1 on: July 29, 2019, 14:53:26 »
Ich hab es mir nicht im Detail angeschaut, sieht aber in der Tat nach einem sehr unnötigen Bug aus!

Schaue ich mir schnellstmöglich an, gibt dann eine neue Firmware. Danke für den Hinweis :).
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.135
    • View Profile
Re: Industrial Dual Analog In Bricklet 2.0 - Datenrate zu gering?
« Reply #2 on: August 01, 2019, 14:21:45 »
Firmware Version 2.0.2 ist jetzt veröffentlicht und sollte das fixen.

Ich hab die Firmware in dem Zuge auf die neuen Coop Tasks umgestellt die wir in der bricklib haben (gab es zu dem Zeitpunkt als wir die Firmware geschrieben haben noch nicht)

Die Baudrate hab ich auf 200kHz erhöht um das Jitter zu verringern, wobei der Durchsatz bei 100kHz prinzipiell auch bereits gereicht hatte.

So sieht das jetzt aus:
976 SPS

488 SPS

244 SPS


Der etwas größere Block bei CLK sind immer die Daten und die kleinen Blöcke sind die Statusabfrage. Das sieht jetzt IMO ganz gut aus und bleibt auch langfristig gleichmäßig.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!