Forum: Mikrocontroller und Digitale Elektronik Problem mit DS18S20 und ATMega2560


von Andreas (ah3112)


Angehängte Dateien:

Lesenswert?

Hallo,

bei meinen Tests der letzten Tage hat sich ein neues Problem ergeben, wo 
ich nicht weiter weiss.

Bei Reichelt habe ich mir ein Atmega2560 Pro Board der Firma Joy-IT 
gekauft. Dort ist an Port PB4 ein DS18S20 angeschlossen.

Zunächst mal vorneweg. An der Software liegt es nicht. Ich habe die 
Software hier aus dem Forum von Falk genommen. An meinen weiteren 
Erklärungen zeigt sich auch noch, dass die funktioniert. Bevor ich mir 
das Atmega2560 Pro Board gekauft habe, habe ich die Software vor Monaten 
bereits auch an einem STK600 mit dem DS18S20 getestet. Das hat 
einwandfrei geklappt.

Auf dem Pro-Board kommt direkt am Anfang "No Response on Bus".

Nachdem die Software auf dem Pro-Board nicht funktioniert hatte, habe 
ich exakt denselben Hex-File auf das STK600 gespielt. Ich habe an der 
restlichen Hardware (Kabel zum Temperaturfühler) nichts geändert. 
Lediglich vom Pro-Board auf das STK600 umgesteckt. Dort läuft die 
Software einwandfrei. Über printf wurden die korrekten Temperaturen 
angezeigt.

Die Fuses auf beiden Boards waren auch identisch (e=0xFD, h=0x98, 
l=0xFF). Die Frequenz des Quarz war auch identisch.

Daraufhin habe ich an dem PRO-Board mit mehreren unterschiedlichen 
Pullups (3,9k, 4,22k und weil ich keinen 3,3k hier hatte, um in die Nähe 
von 3K zu kommen, 4,7K und 10K parallel) getestet. Immer noch "No 
Response on Bus".

Ebenfalls habe ich jedes delay in der Software um Faktor 2 erhöht. Auch 
das hat nichts gebracht.

Da ich kein Speicheroszilloskop habe, habe ich einen Logikanalysator 
angeschlossen. Der hat überhaupt nicht reagiert. Auch wenn ich dem nicht 
das 1-Wire-Protokoll eingestellt habe, sondern den entweder nur auf 
steigende oder fallende Flanke getriggert hatte. Der hatte überhaupt 
nicht reagiert.

Im Anschluss habe ich auf dem Pro-Board Port PC7 genommen. Dabei lief 
die Software plötzlich. Screenshot des Logikananlysators im Anhang. 
Anschliessend noch an PB6 und PB7. Auch dort läuft die Software. Nur 
nicht an PB4 und PB5.

Lasse ich an PB4 eine LED blinken, dann funktioniert das auch. Zum 
Testen bin ich zwischen dem Ein- und Ausschalten der LED bei dem delay 
schrittweise, angefangen von 100ms auf bis zu 1us, runtergegangen. Auch 
das zeigt der Logikanalysator einwandfrei an.

Mein Verdacht war, dass es eine kalte Lötstelle sein könnte. Deshalb 
habe ich die Stiftleiste nachgelötet. Aber auch das hat nichts geholfen. 
In der Umgebung von PB4 und PB5 habe ich das nach Kurzschlüssen 
durchgemessen. Ebenfalls negativ.

Von dem Atmega2560-Pro-Board habe ich keinen Schaltplan und weiss daher 
nicht, ob da noch irgendetwas dran hängt. Es gibt im Internet 
Schaltpläne von anderen Herstellern. Demnach wäre an PB4 nichts 
angeschlossen.

Im Datenblatt habe ich auch nichts gefunden, was darauf schließen lässt, 
PB4 nicht zu nehmen.

Hat jemand eine Idee, wie ich das Eingrenzen kann bzw. was der Grund 
sein könnte. Kann es sein, dass ausschließlich PB4 und PB5 defekt sind? 
Was ich mir allerdings nicht erklären kann.

Vielen Dank.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas schrieb:
> Hat jemand eine Idee, wie ich das Eingrenzen kann
Man müsste zuerst mit einem Oszilloskop messen, ob sich am Pin überhaupt 
was tut und wenn ja mit welchen Pegeln (Stichwort "Signalintegrität"). 
Denn der LA ist erst dann das richtige Werkzeug, wenn sichergestellt 
ist, dass die Pegel und Signalflanken passen. Eine Buskollision oder 
einen falsch konfigirierten Pin kann man mit dem Oszi leicht erkennen, 
ein LA (quasi ein Oszi mit 1 Bit Auflösung) tut sich da schwer.

von Torsten B. (butterbrotstern)


Lesenswert?

PB5 OC1A/PCINT5 (Output Compare and PWM Output A for Timer/Counter1 or 
Pin Change Interrupt 5)
PB4 OC2A/PCINT4 (Output Compare and PWM Output A for Timer/Counter2 or 
Pin Change Interrupt 4)

