Odp: Oolite-7620a
No masz przecież ttyS1. Co chcesz więcej?
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Oolite-7620a
Strony Poprzednia 1 2 3
Zaloguj się lub zarejestruj by napisać odpowiedź
No masz przecież ttyS1. Co chcesz więcej?
A pinmux ustawiony by piny uarta nie byly gpio?
Faktycznie linie mogły nie być podłączone do właściwego "peryferium" w tym przypadku UART. W dokumentacji znalazłem, że są takie opcje:
https://drive.google.com/file/d/1VzR41j … sp=sharing
Podpowiedz poproszę jak do tego podejść
Sekcja pinmux, sprawdź czy czy wypisana dana sekcja jako gpio. Możesz się pozbyć wszystkiego, wtedy nie będziesz miał po prostu ledów i przycisków.
Tak wyglądają oryginalne pliki bez moich zmian:
ZBT-WE826.dtsi
#include "mt7620a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "zbtlink,zbt-we826", "ralink,mt7620a-soc";
chosen {
bootargs = "console=ttyS0,115200";
};
gpio-leds {
compatible = "gpio-leds";
power {
label = "zbt-we826:green:power";
gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
};
usb {
label = "zbt-we826:green:usb";
gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
};
air {
label = "zbt-we826:green:wifi";
gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
};
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpio3 {
status = "okay";
};
&sdhci {
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
ðernet {
mtd-mac-address = <&factory 0x4>;
mediatek,portmap = "wllll";
};
&wmac {
ralink,mtd-eeprom = <&factory 0>;
};
&pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "i2c", "uartf", "wled", "spi refclk", "pa";
ralink,function = "gpio";
};
};
};
&pcie {
status = "okay";
};ZBT-WE826-32M.dts
/dts-v1/;
#include "ZBT-WE826.dtsi"
/ {
compatible = "zbtlink,zbt-we826-32m", "zbtlink,zbt-we826", "ralink,mt7620a-soc";
model = "ZBT-WE826 (32M)";
};
&spi0 {
status = "okay";
en25q128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
firmware: partition@50000 {
label = "firmware";
reg = <0x50000 0x1fb0000>;
};
};
};Tak być powinno:
ZBT-WE826.dtsi
#include "mt7620a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "zbtlink,zbt-we826", "ralink,mt7620a-soc";
chosen {
bootargs = "console=ttyS0,115200";
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpio3 {
status = "okay";
};
&sdhci {
status = "okay";
};
&uart{
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
ðernet {
mtd-mac-address = <&factory 0x4>;
mediatek,portmap = "wllll";
};
&wmac {
ralink,mtd-eeprom = <&factory 0>;
};
&pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "i2c", "wled", "spi refclk", "pa";
ralink,function = "gpio";
};
};
};
&pcie {
status = "okay";
};UART ttyS1 ruszył, dodaliśmy jeszcze nasze modyfikacje i działa. Uwaga: przy testach z minicomem trzeba wyłączyć HW flow control w minicom
#include "mt7620a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "zbtlink,zbt-we826", "ralink,mt7620a-soc";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
serial1 = &uart;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "zbt-we826:green:power";
gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
};
usb {
label = "zbt-we826:green:usb";
gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>;
linux,default-trigger = "usbport";
};
air {
label = "zbt-we826:green:wifi";
gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpio3 {
status = "okay";
};
&sdhci {
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
ðernet {
mtd-mac-address = <&factory 0x4>;
mediatek,portmap = "wllll";
};
&wmac {
ralink,mtd-eeprom = <&factory 0>;
};
&pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "i2c", "wled", "spi refclk", "pa";
ralink,function = "gpio";
};
};
};
&pcie {
status = "okay";
};Teraz działamy przy I2C i mamy kolejną zagwozdkę. Niewłaściwie działa komenda:
i2cdetect -y 0Na magistrali nie ma nic podłączone, są pull-upy a momo to mamy coś takiego:
root@OpenWrt:~# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77Nie ma nigdzie zwarcia do masy, do zasilania. Analiza oscylogramów daj takie wyniki, że:
z jakiegoś powodu w zakresie adresów 02-2F, 38-4F, 60-77 mamy stan niski po adresie podawanym przez hosta i wykrywa to jako ACK, a w zakresie adresów: 30-37,50--5F jest wszystko ok
Szczegóły:
https://drive.google.com/file/d/1jibmBT … sp=sharing
Usuń z &pinctrl wpis powodujący, że i2c jest gpio.
Na obrazie na którym testujemy, ta zmiana jest już zastosowana. Wrzucam niżej pliki dts i dtsi
ZBT-WE826.dtsi
#include "mt7620a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "zbtlink,zbt-we826", "ralink,mt7620a-soc";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
serial1 = &uart;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "zbt-we826:green:power";
gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
};
usb {
label = "zbt-we826:green:usb";
gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>;
linux,default-trigger = "usbport";
};
air {
label = "zbt-we826:green:wifi";
gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpio3 {
status = "okay";
};
&sdhci {
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
ðernet {
mtd-mac-address = <&factory 0x4>;
mediatek,portmap = "wllll";
};
&wmac {
ralink,mtd-eeprom = <&factory 0>;
};
&pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "wled", "spi refclk", "pa";
ralink,function = "gpio";
};
};
};
&pcie {
status = "okay";
};ZBT-WE826-32M.dts
/dts-v1/;
#include "ZBT-WE826.dtsi"
/ {
compatible = "zbtlink,zbt-we826-32m", "zbtlink,zbt-we826", "ralink,mt7620a-soc";
model = "ZBT-WE826 (32M)";
};
&uart {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uartf_gpio_pins>;
};
&i2c {
status = "okay";
};
&spi0 {
status = "okay";
en25q128@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
firmware: partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x50000 0x1fb0000>;
};
};
};
};To sprawdź dokładnie na płytce czy piny od i2c się gdzieś dodatkowo podłączone.
Płytka była przejrzana, nie widać nic takiego. Pikanterii sprawie dodaje fakt że robienie dumpa z RTC się udaje i widać gdy zrobię kilka pod rząd, że zmieniają się sekundy ( RTC:MCP79410)
https://drive.google.com/file/d/13mphdp … sp=sharing
root@OpenWrt:~# i2cdump -y 0 0x6F
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: a3 57 23 3d 11 02 21 80 00 00 16 45 10 71 28 10 ?W#=??!?..?E?q(?
10: 01 00 00 00 01 00 00 01 48 21 26 d0 00 22 26 d0 ?...?..?H!&?."&?
20: ed 56 16 92 4c 40 b6 00 19 f1 00 ab 50 46 08 d0 ?V??L@?.??.?PF??
30: 22 f1 05 12 48 ba 00 70 95 10 0a 8a 08 e0 c0 04 "???H?.p????????
40: 73 ac dc 36 2c c2 3d 46 14 04 26 c7 0b a1 0e 45 s??6,?=F??&????E
50: 59 ec 08 84 62 c5 a2 01 11 21 ac 80 00 1e 09 44 Y???b????!??.??D
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXXA to jest z EERPOM MCP79410
root@OpenWrt:~# i2cdump -y 0 0x57
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: ff ff ff ff ff ff ff ff XX XX XX XX XX XX XX 00 ........XXXXXXX.Na uwagę zasługuje fakt, że widać to urządzenie jako jedno z wielu ( adr:57h).
root@OpenWrt:~# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77Strony Poprzednia 1 2 3
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Oolite-7620a
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc