Ressourcen-Icon

Raspberry Pi Pico - Hardware 1.3

achim S.

Mitglied
16. Jan. 2010
704
13
18
Berlin Biesdorf
Sprachen
  1. ANSI C
achim S. erstellte eine neue Ressource:

Raspberry Pi Pico - Hardware (1) - Der Raspberry Pi Pico an meinen Boards

Mit dem Raspberry Pi Pico und dem leistungsfähigen RP2040 können die verschiedensten Programme erstellt werde. Gerade mit Thonny und Phyton wird eine moderne Sprache verwendet. In diesem Teil möchte ich die Hardware vorstellen und wie man an meine Boards anschliessen kann. Besonders wird dabei auch auf die Anwendung nit dem I2C Bus verwendet.

Erfahre mehr über diese Ressource...
 
achim S. aktualisierte Raspberry Pi Pico - Hardware mit einem neuen Updateeintrag:

Raspberry Pi Pico - Hardware

Mit dem Raspberry Pi Pico und dem leistungsfähigen RP2040 können die verschiedensten Programme erstellt werde. Gerade mit Thonny und Phyton wird eine moderne Sprache verwendet. In diesem Teil möchte ich die Hardware vorstellen und wie man an meine Boards anschliessen kann. Besonders wird dabei auch auf die Anwendung nit dem I2C Bus verwendet.
Es wurden einige Fehler beseitigt.

Lese den Rest der Aktualisierung...
 
Pin 35 (ADC_VREF) ADC_VREF entspricht der Betriebs- bzw. Referenzspannung für den ADC. Über eine externe Spannungsquelle an diesem Pin kann die Genauigkeit des ADC verbessert werden
???
Du hast den Pin doch fest auf 3V3 gelegt...
Warum eigentlich?
Der eigentliche RP2040 scheint keine interne Spannungsreferenz für den ADC zu besitzen, und auch keine externe zu unterstützen - stattdessen scheint immer gegen die analoge Versorgungsspannung des ADC (ADC_AVDD) gemessen zu werden.
Dieser Spannungsversorgungspin (des RP2040) wird auf der Platine des Raspberry Pi Pico über einen RC-Tiefpaß (201Ω, 2,2µF) aus 3V3 versorgt. Die 201Ω sind durch zwei Widerstände in Reihe realisiert: 3V3->200Ω->1Ω ->2,2µF->Gnd.
ADC_AVDD wird über dem Kondensator gespeist, klar.
ADC-VREF liegt zwischen den Widerständen an, Du hast quasi den 200er kurzgeschlossen, den Tiefpaß auf 1Ω, 2,2µF geändert.

Deine Platine ist einseitig, aber was hast Du gegen Massepolygone, und wenn schon nicht die, warum dann nur so'ne dünnen Gnd-Antennen?
Du Verbindest das Gnd-Netz mit Deiner Platine scheinbar nur über Pin3, es sind aber noch weitere sechs Gnd-Pins da, und zusätzlich ein Pin, der als AGND bezeichnet ist. Dazu findet sich zwar nichts genaueres im Datenblatt, die werden sicher alle irgendwie (!!) zusammenlaufen, aber wahrscheinlich ist genau dort der Tiefpaß angelegt.

Warum machst Du den Schaltplan nicht mit Symbolen für die Spannungsversorgungs-Netze wenigstens etwas übersichtlicher?

Ähm.. 5V-Versorgungsspannung legst Du auf VBus???
 
Ja das stimmt. Lege die 3,3V auf den Pin des Buchsensteckers. Lege 5V entweder vom USB oder 5V NT auf den Piko. Die 3,3V nehme ich als Versorgung für die angeschlossenen Module. Soll doch bis 300 (500) mA vetragen. Meine Messungen an den 3,3V sagen das die Spannung sehr "rauh" ist. Schwankt so zwischen 3,26.. bis 3,32.. V. Teilweise ist auf dem Oszi auch die Welligkeit zu sehen wenn Ausgänge schalten. Wenn man die 3,3V noch mal mit einem Elko und C belegt geht das relativ gut. An der ADC Buchse habe ich einen kleine Platine zur Messung dran mit LM4040 AIM 3,0V (0,1%). Damit komme ich auf ca. 1-5mV Schwankungen bei der Messung. Wenn ich mehrere GND verbinde hatte ich wieder andere Impulse drauf. Wenn ich 2 Messungen durchführe, also Vref zu 3,3V und runde habe ich Abweichungen von ca. 0,5-3mV. Da hört aber mein Messgerät schon auf. (4 Stellig). Bei 16 Bit hat er ja eine Auflösung von 0,8mV. Damit liege ich wahrscheinlich schon an der Messgrenze.
Dazu findet sich zwar nichts genaueres im Datenblatt, die werden sicher alle irgendwie (!!) zusammenlaufen, aber wahrscheinlich ist genau dort der Tiefpaß angelegt.
Das gleich Problem mit GND bzw. AGND hatte ich auch. Habe im Netz (?) gelesen das alle GND zusammen laufen und AGND direkt auf den ADC geht. Im DB des R2040 ist eine Schaltung mit einer externen Spannungsreferenz angegeben. Danach habe ich mich gerichtet.
Die 201Ω sind durch zwei Widerstände in Reihe realisiert: 3V3->200Ω->1Ω ->2,2µF->Gnd.
ADC_AVDD wird über dem Kondensator gespeist, klar.
ADC-VREF liegt zwischen den Widerständen an, Du hast quasi den 200er kurzgeschlossen, den Tiefpaß auf 1Ω, 2,2µF geändert.
Das muss ich mir noch mal genau ansehen. Hatte bei einigen Messungen Abweichungen von über 20% gegenüber der Berechnung. Konnte den Grund mir nicht erklären.
 