Wenn nur Widerstände und Messgerät zur Verfügung stehen: einen 
Spannungsteiler ca. VCC/2 bauen und schauen, ob sich der Pegel ändert, 
wenn er mit dem Port verbunden wird. Dann sieht man während man den µC 
resettet, ob noch etwas anderes am Pin hängt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Andreas schrieb:
> Lasse ich an PB4 eine LED blinken, dann funktioniert das auch. Zum
> Testen bin ich zwischen dem Ein- und Ausschalten der LED bei dem delay
> schrittweise, angefangen von 100ms auf bis zu 1us, runtergegangen. Auch
> das zeigt der Logikanalysator einwandfrei an.

Dann ist die Hardware in Ordnung.

> Hat jemand eine Idee, wie ich das Eingrenzen kann bzw. was der Grund
> sein könnte. Kann es sein, dass ausschließlich PB4 und PB5 defekt sind?

Nein, denn du kannst ja eine LED blinken.

> Was ich mir allerdings nicht erklären kann.

Prüfe nochmal die #define in onewire.h. Vielleicht hast du dort einen 
Tipfehler.

von Andreas (ah3112)


Lesenswert?

Lothar M. schrieb:
> Man müsste zuerst mit einem Oszilloskop messen, ob sich am Pin überhaupt
> was tut und wenn ja mit welchen Pegeln (Stichwort "Signalintegrität").
Die Flanken der Signale hatte ich als erstes in Verdacht. Aber ich habe 
nur ein altes analoges Oszi. Da kann ich nichts feststellen, weil das 
nicht speichert.

Torsten B. schrieb:
> Wenn nur Widerstände und Messgerät zur Verfügung stehen: einen
> Spannungsteiler ca. VCC/2 bauen und schauen, ob sich der Pegel ändert,
> wenn er mit dem Port verbunden wird. Dann sieht man während man den µC
> resettet, ob noch etwas anderes am Pin hängt.
Das habe ich nicht verstanden. Dass sich die Pegel ändern, habe ich doch 
bei der blinkenden LED festgestellt.

Falk B. schrieb:
> Prüfe nochmal die #define in onewire.h. Vielleicht hast du dort einen
> Tipfehler.
Leider nicht.
1
#define ONEWIRE_BIT  PB4
2
#define ONEWIRE_PIN  PINB
3
#define ONEWIRE_PORT PORTB
4
#define ONEWIRE_DDR  DDRB

Ich habe parallel eine Email an die Firma Joy-IT geschickt und dort mal 
nachgefragt. Das wird aber sicherlich ein paar Tage dauern.

Danke Euch erstmal für die Antworten.

von Frank O. (frank_o)


Lesenswert?

Du sagst der DS18S20 ist auf dem Board schon angeschlossen.
Weißt du die Adresse vom Sensor und hast die angegeben?
Denn vorher hast du die Software mit einem anderen Sensor,  der eine 
andere Adresse hat, laufen gehabt.  Solltest du die Software genau so 
verwenden, kann das nicht funktionieren.

von Frank E. (ffje)


Lesenswert?

Frank O. schrieb:
> auf dem Board schon angeschlossen

Habe ich im TO-Beitrag nicht gelesen, das Schon.
Das würde bedeuten, mit DS18... geliefert?
Nee, mit LM35 evtl.. Solange nur ein DS18... an einem Pin angeschlossen 
ist, kann mit dem auch ohne Verwendung seiner Unique-ID kommuniziert 
werden, aber... ich kenne die SW ja nicht... - ich bemühe mich meist 
selbst.

mfG  fE

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas schrieb:
> Aber ich habe nur ein altes analoges Oszi. Da kann ich nichts
> feststellen, weil das nicht speichert.
Du musst diese Flanke nur oft genug wiederholen, dann siehst du schon, 
wie die aussieht.

Beitrag #7927208 wurde vom Autor gelöscht.
von Rainer W. (rawi)


Lesenswert?

Frank O. schrieb:
> Weißt du die Adresse vom Sensor und hast die angegeben?

Eine vernünftige Software sollte den 1-wire Adressbaum doch erstmal auf 
Sensoren abklappern und nicht die Adressen hartkodiert im Code erwarten.

https://www.analog.com/en/resources/app-notes/1wire-search-algorithm.html

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Rainer W. schrieb:
>> Weißt du die Adresse vom Sensor und hast die angegeben?
>
> Eine vernünftige Software sollte den 1-wire Adressbaum doch erstmal auf
> Sensoren abklappern und nicht die Adressen hartkodiert im Code erwarten.

Wenn nur ein One Wire IC dranhängt, kann man den ohne Adresse direkt 
ansprechen. Aber auch die normale Adressuche kann die Ssftware. Aber all 
das ist gar nicht das Problem. Das ist eher, daß viele Leute gar nicht 
lesen und schon gar nicht verstehen, was der OP schon erfolgreich 
getestet hat!
Die Software funktioniert auch den meisten IO Pins, aber nicht auf PB4 
und PB5.

von Rainer W. (rawi)


Lesenswert?

Falk B. schrieb:
> Die Software funktioniert auch den meisten IO Pins, aber nicht auf PB4
> und PB5.

Ist das jetzt die Wiederholung der Aussage von Andreas oder ist das eine 
Eigenschaft deiner Software (falls 'ja', warum?)?

Andreas schrieb:
> Ich habe die Software hier aus dem Forum von Falk genommen.

: Bearbeitet durch User
von Andreas (ah3112)


Lesenswert?

Lothar M. schrieb:
> Du musst diese Flanke nur oft genug wiederholen, dann siehst du schon,
> wie die aussieht.
Ich versuche das morgen mal. Was mich aber irritiert, ist die Sache, 
dass ich bei der LED das mit dem Logikanalysator sehe. Klar, ist dann 
nicht der DS18S20 angeschlossen.

Falk B. schrieb:
> Die Software funktioniert auch den meisten IO Pins, aber nicht auf PB4
> und PB5.
Genau und auf dem STK600 funktioniert sie sogar auf PB4. Es ist auch nur 
ein einziger DS18S20 angeschlossen. Der auch nicht im parasitären 
Betrieb sondern mit +5V.

Ich habe gerade eben auch bei einem anderen Händler ein Atmega2560 Board 
bestellt. Wenn das nächste Woche kommt, werde ich es damit auch nochmal 
testen.

von Andreas (ah3112)


Angehängte Dateien:

Lesenswert?

Ich habe das jetzt doch noch mit dem Oszi aufgebaut und versucht es so, 
wie Lothar vorgeschlagen hat, zu machen. Zumindest versucht.

Wie ich das gemacht habe, erkläre ich gleich. Hier erst einmal die 
Einstellungen des Oszilloskops bei den einzelnen Fotos.

Foto 1: Port PB4; Oszi: DC; 0,5V; 0,2ms

Foto 2: Port PB4; Oszi: AC; 50mV; 0,2ms

Foto 3: Port PB7; Oszi: DC; 1V; 50us

Foto 4: Port PB7; Oszi: DC; 1V;, 0,2ms

Da es kein Sinn machte, die komplette Software von Falk laufen zu 
lassen, habe ich nur Teile rauskopiert.

Die Software sah folgendermaßen aus:
1
  uint8_t ret = onewire_reset();
2
  printf("ret = %d\n\r", ret);
3
4
  while(1) {
5
    onewire_reset();
6
  }

onewire_reset, unverändert von Falk:
1
uint8_t onewire_reset(void) {
2
    uint8_t err=ONEWIRE_OK;
3
4
    ONEWIRE_PORT &= ~ONEWIRE_MASK;              // low
5
    ONEWIRE_DDR  |=  ONEWIRE_MASK;              // switch to ouput
6
    _delay_us(480);
7
    //ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
8
    uint8_t sreg_tmp=SREG; cli(); // Arduino workaround :-0
9
        ONEWIRE_DDR  &= ~ONEWIRE_MASK;              // switch to input
10
        _delay_us(66);
11
        if( (ONEWIRE_PIN & ONEWIRE_MASK)) {         // no presence pulse detect
12
            err = ONEWIRE_NO_PRESENCE;
13
        }
14
    //}
15
    SREG = sreg_tmp;        // Arduino workaround :-0
16
17
    _delay_us(480);
18
    if( !(ONEWIRE_PIN & ONEWIRE_MASK)) {        // bus short circuit to GND
19
        err = ONEWIRE_GND_SHORT;
20
    }
21
    return err;
22
}

Ursprünglich hatte ich mir nur den ersten Teil aus onewire_reset kopiert 
und wollte das in einer while-schleife laufen lassen
1
  uint8_t err=ONEWIRE_NO_PRESENCE;
2
  while(err ==  ONEWIRE_NO_PRESENCE) {
3
    ...
4
  }
5
  printf("ok\n\r");
6
  while(1);

Dabei fiel mir in Hterm schon auf, dass "ok\n\r" angezeigt wurde, was 
ich aber nicht erwartet hatte. Daraufhin habe ich vor der while-schleife 
einmal onewire_reset aufgerufen und mir den return anzeigen lassen. Der 
war "5". Falk hat dafür
1
#define ONEWIRE_GND_SHORT    5        // bus short circuit to GND
definiert.

Meine Vermutung ist, dass der Eingang des PB4 defekt ist. Ich habe zwar 
den Ausgang mit der LED getestet, aber blöderweise nicht den Eingang.

Mache ich das Ganze mit PB7, dann bekomme ich bei onewire_reset 0 
zurück. Also alles ok. Die Signale (Fotos 3 und 4) sehen auch ganz 
anders aus.

von Sebastian W. (wangnick)


Lesenswert?

Andreas schrieb:
> Foto 3: Port PB7; Oszi: DC; 1V; 50us

Seltsam. Läuft der Atmega2560 nur mit 3.3V?

von Andreas (ah3112)


Lesenswert?

Sebastian W. schrieb:
> Seltsam. Läuft der Atmega2560 nur mit 3.3V?
Über USB. Habe jetzt nicht mehr nachgemessen. Aber gestern habe ich 
direkt am Ds18s20 gemessen. Da lagen 4,8V an.

von Rainer W. (rawi)


Lesenswert?

Andreas schrieb:
> Aber gestern habe ich direkt am Ds18s20 gemessen. Da lagen 4,8V an.

Wie verträgt sich das mit

Andreas schrieb:
> Foto3.jpg und Foto4.jpg

