Der AVR-/ARDUINO-Faden

Der chaotische Hauptfaden

Moderatoren: Finger, Sven, TDI, Heaterman, duese

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Do 15. Apr 2021, 18:57

Ich hänge gerade fest:
Ich hab ein W5100 Ethernet-Shield per SPI am Arduino nano. Da wird er erkannt.

Am Arduino Mega 2560 bekomme ich das nicht zum laufen, ich hab schon 3 Arduino Mega 2560 probiert.
Wo kann das denn hängen? Das shield wird schlicht nicht erkannt. Ich hab auch schon die Initialisierung verzögert....

Benutzeravatar
Später Gast
Beiträge: 1089
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Später Gast » Do 15. Apr 2021, 19:38

andere SPI-Pins, Chip select? Auch im Code angepasst?

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Do 15. Apr 2021, 19:43

Später Gast hat geschrieben:
Do 15. Apr 2021, 19:38
andere SPI-Pins, Chip select? Auch im Code angepasst?
Die SPI-Pins habe ich verglichen und auch mit dem Multimeter sicherheitshalber nochmal verlichen.
Chip-select habe ich auch geprüft.
Im Code muss ich das nicht anpassen, das macht der Arduino-Compiler, der weiss ja welche CPU ich da habe.
Oder sollte ich da in der SPI.h in der Fußpilzebene suchen?

Benutzeravatar
sukram
Beiträge: 1232
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: Der AVR-/ARDUINO-Faden

Beitrag von sukram » Do 15. Apr 2021, 19:47

Hast du in den Fuses das JTAG ausgeschaltet? Und SPI eingeschaltet?

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Do 15. Apr 2021, 19:59

sukram hat geschrieben:
Do 15. Apr 2021, 19:47
Hast du in den Fuses das JTAG ausgeschaltet? Und SPI eingeschaltet?
Ja, hab ich.
Aber ich habe Hinweise gefunden, das man wohl den SS Pin , (Pin53 bei Mega2560, Pin10 bei Nano) auf Output schalten soll.
Grundsätzlich bei SPI-Master Betrieb.
Teste ich mal.

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Do 15. Apr 2021, 22:39

Man kann das nur wahnsinnig werden!!!!
Also überall steht am 2560 wird der SS Pin an Pin53 angeschlossen. Im Pinout des Arduino Mega2560 steht auch am Pin53 dran SS.
Aber das Ethernet Shield W5100 funktioniert nicht.
Nada.
Nun hab ich einfach mal den Port D10 Pin10 benutzt. Das ist PB04, nix SS.
Jetzt klappt das.
Es scheint die spi.h nicht auf den 2560 angepasst zu sein.

Man man man.

sysconsol
Beiträge: 3263
Registriert: Fr 8. Jul 2016, 17:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von sysconsol » Fr 16. Apr 2021, 07:29

Habe gerade einen Mega2560 v3 dienstlich hier liegen :roll:
Da soll eine SD-Karte dran.
Den SS-Pin kannst du hinlegen, wo du willst. Musst du in der Software aber auch zuordnen.
Spätestens wenn du mehrere SPI-Geräte hast, brauchst du ja auch mehrere SS-Pins.

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Fr 16. Apr 2021, 10:11

Frag mich mal wo ich den SS Pin definiere bei der Ethernet.h.
Die nimmt bei Nanos den Pin 10 und beim Mega eigentlich 53.
Nur warum klappt das nicht?
Pin 4 ist für die SD Card in der Sd Lib drin.
https://www.arduino.cc/en/reference/ethernet

Benutzeravatar
Später Gast
Beiträge: 1089
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Später Gast » Fr 16. Apr 2021, 11:20

da stehts doch:
On both boards, pin 10 is used as SS. On the Mega, the hardware SS pin, 53, is not used to select the Ethernet controller chip, but it must be kept as an output or the SPI interface won't work.

