[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Paparazzi-devel] Bug report - v3.9 - i2c
From: |
Xavier RIVIERE |
Subject: |
[Paparazzi-devel] Bug report - v3.9 - i2c |
Date: |
Fri, 29 Jun 2012 09:34:38 +0200 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 |
Hi,
I already post a lot about my I2C problem with Lisa/L + aspirin v1.5 +
v3.9 configuration. After checking my electronics, I check the software.
And finaly, it's working !!
Well... I change so much things that I'm not sure what is the main
part... As I'm not in the dev team, and I don't want to open my own
branch, I'm posting here my change.
----------------------
First, in my conclusion, the problem don't come from the I2C driver... I
made little change here. I just put this line
while ((regs->CR1 & 0x200) == 0x200);
before each I2C_GenerateSTART and I2C_GenerateSTOP, to avoid double
send, as describe in STM32 datasheet
Add this line if need in the function :
I2C_TypeDef *regs = (I2C_TypeDef *) periph->reg_addr;
----------------------
So, for me, the problem come from the I2C driver call... that's really a
mess. There is T.H.R.E.E. calling function :
send_i2c_msg_with_retry
i2cSubmit
I2CTranmit
I put i2cSubmit everywhere -____-
----------------------
I change the function imu_periodic, in imu_aspirin.c this way :
http://pastebin.com/aWNAXQf1
I change the function imu_aspirin_event this way :
http://pastebin.com/vvXkNnkD
I change the interrupt function in stm32/imu_aspirin_arch.c :
http://pastebin.com/Ar0gD9fr
I activate the interrupt for the mag.
How it works ??
- Captor send interrupt
- Interrupt handler happen, and send i2c reading
- imu_aspirin_event catch the reading end, and send according handler
- imu_aspirin_periodic works as a watchdog. Mag timeout must be around
30+. Accel and Gyro timeout must be around 3+
------------------------
Hope this will help. If someone can test it before validate, it would be
great ;)
Xavier
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Paparazzi-devel] Bug report - v3.9 - i2c,
Xavier RIVIERE <=