drivrutin accelerometer MC3419

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
nyfikenelektron
Inlägg: 1
Blev medlem: 26 januari 2020, 16:17:49

drivrutin accelerometer MC3419

Inlägg 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)
ToPNoTCH
Inlägg: 4891
Blev medlem: 21 december 2009, 17:59:48

Re: drivrutin accelerometer MC3419

Inlägg 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 :-)
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: drivrutin accelerometer MC3419

Inlägg av hawkan »

Ifall det underlättar så finns det nåt för arduino här https://github.com/mcubemems/mCube_mc34 ... MC34X9.cpp
Användarvisningsbild
Klas-Kenny
Inlägg: 11344
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: drivrutin accelerometer MC3419

Inlägg 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.
Användarvisningsbild
pi314
Inlägg: 5830
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: drivrutin accelerometer MC3419

Inlägg 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
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: drivrutin accelerometer MC3419

Inlägg av hawkan »

Användarvisningsbild
pi314
Inlägg: 5830
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: drivrutin accelerometer MC3419

Inlägg av pi314 »

hawkan:

Bra funnet!

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

/Pi
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: drivrutin accelerometer MC3419

Inlägg av hawkan »

Eller rätt version. Det står inte riktigt samma i denna som i den som det först länkades till.
Användarvisningsbild
pi314
Inlägg: 5830
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: drivrutin accelerometer MC3419

Inlägg 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
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: drivrutin accelerometer MC3419

Inlägg 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.
Användarvisningsbild
Klas-Kenny
Inlägg: 11344
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: drivrutin accelerometer MC3419

Inlägg 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:
Skriv svar