Hi
I have a problem with a Ethernet PHY that makes too much noise. We are digging into the problem, iterating on the very poor layout done, but the client is looking for a fix right now with now HW changes.
The problem comes from the RMII communication to the PHY. Seems a 25MHz clock is feeding the PHY (LAN8742), which then in turn creates a 50MHz clock feeding back to the STM32 MAC.
If I remove the clock, the problem is gone. Problem is a radiated emissions +100MHz, so quasipeak detection is used in final measurements.
So have been trying to slow it down, and other tricks but thought about this solution:
Initiate the PHY as normal and let the PHY/MAC get an IP address.
Then disconnect the PHY for let's say 500ms, by removing the 25MHz clock. After 500ms, activate the clock again.
That would possibly reduce the emissions by 3-4dB due to the quasipeak detector.
But, can an ethernet connection work like this?
How does the line react, will it do preamble communication again, or will it just work again (some packets might be lost, but we can re-transmit those)?
I know from earlier measurements on an ethernet line that it is active all the time even though no data is send.
Cheers
Klaus
Hi
I have a problem with a Ethernet PHY that makes too much noise. We are digging into the problem, iterating on the very poor layout done, but the client is looking for a fix right now with now HW changes.
The problem comes from the RMII communication to the PHY. Seems a 25MHz clock is feeding the PHY (LAN8742), which then in turn creates a 50MHz clock feeding back to the STM32 MAC.
If I remove the clock, the problem is gone. Problem is a radiated emissions +100MHz, so quasipeak detection is used in final measurements.
So have been trying to slow it down, and other tricks but thought about this solution:
Initiate the PHY as normal and let the PHY/MAC get an IP address.
Then disconnect the PHY for let's say 500ms, by removing the 25MHz clock. After 500ms, activate the clock again.
That would possibly reduce the emissions by 3-4dB due to the quasipeak detector.
But, can an ethernet connection work like this?
How does the line react, will it do preamble communication again, or will it just work again (some packets might be lost, but we can re-transmit those)?
I know from earlier measurements on an ethernet line that it is active all the time even though no data is send.
Cheers
Klaus
lørdag den 7. oktober 2023 kl. 13.06.09 UTC+2 skrev Klaus Kragelund:
Hi
I have a problem with a Ethernet PHY that makes too much noise. We are digging into the problem, iterating on the very poor layout done, but the client is looking for a fix right now with now HW changes.
The problem comes from the RMII communication to the PHY. Seems a 25MHz clock is feeding the PHY (LAN8742), which then in turn creates a 50MHz clock feeding back to the STM32 MAC.
If I remove the clock, the problem is gone. Problem is a radiated emissions +100MHz, so quasipeak detection is used in final measurements.
So have been trying to slow it down, and other tricks but thought about this solution:
Initiate the PHY as normal and let the PHY/MAC get an IP address.
Then disconnect the PHY for let's say 500ms, by removing the 25MHz clock. After 500ms, activate the clock again.
That would possibly reduce the emissions by 3-4dB due to the quasipeak detector.
But, can an ethernet connection work like this?
How does the line react, will it do preamble communication again, or will it just work again (some packets might be lost, but we can re-transmit those)?
I know from earlier measurements on an ethernet line that it is active all the time even though no data is send.
Cheers
Klausit it the 25MHz or the 50MHz that's the problem?
I have a problem with a Ethernet PHY that makes too much noise. We are digging into the problem, iterating on the very poor layout done, but the client is looking for a fix right now with now HW changes.
The problem comes from the RMII communication to the PHY. Seems a 25MHz
clock is feeding the PHY (LAN8742), which then in turn creates a 50MHz clock feeding back to the STM32 MAC.
If I remove the clock, the problem is gone. Problem is a radiated emissions +100MHz, so quasipeak detection is used in final measurements.
So have been trying to slow it down, and other tricks but thought about this solution:
Initiate the PHY as normal and let the PHY/MAC get an IP address.
Then disconnect the PHY for let's say 500ms, by removing the 25MHz clock. After 500ms, activate the clock again.
That would possibly reduce the emissions by 3-4dB due to the quasipeak detector.
But, can an ethernet connection work like this?
How does the line react, will it do preamble communication again, or will it just work again (some packets might be lost, but we can re-transmit those)?
I know from earlier measurements on an ethernet line that it is active all the time even though no data is send.
On Saturday, 7 October 2023 at 13:37:39 UTC+2, Lasse Langwadt Christensen wrote:
lørdag den 7. oktober 2023 kl. 13.06.09 UTC+2 skrev Klaus Kragelund:
Hi
I have a problem with a Ethernet PHY that makes too much noise. We are digging into the problem, iterating on the very poor layout done, but the client is looking for a fix right now with now HW changes.
The problem comes from the RMII communication to the PHY. Seems a 25MHz clock is feeding the PHY (LAN8742), which then in turn creates a 50MHz clock feeding back to the STM32 MAC.
If I remove the clock, the problem is gone. Problem is a radiated emissions +100MHz, so quasipeak detection is used in final measurements.
So have been trying to slow it down, and other tricks but thought about this solution:
Initiate the PHY as normal and let the PHY/MAC get an IP address.
Then disconnect the PHY for let's say 500ms, by removing the 25MHz clock.
After 500ms, activate the clock again.
That would possibly reduce the emissions by 3-4dB due to the quasipeak detector.
But, can an ethernet connection work like this?
How does the line react, will it do preamble communication again, or will it just work again (some packets might be lost, but we can re-transmit those)?
I know from earlier measurements on an ethernet line that it is active all the time even though no data is send.
Cheers
It's a harmonic. I am working on the fix, for the next revision of the board. I was just wondering if we could use a SW fix for now...Klausit it the 25MHz or the 50MHz that's the problem?
lørdag den 7. oktober 2023 kl. 16.49.37 UTC+2 skrev Klaus Kragelund:YEs, you are right. Seems that the 50MHz clock out is just a feature,
On Saturday, 7 October 2023 at 13:37:39 UTC+2, Lasse Langwadt Christensen wrote:
lørdag den 7. oktober 2023 kl. 13.06.09 UTC+2 skrev Klaus Kragelund:It's a harmonic. I am working on the fix, for the next revision of the board. I was just wondering if we could use a SW fix for now...
Hiit it the 25MHz or the 50MHz that's the problem?
I have a problem with a Ethernet PHY that makes too much noise. We are digging into the problem, iterating on the very poor layout done, but the client is looking for a fix right now with now HW changes.
The problem comes from the RMII communication to the PHY. Seems a 25MHz clock is feeding the PHY (LAN8742), which then in turn creates a 50MHz clock feeding back to the STM32 MAC.
If I remove the clock, the problem is gone. Problem is a radiated emissions +100MHz, so quasipeak detection is used in final measurements.
So have been trying to slow it down, and other tricks but thought about this solution:
Initiate the PHY as normal and let the PHY/MAC get an IP address.
Then disconnect the PHY for let's say 500ms, by removing the 25MHz clock. >>>> After 500ms, activate the clock again.
That would possibly reduce the emissions by 3-4dB due to the quasipeak detector.
But, can an ethernet connection work like this?
How does the line react, will it do preamble communication again, or will it just work again (some packets might be lost, but we can re-transmit those)?
I know from earlier measurements on an ethernet line that it is active all the time even though no data is send.
Cheers
Klaus
but is it the 25MHz from the MAC or the 50MHz from the PHY that causes the problem? I believe the 50MHz can be turned off
But, can an ethernet connection work like this?
The connection can work but the protocol may give you complaints.
Especially if you are shutting off the i/f without regard to
what is happening on the wire.
And, as this inevitably alters throughput, any higher levels in the protocols that expect a particular level of performance may complain. E.g., if you were expected to complete some transaction in a certain timeframe (or,
with a certain maximum latency), you'd have to carefully reevaluate those constraints.
[You'd also have to explore how a switch would handle the fact that
the destination port suddenly "disconnected" while a datagram was
queued -- or queuing -- for it.]
On 10/7/2023 10:26 AM, Don Y wrote:
But, can an ethernet connection work like this?
The connection can work but the protocol may give you complaints.
Especially if you are shutting off the i/f without regard to
what is happening on the wire.
And, as this inevitably alters throughput, any higher levels in the
protocols
that expect a particular level of performance may complain. E.g., if you >> were expected to complete some transaction in a certain timeframe (or,
with a certain maximum latency), you'd have to carefully reevaluate those
constraints.
By way of example, I transferred a few TB onto a new NAS I had
assembled. When done, I checked the number of objects present
on the NAS vs. the original server -- identical. BUT, was
surprised that the total storage usage was a fair bit LESS
than the originals!
Looking at the logs, I noticed that the connection had
dropped -- many times (a bug in the Gbe NIC's driver on the
new NAS)! As the protocol kept partial transfers, each dropped
connection still produced AN object... just not a COMPLETE
object. (The Windows client that I was using as an intermediary
didn't throw any errors so it was only the NAS that knew something
had failed)
On 09-10-2023 01:45, Don Y wrote:It may be worth checking the quality of the patch cable that was used for EMC testing. I once had a test failure that was fixed simply by substituting
On 10/7/2023 10:26 AM, Don Y wrote:
But, can an ethernet connection work like this?
The connection can work but the protocol may give you complaints.
Especially if you are shutting off the i/f without regard to
what is happening on the wire.
And, as this inevitably alters throughput, any higher levels in the
protocols
that expect a particular level of performance may complain. E.g., if you >> were expected to complete some transaction in a certain timeframe (or,
with a certain maximum latency), you'd have to carefully reevaluate those >> constraints.
By way of example, I transferred a few TB onto a new NAS I had
assembled. When done, I checked the number of objects present
on the NAS vs. the original server -- identical. BUT, was
surprised that the total storage usage was a fair bit LESS
than the originals!
Looking at the logs, I noticed that the connection had
dropped -- many times (a bug in the Gbe NIC's driver on the
new NAS)! As the protocol kept partial transfers, each dropped
connection still produced AN object... just not a COMPLETE
object. (The Windows client that I was using as an intermediary
didn't throw any errors so it was only the NAS that knew something
had failed)
Sounds from your experiment that it might be possible to have some kind
of working connection, maybe with some added encapsulation to retransmit missed packets
On 09-10-2023 01:45, Don Y wrote:
On 10/7/2023 10:26 AM, Don Y wrote:Sounds from your experiment that it might be possible to have some kind of working connection, maybe with some added encapsulation to retransmit missed packets
But, can an ethernet connection work like this?
The connection can work but the protocol may give you complaints.
Especially if you are shutting off the i/f without regard to
what is happening on the wire.
And, as this inevitably alters throughput, any higher levels in the protocols
that expect a particular level of performance may complain. E.g., if you >>> were expected to complete some transaction in a certain timeframe (or,
with a certain maximum latency), you'd have to carefully reevaluate those >>> constraints.
By way of example, I transferred a few TB onto a new NAS I had
assembled. When done, I checked the number of objects present
on the NAS vs. the original server -- identical. BUT, was
surprised that the total storage usage was a fair bit LESS
than the originals!
Looking at the logs, I noticed that the connection had
dropped -- many times (a bug in the Gbe NIC's driver on the
new NAS)! As the protocol kept partial transfers, each dropped
connection still produced AN object... just not a COMPLETE
object. (The Windows client that I was using as an intermediary
didn't throw any errors so it was only the NAS that knew something
had failed)
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 300 |
Nodes: | 16 (2 / 14) |
Uptime: | 91:56:29 |
Calls: | 6,717 |
Calls today: | 1 |
Files: | 12,252 |
Messages: | 5,358,953 |
Posted today: | 1 |