1

Temat: openwrt + I2S

Cześć,

próbuje odpalić I2S na układzie MT7628.

Plik .dts

&i2s {
    #sound-dai-cells = <0>;
    status = "okay";
};

Podczas uruchamianiu kernela widac, ze cos sie dzieje:


[   11.977342] ralink-i2s 10000a00.i2s: mclk 480KHz
[   12.031073] asoc-simple-card sound: es8328-hifi-analog <-> 10000a00.i2s mapping ok

Czy ktoś uruchamiał już i2s w openwrt ?

2

Odp: openwrt + I2S

Ja nie. Ale zobacz:

https://github.com/openwrt/openwrt/pull/1446
https://github.com/vonger/vocore2

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: openwrt + I2S

Cały mój .dts był tworzony w oparciu oten vocore2. Wszystko wygląda dobrze, nawet I2C do codeca wysyła odpowiednie ramki, ale mimo wszystko na i2s cisza... Co mógłbym jeszcze zrobić, żeby zweryfikowac te i2s?

4

Odp: openwrt + I2S

Pogadaj z gościem od vocore?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: openwrt + I2S

wysylalem meila do nich, ale dostalem informację że supportują tylko ich hardware... i nie są w stanie mi pomóc jak mam inna płytkę niż VoCore2

6

Odp: openwrt + I2S

Zapnij sie z oscyloskopem i zobacz czy masz wszystkie clocki poprawne na I2S.

7 (edytowany przez r00ti 2020-02-22 12:36:03)

Odp: openwrt + I2S

maly update. I2s wystartowalo.

Na analizatorze widac, ze cos sie dzieje na tej magistrali. Efektem jest szum, a jak wiadomo dobrze by bylo gdybys cos zagralo. Czy moze teraz bedziesz w stanie doradzic, jak zamienic szum na dzwiek big_smile?

https://i.ibb.co/nkdSsnz/i2s.jpg

8

Odp: openwrt + I2S

####################UPDATE#######################


Wygląda na to, że pin i2s_mclk nie jest uruchomiony, a jak wiadomo codec ES8388 potrzebuje master clocka.  Pytanie dlaczego pin w mt7628 MCLK nie jest uruchomiony mimo tego, że pozostałe piny i2s dzialaja poprawnie. Jakieś pomysły ?

9

Odp: openwrt + I2S

Pinmux dobrze ustawiony?

Mam i używam: Fujitsu Futro S720, Netgear R6220, Unielec U7621-06, TP-Linki 1043 V1, V2, Linksysy EA7500v2, AeroHive AP350, Linksys EA8500, ZTE MF286d.
Mam: D-Linki DWR-921, DWR-118, DWR-116, TP-Link WDR-4900 v1, Checkpoint L-50, Linksysy 1900ACS, LB-Link BL-W1200,

10 (edytowany przez r00ti 2020-02-22 15:19:29)

Odp: openwrt + I2S

Faktycznie 4 piny mam:

pin 0 (io0): pinctrl (GPIO UNCLAIMED) function i2s group i2s
pin 1 (io1): pinctrl (GPIO UNCLAIMED) function i2s group i2s
pin 2 (io2): pinctrl (GPIO UNCLAIMED) function i2s group i2s
pin 3 (io3): pinctrl (GPIO UNCLAIMED) function i2s group i2s


ale co z MCLK...

bo wygląda, że:

pin 38 (io38): (MUX UNCLAIMED) (GPIO UNCLAIMED)

Jak moge to zmienić ?

pin38 tez ma funkcje wdt reset

11

Odp: openwrt + I2S

W pliku dts. I potem zbudować obraz jeszcze raz.

Nie wie czy się da z poziomu systemu.

Mam i używam: Fujitsu Futro S720, Netgear R6220, Unielec U7621-06, TP-Linki 1043 V1, V2, Linksysy EA7500v2, AeroHive AP350, Linksys EA8500, ZTE MF286d.
Mam: D-Linki DWR-921, DWR-118, DWR-116, TP-Link WDR-4900 v1, Checkpoint L-50, Linksysy 1900ACS, LB-Link BL-W1200,

12

Odp: openwrt + I2S

To wiem, że w DTS tylko nie wiem w jaki sposób. Próbowałem tak:
        wdt {
                ralink,group = "wdt";
                ralink,function = "i2s";
        };

ale przez to ciąglę się resetuje.

13

Odp: openwrt + I2S

To jest dokładnie ten pin i chciałbym, żeby spełniał właśnie rolę tego MCLK.

WDT_RST_N/I2S_MCLK

14

Odp: openwrt + I2S

