Sida 1 av 1

drivrutin accelerometer MC3419

Postat: 9 december 2023, 12:06:51
av nyfikenelektron
Har börjat studera manualen till accelerometern MEMSIC MC3419. Avsikten är att skriva en drivrutin så den går att använda från RPI Pico. Manualen finns tillgänglig från
https://www.memsic.com/Public/Uploads/u ... 1v1.2).pdf

Det här med samlingshastighet (Sample Rate SR) är inte helt lätt. Enligt listan över register i avsnitt 12.1, sätts den i register 0x08. Där ska de fem mest värda bitarna, bit 3-7, vara satta till 0. Men enligt avsnitt 12.5 ska bit 3 vara en etta.

På något sätt är kanske också register 0x30 inblandat, specifikt DEC_MODE_RATE.

Hur hänger detta ihop?

(edit: redigerat bort ett överflödigt ord)

Re: drivrutin accelerometer MC3419

Postat: 9 december 2023, 17:26:39
av ToPNoTCH
Fel i databladet.

Summering av register och detaljbeskrivning matchar inte.
Detta händer ibland i datablad, satt själv med en Audio Codec som led av samma problem i databladet för inte så länge sedan.

Du får prova dig fram om bit 3 skall vara ett eller noll.
Jag gissar på 1 eftersom man bemödat sig med en fotnot 2 på sidan och i mitt fall med codecen var översikten fel. Empirisk forskning med ett scenario :-)

Re: drivrutin accelerometer MC3419

Postat: 9 december 2023, 17:32:44
av hawkan
Ifall det underlättar så finns det nåt för arduino här https://github.com/mcubemems/mCube_mc34 ... MC34X9.cpp

Re: drivrutin accelerometer MC3419

Postat: 9 december 2023, 22:48:45
av Klas-Kenny
Ett alternativ till att testa/gissa är att kolla hur andra gjort.
Tex. i Hawkans länk. Kollar man den tillhörande .h-filen så finns följande:

Kod: Markera allt

typedef enum
{
  MC34X9_SR_25Hz            = 0x10,
  MC34X9_SR_50Hz            = 0x11,
  MC34X9_SR_62_5Hz          = 0x12,
  MC34X9_SR_100Hz           = 0x13,
  MC34X9_SR_125Hz           = 0x14,
  MC34X9_SR_250Hz           = 0x15,
  MC34X9_SR_500Hz           = 0x16,
  MC34X9_SR_DEFAULT_1000Hz  = 0x17,
  MC34X9_SR_END,
}   MC34X9_sr_t;
De har alltså satt bit 3 genomgående till en etta. Så förmodligen är det så det skall vara.

Re: drivrutin accelerometer MC3419

Postat: 9 december 2023, 23:51:09
av pi314
Jag tittade lite på det där Arduino-exemplet. Det är hex, så då är det väl bit 4 som är satt till ett?

Då har vi tre förslag.
1. Bit 3-7 = 0.
2. Bit 3=1 och bit 4-7 = 0.
3. Bit 3=0, bit 4 = 1 och bit 5-7 = 0.

Om Arduinoexemplet fungerar, så fungerar alternativ 3. Trots att det inte stämmer med något av alternativen i dokumentationen.

Jag skulle testa att göra som i Arduinoexemplet. Om det fungerar så är man väl lite tillbaka i detta? 8) :rofl
When all else fails, read the documentation!
/Pi

Re: drivrutin accelerometer MC3419

Postat: 10 december 2023, 00:48:12
av hawkan

Re: drivrutin accelerometer MC3419

Postat: 10 december 2023, 00:56:12
av pi314
hawkan:

Bra funnet!

Om man ska läsa manualen ska man alltså helst läsa hela... :roll:

/Pi

Re: drivrutin accelerometer MC3419

Postat: 10 december 2023, 01:03:24
av hawkan
Eller rätt version. Det står inte riktigt samma i denna som i den som det först länkades till.

Re: drivrutin accelerometer MC3419

Postat: 10 december 2023, 01:25:38
av pi314
Udda.

Den som först länkades till är daterad 2021/04.

Den som du länkade till är daterad 2020-07-13.

Som om 2020 är en bättre årgång för spec. till MC3419 än 2021...

/Pi

Re: drivrutin accelerometer MC3419

Postat: 10 december 2023, 14:12:18
av hawkan
Det är väl den senaste som gäller. Att bit 3 ska vara en 1'a. Men man får väl vara lite vetenskaplig och prova sej fram.
Det verkar som det kan ha med I2C och SPI hastigheten att göra enligt skillnaden i dokumenten.

Re: drivrutin accelerometer MC3419

Postat: 10 december 2023, 15:49:12
av Klas-Kenny
pi314 skrev: 9 december 2023, 23:51:09 Jag tittade lite på det där Arduino-exemplet. Det är hex, så då är det väl bit 4 som är satt till ett?
Det har du rätt i, förutsatte att det skulle vara bit 3 och inget annat så tänkte inte längre.
Så exemplet förvirrade visst mer än det gav. :lol: