SPI to Ethernet Interface

1 post / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

  Hello Everyone

  I wrote code to implement an SPI to Ethernet Interface (SEI) on a PIC32 microcontroller. It became something similar to the Wiznet chips with the main difference being that it is a software implementation and the PHY is an external device. There are three versions of it, one implemented om PIC32MX664F064 with 20K dedicated to the Etherney Rx / Tx buffers, one implemented on PIC32MX695F512 with 103k of Rx / Tx buffers and one on PIC32MZ microcontroller (not ready at this moment) that offers symmetric encryption. There is a version of each of the three that connects to a network switch KSZ8863RLL instead a classic PHY chip. A version with VLAN capability is on the roadmap.
  It interfaces to the host controller via SPI interface with a clock speed up to 20MHz, and one extra interrupt line. One 8 bit GPIO port and one 15bit GPIO port can be controled by the host controller. SEi has a "Register Monitor Interface" that serially output most of the register values to a PC application. This is helpful during development. See attached datasheet.

  As a used case, I built two Arduino (hardware) compatible boards "shields" and attached the schematics and 3D pdfs. The PCB design is open source.

  I wrote two host controller open source applications in C. One is a sort or data acquisition example that you can see it here and the other one shows a simple picture of a cat that you can see it here. The cat example is driven by an Xmega controller overclocked to 40MHz and the SPI running at 20MHz while writing and 10MHz while reading.

  I intend to sell these boards and also preprogrammed PIC32 controllers if people show interest in integrating this in their design.

  There is no library for now. In the examples above, the host controller access the registers directly.

  Please take a look and comment.

  I do offer two samples for two freaks interested to play with them. One is with PIC32MX664 and the other one with PIC32MX695. I am going to wait few days and if more than two people show interest I will give priority to the ones with more posts on this forum.