cancel
Showing results for 
Search instead for 
Did you mean: 

TLK106 on F746Z settings (LWIP, DHCP, RMII) :

Yfour.1
Associate II

Hello, and thank you for the time spent reading my message !

There are others topics on the internet about ethernet and cubemx (not with my Phy) but I am blocked for 2 weeks, and I don't find a solution.

My problem : cubemx generate code with ethernet, lwip, dhcp enable and without freertos (try with freertos too, same problem). With Rmii.

I have a dhcp server in background on my pc.

To begin, I have already done tests with nucleo F746ZG with its Lan8742 phy and it works.

Now I try to do the same on the final board (personnaly I have only the Ethernet part to do) with F746 chip and a tlk106 phy (choice of tlk106 was done before I begin in the society).

The problem is that the F746ZG send dhcp request (I can see it on my) but i never have the validation on my dhcp server on my final board with tlk 106.

Whereas with nucleo board ans lan8742 I have the dhcp with good allocation.

I know I have to modify few registers (tlk106 datasheet is very close to DP84846) so I put in ethernet_conf PhySr to 0x10, micr and misr to 0x11 and 0x12 etc.

My last tests are : 

With autonegociation enable it seems I have not linked status valid but if put it on disable and choose in ethernetif speed of 10M and full-duplex ans Il have linked status at 1 (but not with 100M).

Moreover when with scope I read Tx0 and Tx1 and there are few periodic times at 0, but like 200ns every 120uS so it's not ethernet data. Tx_en stay at 0 like Rx0 and Tx1.

I have read 10 times tlk106 datasheet and I think my registers are ok.

So I don't understand why it's not working. I guess I have not to modify low_level_input, lwip_init and all others files because it works with my nucleo board and lan8742.

I have write int_en ans int_oe in my registers on ethernetif_init.

In while(1) I have ethernetif_input(&gnetif) and sys_check_timeouts()

The hardware part was done by an expert. There is an Xi at 50Mhz and rmii mode is at 1 thank to a pull up resistor).

On addition of ethernet pins on cubemx, there are 3 more pins connected between tlk106 and the F746 : 2 that I put on input (rx_er ans data_valid), and one on outptut (pwnd). Cube MX doesn't use this 3 signals on the program but hardware is already done so I only choose between input and output.

Monday when I will je back to work I Can send you hardware screen.

Last point, I don't know if I have to let polling mode or change to interrupt mode, I have seen examples with each and I don't see difference when I modify.

Thanks a lot if someone has already use tlk phy or can help me.

1 REPLY 1
Yfour.1
Associate II

Hello,

Problem solved, it was Hardware problem...