A
A
Arcpool2018-06-12 14:24:47
Microcontrollers
Arcpool, 2018-06-12 14:24:47

Which is better for embeded WizNet or embedded MAC in STM32?

I'm trying to understand which direction is more promising when implementing control over Ethernet. From the whole zoo of solutions, for myself, I settled on two: the built-in MAC in STM32 and WizNet (W5100, W5500 etc).
The following tasks will be solved: displaying measurement results, updating the device configuration, possibly remote updating (via an external memory chip, with integrity checks, etc.), possibly WEB, SNMP
If someone has a similar experience, could you briefly describe the pros and cons of both approaches?
I see it this way:
From the embedded MAC side - high speed, a lot of code, heavy libraries, a software stack, the need for an external PHY chip like LAN8742
From the WizNet side - SPI, low speed (though how to say), easy to use, the price is the same as for PHY chips like LAN8742.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
M
Mirn, 2018-06-14
@Mirn

For simple tasks, WizNet is definitely better than
its strengths:
1. There is a parallel 8-bit bus - it is enough to achieve a speed of 700 thousand small packets of 3-5 bytes. those. 3-5 megabytes per second can be achieved
2. There is already a TCP stack inside and it is tuned for speed - the algorithm for dividing packets into two and everything else.
3. There are code examples and they are really useful
4. There is good documentation and community
weaknesses:
1. The TCP stack is truncated and in exotic packages especially broadcasting can mess up.
2. few simultaneously open channels (about 4 chtoli).
3. the case is poorly solderable, small and fastidious - it is better to take a ready-made mini-shawl.
4. the requirements for the clock gene or quartz are special, you can score and forget - but you can remember after a couple of months of helpless debugging of idiotic and ridiculous bugs. - although this also applies to stm32, the ezernet itself does not forgive the clocking curve.
implementation in MK (I didn’t feel it on stm32, only nxp and texas)
cons:
1. You need to raise the TCP stack yourself and, for good, you need a normal OS and a rather small programming skill, which circuit technicians and engineers usually don’t have.
2. It is necessary to set up the stack correctly, otherwise you will get a couple of kilobytes per second.
3. the quality of the lib for the stack is not friendly, and the microIP is generally hellish trash
4. internal DMA buffers are often small and often miss data due to abundant DDOS level broadcasting, but at least they do not fail, dropping the entire network at all.
5. require VERY MUCH MEMORY for normal speed.
6. unrealistically eat a lot of percent. time at high speed, although the same celeron 500 MHz on samba also did not work quickly due to a lack of processor 15 years ago.
pluses:
1. you can make more complex things - not only the TCP protocol, but old and exotic
2. all sources are available, you can edit bugs in libs - closed hardware will chirp
3. all errors can be read and processed (spending a car of personal time)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question