laith-dosinfection / lwIOlinkMaster

This repository is a work in progress with the intent to create a IO-link master stack which can extract data from IO-link Devices
GNU General Public License v3.0
1 stars 0 forks source link

HW Repo #10

Open unref-ptr opened 10 months ago

unref-ptr commented 10 months ago

Once the hardware is validated I think it would be good to create a secondary repository with the Hardware design. In theory you just need an eval kit, but as mentioned in #9 , some IOLink PHYs do not have the wakeup functionality and require to design a sink current. Hence a hardware repo with an IO-Link Master shield for arduino would be nice.

laith-dosinfection commented 10 months ago

Noted - I have been thinking about the easiest hardware path.

I think for me it is simpler to just create a full board with the IC already integrated which I don't mind making open source but I will say I have an unorthodox power solution which is not "Industry Standard". However, if we want to create a board for the community I don't mind modifying my layout a little.

As I see it, we are either making a shield or a standardized board with some off-board ribbon connector. My concern around the standardized board is there are a lot of different form factors and pinouts out there:

I think we should pick 1 format and possibly provide some generic ports like grove connectors (possibly multiple) to support other hardware.

unref-ptr commented 10 months ago

That is true, there is not a standard arduino format. Companies like STM, and NXP claim Arduino compatibility and focus for example on the Arduino UNO/Arduino Mega/Arduino Due Format.

A board with the IC and MCU would then be like an "Arduino IO-Link Master dev kit". That seems like a nice project.

Perhaps there could be a simpler variant with an extra connector which any board could connect to.

For a first hardware version I would recommend just to focus on the TIOL with the sink current circuit to debug the code. However, if you have enought time then feel free to add the MCU but with more parts then there is more stuff that could go wrong. Just my 2 cents but Im open for both versions.

For me it would be nice a simpler version then I could order it (PCBWay, JLCPCB,etc) and test it as well with a minimal BOM and the ESP32s I have laying around here.

Some inspiration ideas

laith-dosinfection commented 10 months ago

I will likely make a daughter board for the esp32-s3-devkitc-1, seems like the easiest approach. We can always iterate or change the format pretty easily.

laith-dosinfection commented 10 months ago

SCH_IO Link Master_2023-11-17.pdf

I put together this schematic. Haven't laid out the board yet... but this should be a 2 port IO-link master daughter board for the ESP32-S3-DEVKITC-1. I do have an unusual power circuit. I like the idea of having a single plug for programming/debugging and powering and USB-C should suffice for all the above. I didn't want to make the board spin dependent on the USB-C circuit as it is probably the most complex portion of the program but I have tested a bunch of io-link masters and their probes with a 20VDC input and they seem to work fine... USB-C can deliver 20VDC @ 5 Amps which would probably power a few ports. I think industry standard is around ~500mA/port. There are some jumpers to switch between a standard barrel input and the USB C input.

If you wouldn't mind putting eyes on the schematic and giving me feedback. I am using a 1 channel high side switch to power the ports which have a current sense output which I just mapped to an ADC pin on the ESP32. Total this design uses 6 pins per port which could be reduced but 4 pins are for the phy (TX, RX, Fault, EN) and 2 pins for the high side switch (Current sense, EN).

unref-ptr commented 10 months ago

I think industry standard is around ~500mA/port.

Minimum for Port Class A is 200 mA. So 500 is more than enough.

a single plug for programming/debugging

You mean to program/debug the USB PD or do you mean to program the ESP32 over USB-C?

If you wouldn't mind putting eyes on the schematic and giving me feedback.

I checked the IO-Link part and looks good to me. I do not have experience with USB-C PD so I do not have a comment on it. Given the functionality I think its a good compromise of 6 pins per port.