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
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.
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
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.
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.
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.
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
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.
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
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.
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
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.
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.
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: > 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?
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.
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".
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.
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?!
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.
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.
5V. Jeder originale oder kompatible hat zusätzlich einen 3.3V LDO drauf, für externe Zubehörversorgung, bei Bedarf.
:
Bearbeitet durch User
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.
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
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.
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.
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.
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
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).
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.
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!
Nemopuk schrieb: > Ein unbekanntes Board ohne Schaltplan und Doku ist schon mal der erste > Fehler. Ahnung oder Experimentierwillen sollte man auch haben.
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
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
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.
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. +++
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.
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
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.
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
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.
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
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.
Alle Anschlüsse von Mikrochips, die die Platine verlassen, sollte man mindestens mit R/C Gliedern schützen.
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.
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 . . .
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.