Upcoming maintenance
Dear Customers and Partners.
This website will be undergoing scheduled maintenance on June 14, 2023. Please be aware there may be disruption to the developer portal website and associated services during the scheduled maintenance period.
This upgrade is essential to ensure the continued performance, reliability, and security of Developer World.
We apologize for any inconvenience.
wiznet 6100 (WZ610MJ Rev1.0) with arduino ethernet libraries
-
@kamiltomaszewski a dial? as in a potentiometer?
i'm presently using the extension board in order to get faster SPI speeds from using SPI channel 4 instead of channel 5 on the main board. the ethernet chip im using says it supports up to a 70MHz spi clock speed as well as SPI modes 0 and 3, so i'm not sure if that's the issue. Do you think those options are worth exploring anyway?
would using pin 10 as the CS pin cause issues? that is presently how I have it wired on the extension board.
Thanks so much for your help
Andy Adams -
@andycadams2011 changing the cs pin helped, it seems there is more meaningful communication going on. What should i expect to be seeing as far as communication between these chips?
-
@andycadams2011 Additionally, if you use a pin other than 10 as SPI CS, the CS control functions should look like this:
#elif defined(ARDUINO_spresense_ast) inline static void initSS() { pinMode(ss_pin, OUTPUT); } inline static void setSS() { digitalWrite(ss_pin, LOW); } inline static void resetSS() { digitalWrite(ss_pin, HIGH); } #else
Currently, your CS does not change state.
-
@kamiltomaszewski where would i add that code? does that go into one of the library files?
also it appears the CS pin is changing, its just being held low through the entire SPI communication
-
@andycadams2011 Did you modify this file: https://github.com/Wiznet/Ethernet/blob/a07596c08dd52038fcf35a6006e05e6f50955477/src/utility/w5100.h#L546 as I showed here: https://github.com/kamtom480/Ethernet/commit/f939d8d83a00223eae38e4d2bc748ec277820064?
In fact, if you are using a pin other than 10 as SPI CS, you can only modify
src/EthernetClient.cpp
as I showed here: https://github.com/kamtom480/Ethernet/commit/f939d8d83a00223eae38e4d2bc748ec277820064 -
@kamiltomaszewski yes. i went back and redownloaded the library and made changes mentioned in your first post just to be safe and its still giving me the same issue. Would it be easier if I uploaded my modified library files somewhere?
-
@andycadams2011 Yes, it will be easier when you upload it somewhere.
-
-
@andycadams2011 I've narrowed the problem down to the softReset() function call. it appears to return 0 when chip = 61.
console print:
update: I've further narrowed the problem down to this "ReadSYSR_W6100()" function call which evaluated to 255. It would need to be a value between 0-127 in order to break this do-while loop.
-
@andycadams2011 Please try this: https://github.com/Bearham/EthernetLibrary/pull/1. Remember that SPI CS should be connected to pin 9.
Best Regards,
Kamil Tomaszewski -
@kamiltomaszewski That change did not solve the issue, I still get an error that the ethernet shield was not found. I've been calling Ethernet.init(9) in my program, which sets should set "uint8_t W5100Class::ss_pin" variable to 9 if im understanding the library correctly? (which is entirely possible that i'm not)
what else would be useful for me to provide?
-
@andycadams2011 What operating voltage of the GPIO pin sockets are you using: https://developer.sony.com/develop/spresense/docs/hw_docs_en.html#_setting_operating_voltage?
-
@kamiltomaszewski operating voltage is 3v3
after restarting it 3 times, it seems to have started working. The library recognizes the board, however It says that an ethernet cable is not connected?
-
@andycadams2011 it seems like the issue is with the Ethernet.linkStatus() call. should i be expecting these calls to work with the 6100?
I've tracked the issue down to this section of code, which evaluated to 6, which then returns LINK_OFF:
-
@andycadams2011 According to chapter 4.1.18 this is the correct link status checking: http://wizwiki.net/wiki/lib/exe/fetch.php/products:w6100:w6100_ds_v104e.pdf
Could you please try unplugging the cable and see what the return value will be? Also 6?
-
@kamiltomaszewski 6 was the value for 1 test. However after unplugging/plugging in power to the setup and reloading the code, it no longer recognizing the board anymore? it seems to be having intermittent issues so i'm going to go over my wiring and see if that's maybe an issue? would lowering the SPI speed help here? is it possible that the SPI speed of 14mhz is too fast for a setup wired up on a breadboard?
edit: 6 is consistently the value of the PHYSR register with and without a cable connected. which concerns me because according to the data sheet, bit 7 should be asserted with the cable unplugged?
-
@KamilTomaszewski it seems despite the issues with the misreported hardware status, i'm able to run the arduino chat server sketch successfully. do you foresee the misreported hardware status leading to any issues in the future with the ethernet library? if not, then this is probably working well enough for my project! Thank you so much for all of your help, i really appreciate it!
-
@andycadams2011 Could you please try to check the status link at the end of the application? After the connection is established.
-
@kamiltomaszewski it appears that after a client connects to the device that the linkstatus stops reporting that the ethernet cable is disconnected