Mit welcher Spannung läuft der Atmega2560?

von Andreas (ah3112)


Lesenswert?

Rainer W. schrieb:
> Mit welcher Spannung läuft der Atmega2560?
Der wird über die USB-Buchse meines PCs versorgt. Vom 5V-Anschluss des 
Boards wird der DS18S20 versorgt.

Beitrag #7927488 wurde vom Autor gelöscht.
von Manfred P. (pruckelfred)


Lesenswert?

Loco M. schrieb im Beitrag #7927488:
> D.h. der DS18S20 hängt an 5V und der 2560 läuft mit 3,3V (siehe 3,3V
> Spannungsregler auf dem Board!!!)

Du kennst das Board, was Andreas nicht näher benennen will?

Die Suche nach "Atmega2560 Pro Board der Firma Joy-IT" zeigt mir einen 
Arduino-Clone samt einer schlechten Beschreibung "Logik Level 5 Volt".

von Andreas (ah3112)


Lesenswert?

Manfred P. schrieb:
> Du kennst das Board, was Andreas nicht näher benennen will?
Ich meine, ich hätte doch geschrieben, dass es das Atmega2560 Pro Board 
ist. Hier mal der Link dazu:
https://www.reichelt.de/de/de/shop/produkt/arduino_kompatibles_mega_2560_pro_board-299355?PROVID=2788&gad_source=1&gad_campaignid=18342381572&gclid=EAIaIQobChMIpOGrmKSgjwMVBJ6DBx3Q1yQFEAQYASABEgJoJfD_BwE

Da das hier in einigen Threads bereits besprochen war, bin ich davon 
ausgegangen, es ist bekannt.

Gestern habe ich mir das bestellt:
https://www.enmindustry.de/p/enm2560-arduino-mega-2560-pro-mini-5v-atmega-2560-16au-development-board

Da gibt es wenigstens eine einigermaßen vernünftige Doku.

von Rahul D. (rahul)


Lesenswert?

Andreas schrieb:
> Der wird über die USB-Buchse meines PCs versorgt. Vom 5V-Anschluss des
> Boards wird der DS18S20 versorgt.

Wie wäre es mit einem Schaltplan als Bild und nicht in Prosa?!

von Rainer W. (rawi)


Lesenswert?

Andreas schrieb:
> Der wird über die USB-Buchse meines PCs versorgt.

Es war nicht die Frage, wie er versorgt wird, sondern mit welcher 
Spannung der Atmega2560 auf dem Board läuft. Das muss nicht Frage einer 
guten oder schlechten Beschreibung bzw. stundenlanger Internetrecherche 
sein, sondern kann durch eine einfache Spannungsmessung mit einem 
Multimeter direkt zwischen VCC- und Gnd-Anschluss des Controllers 
beantwortet werden.

Das Oszi auf Foto3 und Foto4 zeigen eine Spannung von 3,3V, falls die 
Skalierung wie angegeben 1V/div beträgt. Das würde einer 
Betriebsspannung des Atmega2560 von 5V widersprechen, falls die Messung 
direkt vom am IO/Pin  stammt.

von Loco M. (loco)


Lesenswert?

Manfred P. schrieb:
> Loco M. schrieb im Beitrag #7927488:
>> D.h. der DS18S20 hängt an 5V und der 2560 läuft mit 3,3V (siehe 3,3V
>> Spannungsregler auf dem Board!!!)
>
> Du kennst das Board, was Andreas nicht näher benennen will?
>
> Die Suche nach "Atmega2560 Pro Board der Firma Joy-IT" zeigt mir einen
> Arduino-Clone samt einer schlechten Beschreibung "Logik Level 5 Volt".

Nein ich habe auch nur die Beschreibung und Bilder des Boards gesehen, 
und darauf ist ein 3,3V Spannungsregler zu sehen. Daraus habe ich 
zusammen mit Oszi Bild 3 den Schluss gezogen, dass der uC mit 3,3V 
betrieben wird. Andererseits läuft er mit 16MHz und das spricht gegen 
3,3V Betriebsspannung. Alles sehr vage, und deshalb habe ich meinen 
Beitrag wieder gelöscht.

Beitrag #7927577 wurde vom Autor gelöscht.
von Veit D. (devil-elec)


Lesenswert?

5V. Jeder originale oder kompatible hat zusätzlich einen 3.3V LDO drauf, 
für externe Zubehörversorgung, bei Bedarf.

: Bearbeitet durch User
von Andreas (ah3112)


Lesenswert?

Rahul D. schrieb:
> Wie wäre es mit einem Schaltplan als Bild und nicht in Prosa?!
Ich habe von dem Board keinen Schaltplan.

Rainer W. schrieb:
> Es war nicht die Frage, wie er versorgt wird, sondern mit welcher
> Spannung der Atmega2560 auf dem Board läuft.
Sofern man aus den Schaltplänen, die man zu dem Board im Internet 
findet, Rückschlüsse auf das Board schliessen kann, dass ich hier habe, 
dann läuft der mit +5V.

Hier mal ein Schaltplan, den ich im Internet gefunden habe:
https://forum.fritzing.org/t/exploded-view-of-a-mega-2560-pro/11512

Rainer W. schrieb:
> ondern kann durch eine einfache Spannungsmessung mit einem
> Multimeter direkt zwischen VCC- und Gnd-Anschluss des Controllers
> beantwortet werden.
Das werde ich mit Sicherheit nicht machen. Rutsche ich mit den 
Messspitzen ab, zerschieße ich mir nachher meine USB-Schnittstelle. Den 
PC habe ich mir vor 4 Wochen gekauft, bin darauf angewiesen und kann den 
nicht zur Reparatur wegbringen.

Rainer W. schrieb:
> falls die Messung
> direkt vom am IO/Pin  stammt.
Direkt am IO Pin war es nicht, sondern am Stecker des Boards, Pin D10. 
Sofern der Schaltplan zutreffend ist, wäre der direkt mit dem IO Pin 
verbunden. Das habe ich auch im spannungslosen Zustand durch Messen mit 
dem Multimeter herausgefunden.

Wie ich bereits geschrieben hatte, der Ausgang mit einer LED 
funktioniert.

von Rainer W. (rawi)


Lesenswert?

Andreas schrieb:
> Sofern man aus den Schaltplänen, die man zu dem Board im Internet
> findet, Rückschlüsse auf das Board schliessen kann, dass ich hier habe,
> dann läuft der mit +5V.

Nochmal:
Das widerspricht deinem Oszi-Bild. Also miss nach, statt im Internet zu 
kramen.

Andreas schrieb:
> Das werde ich mit Sicherheit nicht machen. Rutsche ich mit den
> Messspitzen ab, zerschieße ich mir nachher meine USB-Schnittstelle.

Zwischen PC und Experimentalaufbauten würde ich IMMER einen 
fremdgespeisten USB-Hub hängen.
Verwende vernünftige, spitze Messspitzen und miss am Abblockkondensator, 
der direkt neben den µC-Pins sein müsste.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Andreas schrieb:
> Das werde ich mit Sicherheit nicht machen.

Ich bin selten so, aber ab und zu muss man dss wohl schreiben.
Dann ist es das falsch Hobby oder die falsche Aufgabe für dich.
Und auch weitere Diskussionen sind überflüssig.
Man braucht richtiges Messwerkzeug, wozu auch dünne Spitzen gehören und 
dann muss man das am stromlosen Gerät üben.
Dort kann man dann eine dünne, scharfe Spitze in das Lötzzinn drücken, 
sodass diese gar nicht erst verrutschen kann und wenn man dann das Gerät 
einschaltet gibt es keine Kurzschlüsse.

von Rainer W. (rawi)


Lesenswert?

Rainer W. schrieb:
> Verwende vernünftige, spitze Messspitzen und miss am Abblockkondensator,
> der direkt neben den µC-Pins sein müsste.

p.s.
Du könntest im ausgeschalteten Zustand mit dem Durchgangsprüfer gucken, 
mit welchen gut zugänglichen Punkten VCC vom µC verbunden ist 
(Abblockkondensator, Spannungsreglerausgang, ...) und dort dann im 
eingeschalteten Zustand messen. Damit du nicht gleichzeitig mit zwei 
Messspitzen rumhantieren musst, hängst du eine fest an den Gnd-Pin vom 
Board.

von Rahul D. (rahul)


Lesenswert?

Andreas schrieb:
> Ich habe von dem Board keinen Schaltplan.

Wen interessiert schon der Schaltplan eines fertigen Boards?
Wie wäre es, mal deinen aktuellen Schaltplan "zu Papier" zu bringen und 
den hier dann einzustellen.
Das, was an deinem Board hängt und wie es dort verdrahtet ist, ist 
interessant.

Andreas schrieb:
> Sofern man aus den Schaltplänen, die man zu dem Board im Internet
> findet, Rückschlüsse auf das Board schliessen kann, dass ich hier habe,
> dann läuft der mit +5V.
Das ist bei AVR noch Standard. Die kommen inzwischen aber auch mit 
weniger Spannung aus.

> Hier mal ein Schaltplan, den ich im Internet gefunden habe:
> https://forum.fritzing.org/t/exploded-view-of-a-mega-2560-pro/11512
Wie gesagt: Das Board interessiert nicht. Das wird funktonieren. Der 
Fehler liegt an DEINER Schaltung und DEINER Software.

Frank O. schrieb:
> Dann ist es das falsch Hobby oder die falsche Aufgabe für dich.
> Und auch weitere Diskussionen sind überflüssig.

Gant deiner Meinung.

von Rainer W. (rawi)


Lesenswert?

Andreas schrieb:
> Hier mal ein Schaltplan, den ich im Internet gefunden habe:
> https://forum.fritzing.org/t/exploded-view-of-a-mega-2560-pro/11512

Wieso misst du 3.3V am IO-Pin, wenn dieser Puzzle-Plan stimmen soll.
Da passt irgendetwas nicht zusammen.

Liefert der IO-Pin auch 3.3V Signale, wenn der Sensor nicht 
angeschlossen ist?

p.s.
Das ist kein Schaltplan, sondern ein Label-Suchspiel

: Bearbeitet durch User
von Rahul D. (rahul)


Lesenswert?

Rainer W. schrieb:
> p.s.
> Das ist kein Schaltplan, sondern ein Label-Suchspiel

Das geht ja noch, da das nur ein Blatt ist, und das Board (aka "Breakout 
Board") nicht viele Bauteile besitzt. Schlimmer sind die fehlenden 
Bauteinbezeichnungen (z.B. dürfte U1 ein RS232-Transceiver sein).

von Nemopuk (nemopuk)


Lesenswert?

Ein unbekanntes Board ohne Schaltplan und Doku ist schon mal der erste 
Fehler. Bevor man damit etwas baut, untersucht und testet man es 
wenigstens. Und zwar jeden einzelnen Anschluss.

Oder man entsorgt es, wenn man darauf keinen Bock hat. Dann sollte man 
sich von diesem billigen Chinakram aber künftig generell fern halten.

von Falk B. (falk)


Lesenswert?

Nemopuk schrieb:
> Ein unbekanntes Board ohne Schaltplan und Doku ist schon mal der erste
> Fehler. Bevor man damit etwas baut, untersucht und testet man es
> wenigstens. Und zwar jeden einzelnen Anschluss.

Dummschwätzer! Er hat das getan! Lies den Originalbeitrag!

von Rahul D. (rahul)


Lesenswert?

Nemopuk schrieb:
> Ein unbekanntes Board ohne Schaltplan und Doku ist schon mal der erste
> Fehler.

Ahnung oder Experimentierwillen sollte man auch haben.

von Nemopuk (nemopuk)


Lesenswert?

Falk B. schrieb:
> Dummschwätzer! Er hat das getan! Lies den Originalbeitrag!

Aber unzureichend. Sonst bräuchte man nicht über die 3,3V und einen 
defekten Eingang zu mutmaßen.

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Andreas schrieb:
> Sebastian W. schrieb:
>> Seltsam. Läuft der Atmega2560 nur mit 3.3V?
>
> Über USB. Habe jetzt nicht mehr nachgemessen. Aber gestern habe ich
> direkt am Ds18s20 gemessen. Da lagen 4,8V an.

Andreas schrieb:
> Rainer W. schrieb:
>> Mit welcher Spannung läuft der Atmega2560?
>
> Der wird über die USB-Buchse meines PCs versorgt. Vom 5V-Anschluss des
> Boards wird der DS18S20 versorgt.

Die Versorgungsspannung des Atmega2560 kann zwischen +5V und GND-Header 
gemessen werden. Du misst dort 4.8V, das ist in Ordnung.

Dennoch zeigt Foto3 an PB7 (Header D13) nur einen Spannungshub von 3.3V. 
Das ist seltsam. Zwar ist an D13 meist zusätzlich noch die Onboard-LED 
angeschlossen, die sollte PB7 aber nicht derart belasten, dass die 
High-Spannung dort auf 3.3V einbricht.

Zeig mal ein Foto deines Testaufbaus.

Und beobachte mal die Versorgungsspannung zwischen +5V und GND während 
der OneWire-Kommunikation mit dem Oszi, um so die Ursache einzugrenzen.

Das wären zumindest meine jetzigen Vorschläge.

LG, Sebastian

von Andreas (ah3112)


Lesenswert?

Rahul D. schrieb:
> Wie gesagt: Das Board interessiert nicht. Das wird funktonieren. Der
> Fehler liegt an DEINER Schaltung und DEINER Software.
Willst Du es nicht begreifen? Die Software habe ich von Falk genommen 
und zum Test, ohne jegliche weitere Software, auf das Board gespielt. 
Die funktioniert einwandfrei. Die Software von Falk habe ich auch schon 
vor Monaten auf dem STK600 mit dem Atmega2560 getestet.

Es handelt sich um einen DS18S20 Temperaturfühler. Der an Pin 3 mit +5V 
des Boards versorgt wird. An Pin 1 liegt GND und an Pin 2 PB4 (bzw. PB5, 
PC7, PB6 oder PB7). Der Pullup von 4,7k zwischen der Datenleitung und 
Pin 3 ist auch vorhanden. Unterschiedliche Pullups habe ich bereits 
getestet.

Damit es alle begreifen. Die Software funktioniert an PC7, PB6 und PB7 
des Boards. Nur nicht an PB4 und PB5. Wenn ich die Software ändere von 
PB4 auf irgendeinen anderen Port, stecke ich nur den Anschluss von D10 
(PB4) auf den entsprechenden Anschluss von PC7, PB6 und PB7 um. Alles 
andere bleibt unverändert. Dann läuft das einwandfrei. An PB4 läuft sie 
auch auf meinem STK600.

Auf den restlichen unsachlichen Scheiss gehe ich nicht ein. Ich gehe mal 
davon aus, dass nächste Woche das neue Board geliefert wird. Über das 
Ergebnis werde ich dan hier informieren.

Bis dahin erst einmal vielen Dank.

von Rainer W. (rawi)


Lesenswert?

Andreas schrieb:
> Kann es sein, dass ausschließlich PB4 und PB5 defekt sind?

In deinem speziellen Fall ist das eher unwahrscheinlich, denn

Andreas schrieb:
> Lasse ich an PB4 eine LED blinken, dann funktioniert das auch.

Andreas schrieb:
> Auf den restlichen unsachlichen Scheiss gehe ich nicht ein.

Wie sehen die Pegel an PB4 bei blinkender LED aus, wenn du die über 
einen Widerstand zwischen IO und Gnd anschließt?

Ob der Widerspruch zwischen deinen Oszi-Messungen (Pegel 3.3V) und 
deiner Behauptung, dass der Atmega2560 angeblich mit 5V läuft, wirklich 
"unsachlicher Scheiss" ist, wirst du selber herausfinden müssen, wenn du 
darauf nicht eingehst. +++

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Andreas schrieb:
> Hat jemand eine Idee, wie ich das Eingrenzen kann bzw. was der Grund
> sein könnte. Kann es sein, dass ausschließlich PB4 und PB5 defekt sind?


Ich verstehe die ganze Diskussion nicht.
Selbst die Frage, nicht.

Wenn ein µC nicht das tut, was im Datenblatt steht.....
Wenn Vergleichsmessungen zeigen, dass seine Brüder sich sehr wohl an das 
Datenblatt halten.....

Dann ist was faul mit dem einen µC, der Schaltung, Platine oder Lötung.



Andreas schrieb:
> Was ich mir allerdings nicht erklären kann.
Was da konkret faul ist, wird man von hier aus, von der anderen Seite 
des Internet, nicht sagen können.

von Andreas (ah3112)


Lesenswert?

Rainer W. schrieb:
> Wie sehen die Pegel an PB4 bei blinkender LED aus, wenn du die über einen 
Widerstand zwischen IO und Gnd anschließt?
Das hatte ich mir auch schon überlegt zu testen. Habe das Ganze aber 
erst mal abgebaut.

Rainer W. schrieb:
> Ob der Widerspruch zwischen deinen Oszi-Messungen (Pegel 3.3V) und
> deiner Behauptung, dass der Atmega2560 angeblich mit 5V läuft, wirklich
> "unsachlicher Scheiss" ist, wirst du selber herausfinden müssen, wenn du
> darauf nicht eingehst. +++
Das war nicht mit "unsachlicher Scheiss" gemeint.

Arduino F. schrieb:
> Dann ist was faul mit dem einen µC, der Schaltung, Platine oder Lötung.
Ich tippe auf den Controller. Die Lötstelle der Stiftleiste habe ich 
nachgelötet. Ausserdem funktioniert die blinkende LED.

Arduino F. schrieb:
> Was da konkret faul ist, wird man von hier aus, von der anderen Seite
> des Internet, nicht sagen können.
Ist mir klar. Mir ging es auch darum, Tipps für die Eingrenzung des 
Fehlers zu bekommen. Parallel habe ich eine Email an den Hersteller 
geschickt. Die Antwort wird aber dauern.

Wenn das neue Board kommt werde ich hier berichten.

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Als erstes würde ich prüfen, ob die vom Oszilloskop gezeigte Spannun 
stimmt. Bei manchen analogen Geräten kann man sich schnell etwas 
unbeabsichtigt verstellen. Meins hatte z.B zusätzlich zum Wahlschalter 
für die V/div auch eine Poti für stufenlose zwischenwerte.

Als nächstes würde due Spannungspegel der problematischen Ausgängd 
versus funktionierende prüfen. Und zwar sowohl HIGH als auch LOW Pegel 
mit Lastwiderstand in die Gegenrichtung.

Dann würde ich die Pins als Eingang testen und dabei den Leckstrom 
kontrollieren (soll weit unter 1uA sein).

Was auch wichtig ist: Im laufenden Betrieb die Versorgungsspannung 
prüfen. Ist sie stabil genug? Mehr als 100mV Schwankungen deuten auf 
einen Fehler hin. Nicht selten ist es das USB Kabel.

Bei USB Ports, die schon mal einen Kurzschluss hatten, ist die Spannung 
unter Last oft weniger stabil als vorher, weil die Polyfuse hochohmiger 
geworden ist. Manche Arduino Boards enthalten eine weitere Polyfuse, die 
ebenfalls verschlissen sein kann.

von Chris S. (Firma: hier&da) (keiningenieur)


Lesenswert?

Andreas schrieb:
> Hat jemand eine Idee, wie ich das Eingrenzen kann bzw. was der Grund
> sein könnte. Kann es sein, dass ausschließlich PB4 und PB5 defekt sind?
> Was ich mir allerdings nicht erklären kann.

NEIN!! Wenn PB4/5 manuel mit Led blinken ist die HW auch i.O.

Ich tippe:
1. falsche Taktquelle im 2650 eingestellt
2. DS18 auch am richtigen Pin angeschloßen
3. prüfe ob es mit dem Timer2 kollidiert
denn PB4 wird mit OC2A und PCINT4 als doppelfunktion belegt
https://www.makershop.de/download/mega-pro-schematics.png
Laut Plan sollte es D10 sein der auf J6:11 liegt

von Andreas (ah3112)


Lesenswert?

Chris S. schrieb:
> 1. falsche Taktquelle im 2650 eingestellt
Schliesse ich aus, da es mit PC7, PB6 und PB7 funktioniert. Dasselbe 
Board, derselbe Controller. Dieselbe Software, nur in den defines alles 
auf den entsprechenden Port geändert. Sonst war die Software 
unverändert.

Chris S. schrieb:
> 2. DS18 auch am richtigen Pin angeschloßen
Ja, denn stecke ich das am Board um, geht es auf den anderen Ports, am 
DS18s20 wird gar nichts umgesteckt.

Chris S. schrieb:
> 3. prüfe ob es mit dem Timer2 kollidiert
Timer 2 wird in der Software gar nicht verwendet.

Chris S. schrieb:
> Laut Plan sollte es D10 sein der auf J6:11 liegt
Es steht an dem Board auch D10 drauf. Sicherheitshalber habe ich das, 
bevor ich den Thread aufgemacht habe, mit dem Multimeter bis zum 
Controller durchgemessen, passt alles.

Nemopuk schrieb:
> Dann würde ich die Pins als Eingang testen und dabei den Leckstrom
> kontrollieren (soll weit unter 1uA sein).
Habe ich gemacht. Leider hat dabei auch alles funktioniert. Dabei war 
zwar nicht der DS18S20 angeschlossen, aber wenn ich High am Eingang oder 
Low angelegt hatte, wurde mir das sauber über printf ausgegeben.

Ich gebe es erstmal auf und warte, dass das neue Board kommt.

von Nemopuk (nemopuk)


Lesenswert?

Die 3,3V sind unerwartet. Dessen Ursache muss gefunden werden.

Haben die Signale ohne Last 5V? Auchit geringer Last wie 1k Ohm messen. 
Ist die Stromversorgung zu schwach, oder der Port? Zieht etwas die 
Signale stärker runter, als es sollte? Passiert das auch an den 
funktionierenden Ports? Wie hast du die Sensoren angeschlossen 
(Schaltplan!)?

Falls es am neuen Board funktioniert, würde ich trotzdem nachmessen. Es 
kann nämlich sein, dass die Signalqualität an der Grenze zwischen geht 
und geht nicht liegt, also irgendwann später wieder Frust aufkommt.

: Bearbeitet durch User
von Andreas (ah3112)


Lesenswert?

Ich wollte nochmal kurz Rückmeldung geben.

Das neue Board ist gestern bei mir eingetroffen, Leider hat es etwas 
länger gedauert, weil es bei dem Händler Probleme gab, wo ich es 
eigentlich bestellt hatte und ich es dann letztendlich woanders bestellt 
habe.

Vorab, mit dem neuen Board wird der DS18S20 einwandfrei an PB4 erkannt.

Ich habe zunächst die Software von Falk aufgespielt und das Ganze auf 
einem Breadboard verdrahtet. Damit stand die Verbindung zum DS18S20 und 
es wurden mir plausible Temperaturen angezeigt.

Daraufhin habe ich meine eigene Software aufgespielt. Diese beinhaltet 
aber Routinen von Falk. Auch damit wurde mir angezeigt, dass der DS18S20 
erkannt wurde und auch die Temperatur angezeigt.

Danach habe ich exakt dieselbe Software auf das alte Board aufgespielt. 
Der DS18S20 wurde nicht erkannt.

Ich belasse es jetzt dabei. Wie ich geschrieben hatte, wurde bereits vor 
Wochen schon eine Testsoftware aufgespielt, bei der auf dem Board PB4 
sowohl als Eingang als auch als Ausgang funktioniert hatte. Was 
allerdings entgegen meinen Erwartungen war. Nach irgendwelchen weiteren 
Fehlern auf dem alten Board werde ich nicht mehr suchen. Davon 
abgesehen, dass ich dazu teilweise überhaupt nicht die technischen 
Möglichkeiten habe, Stichwort Leckstrom.

Danke nochmal an alle für die Vorschläge und Bemühungen.

von Nemopuk (nemopuk)


Lesenswert?

Alle Anschlüsse von Mikrochips, die die Platine verlassen, sollte man 
mindestens mit R/C Gliedern schützen.

von Joachim B. (jar)


Lesenswert?

Nemopuk schrieb:
> Alle Anschlüsse von Mikrochips, die die Platine verlassen, sollte man
> mindestens mit R/C Gliedern schützen.

und wieder mal ein Unsinnstip vom selbsternannten Elektronikspezialist, 
manno Stefan halte doch mal die Finger still und zügele deinen 
Schreibdurchfall.

von Falk B. (falk)


Lesenswert?

Joachim B. schrieb:
> und wieder mal ein Unsinnstip vom selbsternannten Elektronikspezialist,
> manno Stefan halte doch mal die Finger still und zügele deinen
> Schreibdurchfall.

Ach, ist der Stefan F. alias Monk alias Nepomuk mal wieder mit einem 
neuen Namen unterwegs, weil seine alten Logins alle verbrannt sind? 
Faszinierend . . .

von Rahul D. (rahul)


Lesenswert?

Falk B. schrieb:
> Ach, ist der Stefan F. alias Monk alias Nepomuk mal wieder mit einem
> neuen Namen unterwegs, weil seine alten Logins alle verbrannt sind?
> Faszinierend . . .

Da fehlen noch ein paar zig Namen ;)

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
Noch kein Account? Hier anmelden.