Post Go back to editing

Need help:stm32 communicate with ADIS16135

Hi,guys.   I got a ADIS16135 and a stm32f103-vet6 here,and what i 'm want to do is using the ADIS16135 to output the angular speed and  integrate them to output angular.

this is  the first time i use such a High end Gyroscope,i got a lots of questions.

1,how to read the data Correctly.i use the Hardware SPI to communicate with 135.i reference the manual to configure the gpio and spi .  but i still read some wong data. the read rate will not exceed 300hz(because the manual show that 135's speed was 335hz)and every time i use the 135 i will preheat it for at least 30min(i was afraid that the temperature affect the angular speed data).still i will read some wrong data.

2,how can i ensure my Read interval(the time between i read the two data,oh ,is hard to explain)my integration formula is very simple angular=angular+angularspeed*read interval ,if i want to output the angular i must ensure my read interval but unluckily i can't ensure it . i use the system clock to write a delay function.But a master told me that using the system clock was not accurate.   the actual read interval is not like my code showing .And the i try to read the data in the timer interrupt so i can ensure my read interval .BUT it can't ,the system will dead ,it stop .i look for the internet,some people told me that reading spi in the timer interrupt is not allowed.

so how can i ensure my read interval ,do you have any good suggestion.

or do you have any good idea for integrate the data?

3,how to optimize the data ,if i ignore the read interval ,i reference a article form internet which was writed for ADIS16130 that teaching you to  optimize it's data   and i use the formula       RBC=rate+B3+(temp-T3)*BTC,rate-the gyro data you read ,  B3-the average of the gyro data for 10s at the beginning(let the Gyroscope static),    temp- temperature data you read ,T3-do the same like B3,  BTC-(B2-B1)/(T2-T1),the same as B3 and T3.

after i deal with the data ,when the  Gyroscope is static the data of angular speed was floating between 0.5~-0.5  and if i don't deal with the data the angular speed was 1.0~-1.0(the data of GYRO_OUT)   is the data normal???(i think is a little bit big )

4.i want to know the normal operating temperature of 135 .  i read the manual ,and it show me that the Gyroscope works best at 25℃,and a master who was using the ADIS16130 told me that his 130 operating temperature is 28℃~30+℃,but my  135 is almost 41℃. Is 135 works at 40℃(using for at least 30min).

i use ADIS16135 on a robot's base plate,and i hope your advice is not telling me to change stm32,our team just have stm32f103 or stm32f4,

and  i  am not very good at English,i hope my wrods express correctly.

finally thank you for reading it ,thank you.....whatever you answer me or not.

Parents
  • oh my gods ,you're awesome,your advice gives me a huge help.,now ,i'm following your advice step by step .untill i saw     "why do you believe that you can do better than our calibration processes and systems, which have been optimizing for over 10 years?".    i was sorry about this ,i think i may misunderstanding the word "installation",i know a master who was form another school ,he is using the ADIS16130,and our team think that he has a lot experience about these things.i ask him for advice and he told me that i should read the data of GYRO_OUT,TEMP_OUT and use the formula which offered by ADI company ( but i can't find out where is it )......so i think  every gyroscope has a special formula to optimize the data but you have to do it by yourself .   Are you telling me that ADI company have did it and encapsulate in the gyroscope ????

    but i got a question,if there is a optimization aready,i just read the data of GYRO_OUT without doing anything about them ,the data was floating between -1.00~1.00 when the gyroscope is static.(i have reference the manual  like ABC function Set DEC_RATE[7:0] = 0x10 (DIN = 0xA210)  and set GLOB_CMD[0] = 1 (DIN = 0xA801),after dong this, is that mean i have used GYRO_OFF??)

    although i'm believe in you and your company ,the data can't be used if i did nothing for them,or am i miss something or i did something wrong .could tell me please what should i do to solve this problem.

    finally ,i think you're awesome!!

Reply
  • oh my gods ,you're awesome,your advice gives me a huge help.,now ,i'm following your advice step by step .untill i saw     "why do you believe that you can do better than our calibration processes and systems, which have been optimizing for over 10 years?".    i was sorry about this ,i think i may misunderstanding the word "installation",i know a master who was form another school ,he is using the ADIS16130,and our team think that he has a lot experience about these things.i ask him for advice and he told me that i should read the data of GYRO_OUT,TEMP_OUT and use the formula which offered by ADI company ( but i can't find out where is it )......so i think  every gyroscope has a special formula to optimize the data but you have to do it by yourself .   Are you telling me that ADI company have did it and encapsulate in the gyroscope ????

    but i got a question,if there is a optimization aready,i just read the data of GYRO_OUT without doing anything about them ,the data was floating between -1.00~1.00 when the gyroscope is static.(i have reference the manual  like ABC function Set DEC_RATE[7:0] = 0x10 (DIN = 0xA210)  and set GLOB_CMD[0] = 1 (DIN = 0xA801),after dong this, is that mean i have used GYRO_OFF??)

    although i'm believe in you and your company ,the data can't be used if i did nothing for them,or am i miss something or i did something wrong .could tell me please what should i do to solve this problem.

    finally ,i think you're awesome!!

Children
No Data