Hallo, ich hänge leider gerade an folgendem Problem: Ich möchte mit dem uC nrf52832 gerne mit dem Digitalkonverter ADS1256 via SPI kommunizieren. Auf dem Steckbrett hat das nach Anfangsschwierigkeiten auch gut funktioniert. Dabei habe ich den NRF52832 mit dem Nordic-Devboard verwendet und den Code aus einem Beispiel SPI-Master-Code entwickelt. Nun habe ich ein Platinenlayout erstellt und den uC auf dem Board programmiert, um dort den ADC anzusteuern. Es zeigt sich, dass bis auf den Master-In-Slave-Out (MISO) Pin alles funktioniert. (verzifiziert mittels Oszilloskop) D.h. sowohl uC als auch ADC laufen an sich. Jedoch ist das Logiklevel auf dem MISO wesentlich zu gering. Es liegt bei High etwa um 200, 300 mV. Ich habe leider keine Grafik zur Hand, es sieht jedoch optisch so aus, wie ein im wesentlichen "korrektes" Signal, allerdings eben mit wesentlich zu geringem Highpegel, so dass der uC immer nur Nullen liest. Es wirkt fast so, als hätte der ADC-Ausgang Schwierigkeiten den Pegel auf 3.3 V zu ziehen, sobald der MISO-Pin anliegt. Ich denke nicht, dass es ein Hardwarefehler ist, da dieser Fehler mit der Softwareprogrammierung "mitwandert": Wähle ich statt Pin 29 z.B. Pin 30 als MISO Pin aus, so ist das Level auf vorherigen MISO-Pin normal d.h. High liegt bei ~3.3 V. Aber der neue MISO-Pin 30 weist dann genau die selben Symptome auf. Es scheint so, als wäre der Pin, es ist der einzige Inputpin der SPI-Kommunikation auf uC-Seite, falsch konfiguriert. Hatte jemand schonmal das Problem? Kennt jemand eine Lösung?
LowLeveler schrieb: > Kennt jemand eine Lösung? Wenn der Fehler mitwandert, empfehle ich einen Blick auf die Software und die Hardware. Entweder ist der ADS1255 und zieht den Pegel runter oder irgendein Pin wird falsch initalisiert/gesteuert.
LowLeveler schrieb: > Ich denke nicht, dass es ein Hardwarefehler ist, da dieser Fehler mit > der Softwareprogrammierung "mitwandert": Dann hast Du den vermutlich nicht auf GPIO Input gesetzt:
1 | nrf_gpio_input(29, NRF_GPIO_PIN_NOPULL); |
Die GPIOs muss man bei NRF5x manuell korrekt vorkonfigurieren. MISO ist der einzige SPI Pin der nicht auf Ausgang stehen darf.
Jim M. schrieb: > Dann hast Du den vermutlich nicht auf GPIO Input gesetzt: > nrf_gpio_input(29, NRF_GPIO_PIN_NOPULL); Warum sollte es dann auf dem Steckbrett funktioniert haben?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.