after experimenting with the i2c1 device (resetting, deinitializing, reinitializing, writing some data, etc) i dont get no response anymore from the eeprom, even when i comment out all my code and flash the "original" version to the crazyflie.
console says I2C Connection failed.
any suggestions? did i brake something?
greets
Che.
edit:
loaded a clean version of the VM (clean build) and still the same problem
I might have overwritten some of the registers in the eeprom. Actually testing of the eeprom doesnt work anymore.
Maybe its possible to rewrite the original state of the eeprom by someone? Can anyone provide me the state in his eeprom, so i can actually write it back to mine?
Can you check that you are not shorting the I2C bus from the expansion board. The EEPROM is connected on the same bus as the one available on the expansion port.
Normally the EEPROM would be re-written on Startup if it is found to be corrupted (this is actually what is happening in factory: the first time a Crazyflie starts it writes a default state in the EEPROM).
You could also try to flash the latest binary to be sure you are running a clean version.
My best guess is that either it is the EEPROM that is broken or the bus that is shorted. You can check the bus by measuring the SDA and SCL pins on the expansion port. They should be around 3V when the CF2 is powered. The SDA and SCL pins are marked PB7 and PB6 on the bottom of the PCB. The EEPROM is the 5 leg ship just beside.
tobias wrote:My best guess is that either it is the EEPROM that is broken or the bus that is shorted. You can check the bus by measuring the SDA and SCL pins on the expansion port. They should be around 3V when the CF2 is powered. The SDA and SCL pins are marked PB7 and PB6 on the bottom of the PCB. The EEPROM is the 5 leg ship just beside.
I just measured SDA and SCL pins. SDA is on 2.99V so thats ok.
But SCL pin is only on around 0.04V so it looks like its shorted.
Is there a way to fix this? And what can be the cause of the short circuit (better know that, to avoid it in the future when experimenting)?
But SCL pin is only on around 0.04V so it looks like its shorted.
Is there a way to fix this?
Check for shorts near the expansion port. Either there's a solder short or one of the IC's is holding down the SCL line, which may mean the IC is dead.
But SCL pin is only on around 0.04V so it looks like its shorted.
Is there a way to fix this?
Check for shorts near the expansion port. Either there's a solder short or one of the IC's is holding down the SCL line, which may mean the IC is dead.
I cant see any solder short with the naked eye. Maybe I am missing something? Could you give it a look? I hope the resolution suffices to see the details, i needed to scale it down because of size restriction.
The question now is if it is the eeprom or the stm32f4 that is shorting the SCL pin to GND or if there is an external short (which I see as unlikely). It can also be that the SCL pull-up resistor is broken or not connecting to the pads. Easiest is to check the resistor first.
Unplug the battery and measure resistance between:
SCL (PB6) and GND -> Should be no connection
SCL (PB6) and VCC -> Should say ~2.2kOhm
If there is a low resistance to GND the stm32f4 output stage has probably shorted to GND. Could be tested by making a firmware which puts PB6 in high state but if there is an external short to GND or the eeprom is shorting to GND it can be a bad idea.
It should be pretty hard to break the pin output stage so I''m not sure that is the case. I've never managed to do it an I have shorted pins plenty of times. However if an higher voltage (like about 5V) have accidentally been connected to the pin it might fry quickly.
tobias wrote:Unplug the battery and measure resistance between:
SCL (PB6) and GND -> Should be no connection
>>> Is 1.9kOhm
tobias wrote:
SCL (PB6) and VCC -> Should say ~2.2kOhm
>>> Is 1.3kOhm
tobias wrote:If there is a low resistance to GND the stm32f4 output stage has probably shorted to GND. Could be tested by making a firmware which puts PB6 in high state but if there is an external short to GND or the eeprom is shorting to GND it can be a bad idea.
So I better not test it that way? It seems like the output stage has shorted, right?
tobias wrote:However if an higher voltage (like about 5V) have accidentally been connected to the pin it might fry quickly.
That might have happened. I am experimenting with the LIDAR LITE 2 http://pulsedlight3d.com/. For that I used an external voltage source with about 5V. Despite I was cautious while experimenting, it may have happened.