Na pewno? W dataseet nic takiego nie ma, wdt reset to wdr reset  (gpio37).  Wszystko z i2s to gpio0/1/2/3

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: openwrt + I2S

http://vonger.cn/upload/MT7628_Full.pdf -> wg tego drugi clock od i2s jest na pinie 4 a nie 38. Popatrz na stronie 77.

Mam i używam: Fujitsu Futro S720, Netgear R6220, Unielec U7621-06, TP-Linki 1043 V1, V2, Linksysy EA7500v2, AeroHive AP350, Linksys EA8500, ZTE MF286d.
Mam: D-Linki DWR-921, DWR-118, DWR-116, TP-Link WDR-4900 v1, Checkpoint L-50, Linksysy 1900ACS, LB-Link BL-W1200,

16 (edytowany przez r00ti 2020-02-22 23:10:51)

Odp: openwrt + I2S

gpio4 to ktory pin w MT7628 ? Bo ja jako GPO4 znalazlem ale I2C_CLOCK, a nie I2S

17

Odp: openwrt + I2S

Masz to w datasheet:

16 I2S_SDI O 4 mA I2S data input
17 I2S_SDO I/O, IPD 4 mA I2S data output
18 I2S_WS O 4 mA I2S word select
19 I2S_CLK I/O 4 mA I2S clock

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: openwrt + I2S

Tak, ale to są 4 piny, a codec potrzebuje 5. Czyli brakuje pinu do master clocka

19

Odp: openwrt + I2S

w vocore2 Master clock wpięty jest zgodnie ze schematem do UART_TXD0. A w dts znalazłem takie coś:

        uart2 {
                uart2 {
                        ralink,group = "uart2";
                        ralink,function = "pwm";
                };
        };


Więc rozumiem, ze master clock wpięty jest pod PWM, ale dlaczego schemat jest podpięty niby pod UART0, a w dts uart2 ?!

20 (edytowany przez Królik 2020-02-23 06:46:37)

Odp: openwrt + I2S

r00ti napisał/a:

gpio4 to ktory pin w MT7628 ? Bo ja jako GPO4 znalazlem ale I2C_CLOCK, a nie I2S

Fakt. Późno już było i na oczy trochę nie widziałem.

Pokaż schemat o którym mówisz.

Mam i używam: Fujitsu Futro S720, Netgear R6220, Unielec U7621-06, TP-Linki 1043 V1, V2, Linksysy EA7500v2, AeroHive AP350, Linksys EA8500, ZTE MF286d.
Mam: D-Linki DWR-921, DWR-118, DWR-116, TP-Link WDR-4900 v1, Checkpoint L-50, Linksysy 1900ACS, LB-Link BL-W1200,

21

Odp: openwrt + I2S

Oni z refclk korzystają: https://github.com/openwrt/openwrt/pull/1446/files

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22

Odp: openwrt + I2S

Cezary napisał/a:

Oni z refclk korzystają: https://github.com/openwrt/openwrt/pull/1446/files

To refclk korzysta z pinu refclk czyli kulki 136 REF_CLK0, czyli gpio 37.

Mam i używam: Fujitsu Futro S720, Netgear R6220, Unielec U7621-06, TP-Linki 1043 V1, V2, Linksysy EA7500v2, AeroHive AP350, Linksys EA8500, ZTE MF286d.
Mam: D-Linki DWR-921, DWR-118, DWR-116, TP-Link WDR-4900 v1, Checkpoint L-50, Linksysy 1900ACS, LB-Link BL-W1200,

23

Odp: openwrt + I2S

Z I2S to najszybciej master clocka wygenerowac zewnatrz, np. przez generator.

24

Odp: openwrt + I2S

bardzo dziękuje każdemu za pomoc, udało się uruchomić.
Pytanie dodatkowe, czy jakieś dodatkowe zmiany w .dts trzeba robić dla np. nagrywania dźwięku za pomocą mikrofonu metoda arecord ? Czy skoro działa odtwarzanie, to nagrywanie też powinno działac ?

25

Odp: openwrt + I2S

r00ti napisał/a:

bardzo dziękuje każdemu za pomoc, udało się uruchomić.

Napisz czego brakowało by ktoś następny miał całą odpowiedź na problem. wink

Mam i używam: Fujitsu Futro S720, Netgear R6220, Unielec U7621-06, TP-Linki 1043 V1, V2, Linksysy EA7500v2, AeroHive AP350, Linksys EA8500, ZTE MF286d.
Mam: D-Linki DWR-921, DWR-118, DWR-116, TP-Link WDR-4900 v1, Checkpoint L-50, Linksysy 1900ACS, LB-Link BL-W1200,