Reisi / Helena

BSD 2-Clause "Simplified" License
5 stars 0 forks source link

Einlesen von der Spannung am nrf51822 #1

Open StefStein opened 2 years ago

StefStein commented 2 years ago

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

Reisi commented 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.

StefStein commented 2 years ago

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

Reisi commented 2 years ago

Achso, das ist allerdings nur Pin 3 am Modul, am nrf51822 ist das dann P0.01/Pin 5.

StefStein commented 2 years ago

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

Reisi commented 2 years ago

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.

StefStein commented 2 years ago

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

Screenshot_20220720-121255

Screenshot_20220720-121153

Reisi commented 2 years ago

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.

StefStein commented 2 years ago

soweit wird gelesen:

Screenshot_20220720-164139

danach bricht die App ab:

Screenshot_20220720-164050

Reisi commented 2 years ago

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.

StefStein commented 2 years ago

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: 2022-07-22_Oszi_Ctrl_SDA_SCL_errorlog_ueber_App App stürzt hier wieder ab

SDA + SCL (Oszi): 20220722-152750_Screenshot_App_errorlog

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)

StefStein commented 2 years ago

Die Kalibrierung vom Beschleunigungssensor ist auch hier fehlgeschlagen

Reisi commented 2 years ago

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.

StefStein commented 2 years ago

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?

Reisi commented 2 years ago

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.

StefStein commented 2 years ago

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.

Reisi commented 2 years ago

Das ist kein Problem, das File ist sowieso "leer". Die Software kommt mit einem leeren EEPROM klar und nimmt dann Defaultwerte.