[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] motor command error on hexa------work arround prog

From: Christophe De Wagter
Subject: Re: [Paparazzi-devel] motor command error on hexa------work arround progress
Date: Tue, 26 Mar 2013 23:44:21 +0100

The i2c can hang after bus errors and arbitration lost errors. The only way to solve this is a watchdog timer. This is by design because all the I2C transactions are in the interrupt routines while the MCU does not issue an interrupt in some conditions (e.g. no interrupt after a stop, so the interrupt handler must already issue the next transaction before the end of the current transaction. And when issuing a new start after a ARLO error, the start will only be executed if a stop was sensed first and no interrupt will occur until then. But the fake ARLO error was interference so the chance that stop is not felt either is quite high too. 

solution 1: clean hardware: short i2c wires, not leaving the board, < 10pF line on 4k7 pull-up
solution 2: watchdog timer


On Tue, Mar 26, 2013 at 8:25 PM, Eduardo lavratti <address@hidden> wrote:
Sergey, i know the i2c problem with mikrokopter.
All times i start my big octo the mikrokopter BEEP because some i2c error occur but the bus continue work and the rotorcraft flies.
2 year ago i flied with mikrokopter using 12 motors without problem.

My question is: Why the paparazzi i2c bus hang after i2c error ?
have a way to make the bus to continu working after errors ?

> To: address@hidden
> Date: Mon, 25 Mar 2013 09:14:34 +0100
> From: address@hidden
> Subject: Re: [Paparazzi-devel] motor command error on hexa------work arround progress
> Hi Eduardo!
> If the problem is still actuall, try to checkout the latest
> actuators_mkk.c file from the master branch.
> I've added the i2c submission control, so the actual queue length could be
> leaved unchanged.
> I've also experienced problems with 8 mkk controllers, they a very
> sensitive to the bus speed. With the 400kHz there going to be the bus
> errors anyway. I've had problems with 8 mkk sometimes even with the bus
> speed about 60kHz. So try to let your bus speed down. But when you let
> your bus speed down, and it is not sufficient to control all the motors
> once per periodic time, the queue length increase is not going to help. So
> then you have to use the fixed actuators_mkk.c file.
> But anyway, I've experienced a crash with the stock MK autopilot because
> of i2c errors problem, so imho the solution with more than 6 mkk
> controllers is not reliable enough. I wouldn't recommend that.
> Regards,
> Sergey
> _______________________________________________
> Paparazzi-devel mailing list
> address@hidden

Paparazzi-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]