sysconsol
Beiträge: 3263
Registriert: Fr 8. Jul 2016, 17:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von sysconsol » Fr 16. Apr 2021, 13:07

Das sagt aber nur, dass ich den Pin 53 nicht anderweitig verwenden darf.
Benutze ich ihn nicht, muss ich ihn freilassen.

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Fr 16. Apr 2021, 14:07

Ja, genau.
Es funktioniert aber nicht ohne den SS beim Mega, es steht da nicht klar das man Pin 10 nehmen muss auch beim Mega.

ch_ris
Beiträge: 1282
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » Sa 17. Apr 2021, 08:33

schachcomputer:
ich möchte nochmal Rat einholen bevor ich Rat erteile.
als sensor sind jetzt Reed kontakte gesetzt.
es braucht ja aber auch ein Feedback(1 led pro feld), da bietet sich ja ein MAX7221 an, gibt's ja schon fertig und günstig auf Platine.
jetzt war meine Idee, einen weiteren MAX7221 ebenso für die Reedkontakte zu benutzen,
und dann per reed Relais an der vcc des MAX die Stromaufnahme (schalter on/off) zu messen.
gut oder nicht gut?

edit. die könnte man ja kaskadieren und damit evtl. auf einen Nano zurückgreifen weil nur ein SPI nötig.

j.o.e
Beiträge: 474
Registriert: Fr 29. Nov 2019, 01:15

Re: Der AVR-/ARDUINO-Faden

Beitrag von j.o.e » Sa 17. Apr 2021, 12:47

ch_ris hat geschrieben:
Sa 17. Apr 2021, 08:33
schachcomputer:
ich möchte nochmal Rat einholen bevor ich Rat erteile.
als sensor sind jetzt Reed kontakte gesetzt.
es braucht ja aber auch ein Feedback(1 led pro feld), da bietet sich ja ein MAX7221 an, gibt's ja schon fertig und günstig auf Platine.
jetzt war meine Idee, einen weiteren MAX7221 ebenso für die Reedkontakte zu benutzen,
und dann per reed Relais an der vcc des MAX die Stromaufnahme (schalter on/off) zu messen.
gut oder nicht gut?

edit. die könnte man ja kaskadieren und damit evtl. auf einen Nano zurückgreifen weil nur ein SPI nötig.
Du willst die Reedkontakte auch elektrisch in einer Matrix anordnen? Bedenke dabei, dass bis zu 32 der Kontakte geschlossen sind. Muss man entkoppeln, z.B. über Dioden, sonst wird das nichts. Es gibt auch Hallgeber mit 2 o.C. Ausgängen. Die sind extra für sowas gemacht.

Dir ist schon klar, dass der MAX7221 die LED-Matrix mit ca. 800 Hz scant. Welche Aussage denkst du aus "der Strommessung an Vcc" zu gewinnen? Hast dir wenigstens mal ansatzweise die Signale am MAX angeschaut? Wenn man das SEHR verfeinert, könnte es hinhauen - könnte...

https://www-user.tu-chemnitz.de/~heha/M ... matrix.htm ist aber sicher zielführender.

Was man machen kann: Die Spaltentreiber gemeinsam für Anzeige und Kontakte verwenden. Für die LEDs brauchts dann einen Zeilentreiber, für die Reeds einen Zeilenleser. MAX7221 ist dann aber außen vor.

Edit: Vergleiche hierzu #6 im von mir genannten Link.

Benutzeravatar
sukram
Beiträge: 1232
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: Der AVR-/ARDUINO-Faden

Beitrag von sukram » Sa 17. Apr 2021, 14:01

Die geschickteste Variante wäre IMHO zwei 74HC164 als Spalten und Zeilentreiber, sowie ein 74HC165 zum Lesen der Kontakte. Das ganze über SPI beschrieben.

ch_ris
Beiträge: 1282
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » Sa 17. Apr 2021, 17:45