Die anpassung der Hardware habe ich gemacht um kurze Verbîndungen zwischen der zusätzlich Platine und den ADC zu haben. Hatte vorher Steckverbinder von ca. 10cm die schon wieder andere Impulse eingefangen haben
 
Ich meinte, Du hast ADC-VREF mit 3V3 verbunden, also den Tiefpaß kurzgeschlossen...

Mal von vorn:
Lege 5V entweder vom USB oder 5V NT auf den Piko.
Das oder ist dabei wichtig.
Genauer:
5V-Versorgungsspannung legst Du auf VBus???
Du hast mit D1 'ne (wahrscheinlich Shottky-) Diode drin (und verhinderst damit, das VUSB Deine 5V speist), aber wenn Du Deine 5V drauflegst, liegen die auch direkt auf der USB-Buchse des Pico-Moduls, und somit auch auf dem USB des angeschlossenen Gerätes. Wenn also am USB eh nix angeschlossen sein darf, während Deine 5V-Versorgung aktiv ist, dann ist Deine D1 nutzlos.
(also zumindest kein USB-Host, wenn der Pico als USB-Host eingesetzt werden soll, ok)
Der Pico hat aber zwischen VUSB und VSYS auch 'ne Shottky-Diode. Hättest Du Deine 5V (über Deine Diode) also auf VSYS statt VUSB gelegt, wären beide Stromversorgungen OR-ed, ein Back-Powering in beide Richtungen ausgeschlossen.

