Open StefStein opened 2 years ago
Servus Stefan, ich denke nicht, dass hier ein Software Problem vorliegt, da die externen und internen Spannungsteiler über das Makro RESULT_IN_MILLIVOLT(x) in der adc.h berücksichtigt werden. Hast du schon mal einen genaueren Blick auf den 470k Widerstand geworfen? Möglicherweise liegt an dem eine kalte oder gebrochen Lötstelle vor.
ja habe ich bereits geprüft (ich habe 2 Platinen aufgebaut) bei beiden liegen 1,4V am Spannungsteiler an -> Spannungsteiler funktioniert. Dieser Pegel liegt auch am Port (RxD, P0.30 Pin 3) vom nrf51822 an
Achso, das ist allerdings nur Pin 3 am Modul, am nrf51822 ist das dann P0.01/Pin 5.
Es ist eine Verbindung vom Spannungsteiler VIN_ADC bis P0.01/Pin 5 vorhanden (überall liegen 1,4V an) Deshalb habe ich Dich zur SW gefragt
Ich behaupte nicht, dass die Firmware fehlerfrei ist, aber dieser Fehler tritt momentan nur mit deiner Hardware auf.
Was gibt die App bei der Hardware Rev. aus? Funktioniert die Winkelerkennung? Möglich wäre es, dass beim Initialisieren das falsche Board erkannt wird und dadurch am falschen Pin gemessen wird.
Ich meine nicht, daß Fehler in der SW sind. Ich hoffe nur auf Ideen an welchen Punkten (auch in der SW) ich die Fehlersuche ansetzen soll. Ich habe 2 Screenshots von der App angehängt
gib in der App im Debug Tap mal errorlog --read
ein, da dürften dann ein paar Fehlermeldungen kommen, da anscheinend auch die I2C Verbindung mit dem Treiber bzw. Beschleunigungssensor nicht funktionieren.
soweit wird gelesen:
danach bricht die App ab:
Ok, die abstürzende App muss ich mir mal anschauen. Den Fehler, den ich erwartet habe ist aber nicht dabei, sondern nur Fehler, die auf eine nicht funktionierende I2C Kommunikation hindeuten. Hast du dir schon mal die Spannungen an den SDA und SCL Pins angeschaut, liegen da 3,3V an (wenn nicht gerade etwas übertragen wird). Du kann auch mal versuchen das Controller Board getrennt zu betreiben, also nur GND, 3,3V und optional VCC anzuschließen, wenn der Beschleunigungssensor dann funktioniert liegt das I2C Problem auf der Treiber Platine.
Ich habe das Ctrl-Board nur mit 3,3v und GND versorgt An SDA und SCL liegen 3,3V an (keine Kommunikation) In diesem Zustand errorlog ausgeführt: App stürzt hier wieder ab
SDA + SCL (Oszi):
Nächste Woche schaue ich mir die Pegel von SDA und SCL am SD-Board an (erst getrennt von Ctrl dann verbunden) Die Pegel sollten im Ruhezustand weiter auf 3,3V liegen (vorausgesetzt die IOs am µC sind nicht auf "LOW" konfiguriert)
Die Kalibrierung vom Beschleunigungssensor ist auch hier fehlgeschlagen
Ich hab mal versucht die abstürzende App zu reproduzieren, bei mir stürzt immer die Helena ab, und nicht die App. Der Fehler ist aber jetzt behoben.
Hat der Beschleunigungssensor überhaupt nicht funktioniert, also immer konstant 0° angezeigt? Die Kalibrierung kann auch aus anderen Gründen fehlschlagen.
Funktionieren wenigstens die Status LEDs (die sollte blau blinken, wenn nach einer Fernbedienung gesucht wird), bzw. im Bootloader sollte die rote bzw. bei Verbindung die blaue LED leuchten.
Der Beschleunigungssensor funktioniert gar nicht. Die Status LEDs scheinen iO zu sein.
Ich denke ich habe die Ursache gefunden: Es ist keine SW auf dem ATtiny85 gelandet. Ich habe mir jetzt alle Tools ausgeliehen (JLink+, AVR JTAGICEmk2) -> Ich kann den nrf51822 kpl flashen (Bootloader über nrfjprog und Helena_app.zip über nrfconnect). Allerdings klappt das Flashen (Bootloader + Appl) beim ATtiny85 gar nicht (Microchip Studio 7 und AVR JTAGICEmk2). Es ist nicht möglich I2C/TWI/PDI als Interface auszuwählen. Ich mache irgendetwas falsch - nur was?
Den Attiny programmiert man eigentlich über das ISP Interface, aber ich programmiere die normalerweise vorm einlöten. Im eingebauten Zustand wird das wahrscheinlich nicht funktionieren. Möglicherweise reicht es, wenn man nur den Reset Pin wieder ablötet. Die Einstellungen für die Fuses findest du hier, falls noch nicht gesehen.
Ich habe es im eingebauten Zustand, ohne den Reset Pin abzulöten, ausprobiert. Dazu habe ich ergänzend zu den vorhandenen Signalen am 6pol. Stecker den Reset Pin und MISO direkt am ATtiny85 kontaktiert. Es hat funktioniert. Zuerst den Bootloader und anschliessend die Applikation, dann die Fuses. Allerdings konnte ich Helena_Base.eep nicht flashen. Ist das ein Problem? Die Lampe scheint bis auf den Beschleunigungssensor zu funktionieren.
Das ist kein Problem, das File ist sowieso "leer". Die Software kommt mit einem leeren EEPROM klar und nimmt dann Defaultwerte.
Servus Reisi, bei der Helena hast Du im Code beim Einlesen der Spannung ein Teilungsverhältnis von 1/3 stehen. Die Beschaltung im Ctrl-Board ist 1/6 (100K + 470K). Die App gibt bei anliegenden 8V im Feld 0,2V an. Ich vermute, daß dadurch (trotz Aktivierung in der App) der µP an beiden Ausgängen "LOW" anlegt. Somit ergibt sich an den beiden LEDs (Kathode und Anode von Spot und Flood) jeweils 8V -> es leuchtet nichts. Kannst Du bitte mal helfen Danke Stefan