danke, guck ich mir morgen am pc mal genauer an.
joe meinst du angeschaut im dabla oder in echt? (weder das eine noch das andere.)
ich bin da auch nicht wirklich involviert, denke nur theoretisch drüber nach.
die, meine, naive? idee ist, jeweils nur einen Schalter software mäßig anschalten, die Stromaufnahme steigt über die schaltschwelle vom reedrelais=reed schalter ist betätigt.

Profipruckel
Beiträge: 1493
Registriert: Di 13. Aug 2013, 19:10
Wohnort: Niedersachsen Süd-Ost

Re: Der AVR-/ARDUINO-Faden

Beitrag von Profipruckel » Sa 17. Apr 2021, 19:47

sysconsol hat geschrieben:
Fr 16. Apr 2021, 13:07
Das sagt aber nur, dass ich den Pin 53 nicht anderweitig verwenden darf.
Benutze ich ihn nicht, muss ich ihn freilassen.
Du hast weiter oben den Link https://www.arduino.cc/en/reference/ethernet gepostet. Auch wirklich gelesen, die darin enthaltenen Details verfolgt?

https://www.arduino.cc/en/Reference/EthernetInit

void setup() {
Ethernet.init(53); // use pin 53 for Ethernet CS
Ethernet.begin(mac, ip);
}


Das gilt auch für die SD.h, die ich allerdings nur am Nano benutze:
const int chipSelect = 10;
SD.begin(chipSelect);


Ich weiß nicht genau, wer mir beim Nano in die Suppe spuckt, sobald ich die SPI.h eingebunden habe, kann ich den D10 nicht mehr anderweitig verwenden. Ist eigentlich egal, dann nehme ich den halt als CS - aber das klingt ähnlich wie Dein 53 am 2560.

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Sa 17. Apr 2021, 22:14

Ich könnte schwören, das ich das Ethernet.init(53);
getestet habe und dann eine Compilerwarung bekommen habe mit irgendwas mit
"Nenene das geth nicht!, Pfui!"
Nun frisst der Compiler das, der Verräter.
Ich teste den Sketch morgen mal mit Ethernet.init(53):

Vielleicht hab ich auch Ethernet.ini(53); versucht......
Profipruckel hat geschrieben:
Sa 17. Apr 2021, 19:47

Du hast weiter oben den Link https://www.arduino.cc/en/reference/ethernet gepostet. Auch wirklich gelesen, die darin enthaltenen Details verfolgt?

https://www.arduino.cc/en/Reference/EthernetInit

void setup() {
Ethernet.init(53); // use pin 53 for Ethernet CS
Ethernet.begin(mac, ip);
}

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » So 18. Apr 2021, 08:55

Ja, jetzt geht der.

Also es scheint wie folgt:
Nach langem Suchen und Fluchen hatte ich den Passus mit dem Ethernet.init(53) auch gefunden und mich gefreut, das ich es wahrscheinlich gefunden habe und das Problem aus der Welt ist.
Vorher hatte ich auch Ethernet.begin(mac, ip, 53) versucht.
Da bekam ich das

Code: Alles auswählen

ArduNodeMqtt2-DS18B20:182:29: error: call of overloaded 'begin(byte [6], IPAddress&, int)' is ambiguous
So hab ich dann irgendwann das mit dem Ethernet.init(53) gefunden und getestet:

Code: Alles auswählen

class EthernetClass' has no member named 'ini'; did you mean 'init'
Ich hab das schlicht nicht verstanden was DA STEHT
did you mean 'init

In der Regel kommt vom Compiler immer gemecker, das man wieder mal ein char* nicht mit einem int verrechnen kann, oder so Zeug.

Benutzeravatar
Fritzler
Beiträge: 10144
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Fritzler » So 18. Apr 2021, 09:00

Der GCC bekommt immer bessere Fehlermeldungen.
Die Funktionsvorschläge bei vertippern sind schon nett.