Habe im Netz (?) gelesen das alle GND zusammen laufen und AGND direkt auf den ADC geht.
Der RP2040 hat gar kein AGnd, und auch nur eine Massefläche (unter dem IC).
Allerdings befindet sich der Tiefpaß, der den ADC versorgt genau dort.
PiPico.jpg
Die 3V3 aus dem Buck-Boost-Converter werden über einen RC-Tiefpaß geglättet, und speisen den ADC (ADC-AVDD).
Das Datenblatt schreibt dazu: "for lower offset (at expense of noise) connect VREF to 3V3 with lower resistance" - lower resistance als Kurzschließen geht nicht... --> rauschempfindlichkeit maximiert??
An der ADC Buchse habe ich einen kleine Platine zur Messung dran mit LM4040
... auf der anderen Seite steht sogar im Datenblatt: "For much improved ADC performance, an external 3.0V shunt reference, such as LM4040, can be connected from the ADC_VREF pin to ground" (damit meinen die AGND)
Die externe Referenz soll also ADC-VREF und indirekt auch ADC-AVDD von 3V3 auf stabilisierte 3V0 runterziehen.
Alternativ kannst Du den Widerstand auch auslöten (deswegen wurde so'ne "riesige" Package-Variante gewählt), und 'ne eigene ultrastabile analoge Versorgungsspannung für den ADC auf ADC-VREF packen...

Meine Messungen an den 3,3V sagen das die Spannung sehr "rauh" ist. Schwankt so zwischen 3,26.. bis 3,32.. V. Teilweise ist auf dem Oszi auch die Welligkeit zu sehen wenn Ausgänge schalten
Richtig, schnell schaltende digitale Signale halt, wie gut L1 gegen die ADC-VREF-Antenne geschirmt ist, ist auch die Frage...

am Rande:
Über GPIO23 kann Pico den Converter übrigens von PFM-Mode (=effizienter) auf PWM-Mode (=weniger ripple) schalten...
Über GPIO24 kann ausgelesen werden, ob über VUSB 'ne Spannung (größer als ??V) anliegt. (Grundsätzlich scheint der Converter im Boost bereits ab 1,8V zu laufen, den drop der Shottkydiode zu VSYS würde ich mit 0,3V veranschlagen...)
GPIO25 schaltet die grüne LED
Über GPIO29_ADC3 kann die Spannung VSYS (also direkt vor dem Converter) gemessen werden
 
Zuletzt bearbeitet:
Über GPIO23 kann Pico den Converter übrigens von PFM-Mode (=effizienter) auf PWM-Mode (=weniger ripple) schalten...
Über GPIO24 kann ausgelesen werden, ob über VUSB 'ne Spannung (größer als ??V) anliegt.
GPIO25 schaltet die grüne LED
Über GPIO29_ADC3 kann die Spannung VSYS (also direkt vor dem Converter) gemessen werden
Genau das mache ich. ADC3 verwende ich um die 3.3V zu messn und in der Software zu berücksichtigen. GP23 ??? meinst das Run damit was auf meinem Schema steht.
Der Pico hat aber zwischen VUSB und VSYS auch 'ne Shottky-Diode. Hättest Du Deine 5V (über Deine Diode) also auf VSYS statt VUSB gelegt, wären beide Stromversorgungen OR-ed, ein Back-Powering in beide Richtungen ausgeschlossen.
Das muss ich noch mal genau anschauen. Klingt gut und spart Arbeit. Also 5V auf Pin 39 Vsys?
 
Also 5V auf Pin 39 Vsys?
Ja, über eine Shottkydiode auf 39=VSYS und nicht auf 40=VUSB
GP23 ??? meinst das Run damit was auf meinem Schema steht.
Nein, GPIO23 ist extern am Pico nicht vorhanden. Aber der Pico kann ihn natürlich ansteuern. Leider weitgehend auf der Unterseite geroutet, die auf Deinem Foto schlecht erkennbar ist. Dort gibt's sogar Testpunkt4 zum testen.
Sollte etwa so laufen:
PiPico2.jpg
 
Morgen
Hab da noch ein Problem. Das Konzept sieht so aus, das entweder der Strom über USB kommt, für die ersten Programme oder zum testen. Wenn das Programm dauerhaft auf dem Pico ist und kein USB anliegt erfolg die Versorgung über die Wannenstecker von 5V NT extern. Gilt dann das gleiche?
 
Ich verstehe das/Dein Problem nicht.
Ich hab eigentlich in #6 alles nötige dazu geschrieben, inklusive Bild.

Pin40 des Pico ist direkt mit dem VBUS-Pin der USB-Buchse verbunden. Wenn der Pico an einen Host angeschlossen ist, liegen hier also die 5V vom Host an. (USB1.x erlaubt grundsätzlich nur eine Last von 100mA. Der Micro-USB läßt auf USB2.0 schließen. Hier kann der Host auf Anfrage die zulässige maximale Last erhöhen/freigeben, dann sind maximal 500mA zulässig.)
Wird im Pico ein USB-Host/USB-OTG implementiert, soll er also die Spannung auf dem USB bereitstellen, kann auf Pin40 die Einspeisung in die USB-Buchse erfolgen.
Auf Deiner Platine hast Du 5V (über eine Diode) auf Pin40 und damit die USB-Buchse eingespeist - ich würde den so nicht an einen USB-Host anschliessen wollen. Deine Diode verhindert zwar, daß Strom vom Host in Dein Netzteil fliessen kann, aber aus Deinem Netzteil kann so Strom in den Host fließen.

Auf dem Pico befindet sich genau zu diesem Zweck auch eine Schottky-Diode, die Strom von VUSB zu VSYS durchläßt, in Gegenrichtung aber sperrt.
Hättest Du Dein Netzteil also über Deine Diode an VSYS angeschlossen, würde Deine Diode weiterhin verhindern, daß Strom aus dem USB über VBUS und VSYS in Dein Netzteil fließen kann und die Diode zwischen VUSB und VSYS des Pico verhindern, daß Strom von Deinem Netzteil über VSYS und VUSB auf den USB fließen kann.

An der Schottky-Diode des Pico sollte der Spannungsabfall etwa 0,3V betragen, Deine 1N4001 scheint 'ne konventionelle Gleichrichterdiode mit etwa 0,7V Spannungsabfall zu sein.

An VSYS liegt so effektiv die höhere der beiden Spannungen (jeweils abzüglich des Dioden-Voltage-Drops) an.
Über einen 100K-Pullup ist der Enable-Eingang des Buck-Boost-Converters auf VSYS gezogen, liegen dort mehr als 1,2V an, wird der Converter aktiviert. Der Enable-Eingang liegt außerdem auf Pin37 des Pico (3V3_EN). Zwingst Du den auf Gnd, wird der Konverter abgeschaltet (Shutdown).
Der Konverter selbst benötigt eine Eingangsspannung (=VSYS) zwischen 1,8 und 5,5V, und erzeugt daraus eine Ausgangsspannung von 3,3V, die auch an Pin36 des Pico (3V3) anliegt.
Datenblatt des Konverters:
In shutdown mode, the converter stops switching, internal control circuitry is turned off, and the load is disconnected from the input.
Im Shutdown ist also nicht nur der Konverter inaktiv, sondern VSYS auch von 3V3 getrennt.

Du kannst den Pico also mit etwa (VoltageDrop der Schottky) 1,8..5,5V über die USB-Buchse oder Pin40=VBUS oder 1,8..5,5V über Pin39=VSYS oder 3,3V über Pin36=3V3 versorgen (in dem Fall sollte der Konverter schlafen geschickt werden). Die oder sind hier exclusiv.

Mit entsprechender externer Beschaltung kannst Du recht flexibel die Versorgung anpassen, denkbar sind zB:
  • potenzielle Versorgung mit externem 1,8..5,5V-Netzteil bei gleichzeitiger Toleranz der USB-Buchse, indem über eine Diode in VSYS eingespeist wird.
  • (möglicherweise läßt sich dasselbe auch irgendwie mit einem Mosfet statt 'ner Schottky, und damit einem noch geringeren Voltage Drop (und damit mehr Effizienz) realisieren)
  • externe 3,3V an Pin36=3V3 die allerdings bei anliegender VUSB und/oder VSYS selbst abschaltet, oder
  • dasselbe mit deaktiviertem Converter, wobei die externe 3V3 ggf aus VBUS/VSYS abgeleitet werden kann (falls da Spannung anliegt)
 
Habe die Platine und das Schema zum RP2040 angeschaut. Auf der Platine habe ich keine Brücke zwischen Pin 35 und 36. Pin 35 liegt frei. Habe wahrscheinlich von der ersten Version die Schaltung nicht korrekt verändert. Dadurch wird der R7 nicht überbrückt. Werde es im Tut ändern.
Zum GPIO23. Dieser GPIO geht zum RT6150 an den Pin 7 (PS). Daneben steht ja auch die Nutzung und der TP4. Dieser (R8) hat 100k und geht gegen GND. Wenn der an GP23 hängt, kann man ja ihn mit der Software schalten.
 
achim S. aktualisierte Raspberry Pi Pico - Hardware mit einem neuen Updateeintrag:

Raspberry Pi Pico - Hardware

Mit dem Raspberry Pi Pico und dem leistungsfähigen RP2040 können die verschiedensten Programme erstellt werde. Gerade mit Thonny und Phyton wird eine moderne Sprache verwendet. In diesem Teil möchte ich die Hardware vorstellen und wie man an meine Boards anschliessen kann. Besonders wird dabei auch auf die Anwendung nit dem I2C Bus verwendet.
Es wurden einige Fehler beseitigt.

Lese den Rest der Aktualisierung...
 
achim S. aktualisierte Raspberry Pi Pico - Hardware mit einem neuen Updateeintrag:

Raspberry Pi Pico - Hardware

Mit dem Raspberry Pi Pico und dem leistungsfähigen RP2040 können die verschiedensten Programme erstellt werde. Gerade mit Thonny und Phyton wird eine moderne Sprache verwendet. In diesem Teil möchte ich die Hardware vorstellen und wie man an meine Boards anschliessen kann. Besonders wird dabei auch auf die Anwendung nit dem I2C Bus verwendet.
Es wurden einige Fehler beseitigt. In dieser Version wurde der Pico um 180° gedreht wodurch sich einige Anschlüsse geändert haben.

Lese den Rest der Aktualisierung...
 
achim S. aktualisierte Raspberry Pi Pico - Hardware mit einem neuen Updateeintrag:

Raspberry Pi Pico - Hardware

Mit dem Raspberry Pi Pico und dem leistungsfähigen RP2040 können die verschiedensten Programme erstellt werde. Gerade mit Thonny und Phyton wird eine moderne Sprache verwendet. In diesem Teil möchte ich die Hardware vorstellen und wie man an meine Boards anschliessen kann. Besonders wird dabei auch auf die Anwendung nit dem I2C Bus verwendet.
Es wurden einige Fehler beseitigt.

Lese den Rest der Aktualisierung...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)