ello Everyone
I have an ATMEGA164P brd to which I am trying to connect Ethernet Wiz Click W5500 Development Board (https://www.digikey.com/product-detail/en/mikroelektronika/MIKROE-1718/1471-1413-ND/5258596). I am not able to get the PING working.
The connections between the two boards are as follows
Atmega164P ----- ETH CLICK Brd
MOSI ------------- SDI
MISO ------------- SDO
SCLK -------------- SCK
CS (PORTB.4) ------ CS
PORTB.3 ---------- RST
I cannot get the ping working. On the development board LINK STAT LED glows showing LINK is established but CRS LED blinks GREEN at times.
I use BASCOM AVR for coding. This is my 1st post I donβt know if there is a special way to post code.
$regfile = "M164pdef.dat"
$crystal = 3686400
$baud = 57600
$hwstack = 80
$swstack = 80
$framesize = 80
Config Serialin = Buffered , Size = 8
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 0
Spiinit
Config Pinb.3 = Output
Config Portb.4 = Output
W5500_nreset Alias Portb.3
Wiz5500_cs Alias Portb.4
'Common registers
'Mode register
Const W5500_mr = &H0000
'Gateway address registers
Const W5500_gar0 = &H0001
Const W5500_gar1 = &H0002
Const W5500_gar2 = &H0003
Const W5500_gar3 = &H0004
'Subnet mask Address registers
Const W5500_subr0 = &H0005
Const W5500_subr1 = &H0006
Const W5500_subr2 = &H0007
Const W5500_subr3 = &H0008
'Source Hardware Address registers
Const W5500_shar0 = &H0009
Const W5500_shar1 = &H000A
Const W5500_shar2 = &H000B
Const W5500_shar3 = &H000C
Const W5500_shar4 = &H000D
Const W5500_shar5 = &H000E
'Source IP Address registers
Const W5500_sipr0 = &H000F
Const W5500_sipr1 = &H0010
Const W5500_sipr2 = &H0011
Const W5500_sipr3 = &H0012
Dim Value As Byte
Dim Adres As Word
Dim Adresl As Byte At Adres Overlay
Dim Adresh As Byte At Adres + 1 Overlay
Dim Wiz5500_opcode_read As Byte
Wiz5500_opcode_read = &H00
Dim Wiz5500_opcode_write As Byte
Wiz5500_opcode_write = &H04
Declare Sub Wiz5500_writevalue(byval Reg As Word , Byval Value As Byte)
Declare Sub Wiz5500_reset
Enable Interrupts
Call Wiz5500_reset 'Hardware reset
'Register reset
Call Wiz5500_writevalue(w5500_mr , &H80)
'Set Gateway Ip Address ' 192.168.1.1
Call Wiz5500_writevalue(w5500_gar0 , &HC0)
Call Wiz5500_writevalue(w5500_gar1 , &HA8)
Call Wiz5500_writevalue(w5500_gar2 , &H01)
Call Wiz5500_writevalue(w5500_gar3 , &H01)
'Set Subnet mask
Call Wiz5500_writevalue(w5500_subr0 , &HFF) '255.255.255.0
Call Wiz5500_writevalue(w5500_subr1 , &HFF)
Call Wiz5500_writevalue(w5500_subr2 , &HFF)
Call Wiz5500_writevalue(w5500_subr3 , &H00)
'Set MAC
Call Wiz5500_writevalue(w5500_shar0 , &H00)
Call Wiz5500_writevalue(w5500_shar1 , &H08)
Call Wiz5500_writevalue(w5500_shar2 , &HDC)
Call Wiz5500_writevalue(w5500_shar3 , &H01)
Call Wiz5500_writevalue(w5500_shar4 , &H02)
Call Wiz5500_writevalue(w5500_shar5 , &H03)
'Set own IP address
Call Wiz5500_writevalue(w5500_sipr0 , &HC0) '192.168.1.200
Call Wiz5500_writevalue(w5500_sipr1 , &HA8)
Call Wiz5500_writevalue(w5500_sipr2 , &H01)
Call Wiz5500_writevalue(w5500_sipr3 , &HC8)
Do
Loop
Sub Wiz5500_writevalue(reg , Value )
Adres = Reg
Reset Wiz5500_cs
Spiout Adresh , 1
Spiout Adresl , 1
Spiout Wiz5500_opcode_write , 1
Spiout Value , 1
Set Wiz5500_cs
End Sub
Sub Wiz5500_reset
W5500_nreset = 1
Waitms 10
W5500_nreset = 0
Waitms 300 'Minimum 20 Β΅s
W5500_nreset = 1
End Sub