Der GCC haut dir auch Warnings um die Ohren wenn er meint, dass der Buffer beim snprintf nicht groß genug sei für den übergebenen Formatstring ;)

Profipruckel
Beiträge: 1493
Registriert: Di 13. Aug 2013, 19:10
Wohnort: Niedersachsen Süd-Ost

Re: Der AVR-/ARDUINO-Faden

Beitrag von Profipruckel » So 18. Apr 2021, 17:14

Hightech hat geschrieben:
So 18. Apr 2021, 08:55
Ja, jetzt geht der.

Also es scheint wie folgt:
Nach langem Suchen und Fluchen hatte ich den Passus mit dem Ethernet.init(53) auch gefunden und mich gefreut, das ich es wahrscheinlich gefunden habe und das Problem aus der Welt ist.
Vorher hatte ich auch Ethernet.begin(mac, ip, 53) versucht.
Freut mich, dass es geholfen hat :D

Mich würde noch interessieren, ob Du am Mega2560 beliebige andere PINs verwenden kannst, z.B. D10.

Benutzeravatar
Hightech
Beiträge: 7089
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » So 18. Apr 2021, 17:19

Profipruckel hat geschrieben:
So 18. Apr 2021, 17:14
Hightech hat geschrieben:
So 18. Apr 2021, 08:55
Ja, jetzt geht der.

Also es scheint wie folgt:
Nach langem Suchen und Fluchen hatte ich den Passus mit dem Ethernet.init(53) auch gefunden und mich gefreut, das ich es wahrscheinlich gefunden habe und das Problem aus der Welt ist.
Vorher hatte ich auch Ethernet.begin(mac, ip, 53) versucht.
Freut mich, dass es geholfen hat :D

Mich würde noch interessieren, ob Du am Mega2560 beliebige andere PINs verwenden kannst, z.B. D10.
Für andere Anwendungen meinst du, das die wieder frei sind?
Den D10 hatte ich ja als Notlösung dran am Ethernetshield.

Was wohl nicht geht, ist zB. D9 oder andere Pins zu nutzen UND Pin53 für Input. Dann schaltet der wohl hart auf SPI-Slave.

Benutzeravatar
Cubicany
Beiträge: 2289
Registriert: Sa 15. Feb 2020, 17:48
Wohnort: Soest

Re: Der AVR-/ARDUINO-Faden

Beitrag von Cubicany » Fr 23. Apr 2021, 19:46

Ich hatte vor, mit einem Nano und Schieberegister 74HC595 eine Segmentanzeige zum leuchten zu bringen.

Der Haken: Die hat 3 LEDs pro Segment (selbst gebaut) Also so etwa 60 Ma pro Ausgang vom Register.

Kann man das wie eine normale Anzeige anschließen oder ist der Strom zu viel?

Wenn der Strom das Problem ist, wie könnte ich es lösen?

Tobi
Beiträge: 679
Registriert: So 11. Aug 2013, 16:52
Wohnort: Eschweiler

Re: Der AVR-/ARDUINO-Faden

Beitrag von Tobi » Fr 23. Apr 2021, 20:37

Schau halt im Datenblatt nach wieviel Strom dein Schieberegister liefern kann.

Benutzeravatar
Finger
Administrator
Beiträge: 5152
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Finger » Fr 23. Apr 2021, 21:11

Ansonsten sowas wie.n ULN2003 oder so als Treiber

Benutzeravatar
Cubicany
Beiträge: 2289
Registriert: Sa 15. Feb 2020, 17:48
Wohnort: Soest

Re: Der AVR-/ARDUINO-Faden

Beitrag von Cubicany » Fr 23. Apr 2021, 21:12

Also ich komme mit dem Datenblatt irgendwie nicht zurecht.

Da stehen X Angaben zu VCC und ESD Schutz, aber ich kann nicht so wirklich herauslesen, wie viel mA die Ausgänge können.

Antworten