Smart DGM

Simono
Posty: 343
Rejestracja: pn wrz 17, 2018 5:26 pm

pn wrz 16, 2019 11:45 am

Koledzy trochę mnie nie było. Na jakim etapie funkcjonalności jest firmware? Nie wiem czy wgrywać czy czekać na kolejną wersję?
Awatar użytkownika
o_rany
Posty: 250
Rejestracja: śr lis 14, 2018 5:32 pm
Lokalizacja: Sosnowiec
Kontaktowanie:

pn wrz 16, 2019 11:58 am

Simono pisze:
pn wrz 16, 2019 11:45 am
Koledzy trochę mnie nie było. Na jakim etapie funkcjonalności jest firmware? Nie wiem czy wgrywać czy czekać na kolejną wersję?
....ciiiiiiiichooooo nie przeszkadzaj..... @djack2017 pracuje....... wszyscy z zapartym tchem czekają....
djack2017
Posty: 377
Rejestracja: pn lis 27, 2017 7:36 am

wt wrz 17, 2019 7:48 pm

Z tym pracuje to tak nie do końca - byłem 3 dni na urlopie. Generalnie wszystko działa oprócz tego paskudnego przycisku, który jest na GPIO3 (RxD). Teoretycznie poniższa sekwencja inicjująca powinna (według mnie) działać, a nie działa:

Kod: Zaznacz cały

PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);
gpio_output_set(0, 0, 0, GPIO_ID_PIN(3));           	//Set GPIO3 as input
gpio_register_set(GPIO_PIN_ADDR(3), GPIO_PIN_INT_TYPE_SET(GPIO_PIN_INTR_DISABLE)
					| GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_DISABLE)
					| GPIO_PIN_SOURCE_SET(GPIO_AS_PIN_SOURCE));
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, BIT(3));   	//clear interrupt status
PIN_PULLUP_EN(PERIPHS_IO_MUX_U0RXD_U);	//Enable pin pull up
Przycisk zwiera do GND układu. Pullup czy jest enable czy disable to nie ma znaczenia. Przycisk nie generuje przerwania.
Może ma ktoś jakiś pomysł bo mnie się póki co wyczerpały.
Awatar użytkownika
pzygmunt
Posty: 8430
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

wt wrz 17, 2019 7:55 pm

Dodaj do pliku nagłówkowego Twojej płytki
#define USE_GPIO3
djack2017
Posty: 377
Rejestracja: pn lis 27, 2017 7:36 am

wt wrz 17, 2019 8:08 pm

Też było już dodane. Powoduje to dodatkowo wykonanie
system_uart_swap ();
Co pozbawia mnie możliwości debugowania, a przełącznik i tak nie działa.
Ciekawe jest to, że bez obciążenia układu, jak dotykam końcówkami miernika końcówek przełacznika to generuje się mnóstwo przerwań i układ wchodzi w tryb konfiguracji. Z obciążeniem już taki efekt nie występuje.
Awatar użytkownika
pzygmunt
Posty: 8430
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

wt wrz 17, 2019 8:14 pm

To musi wywołać uart_swap ponieważ domyślnie uart jest na gpio3. Możesz się wpiąć w UART1 jeśli piny są dostępne
djack2017
Posty: 377
Rejestracja: pn lis 27, 2017 7:36 am

wt wrz 17, 2019 8:29 pm

pzygmunt pisze:
wt wrz 17, 2019 8:14 pm
To musi wywołać uart_swap ponieważ domyślnie uart jest na gpio3. Możesz się wpiąć w UART1 jeśli piny są dostępne
To jest jasne, przy czym jest to sprawa drugorzędna - bo obsługa przycisku i tak nie działa.
Natomiast mam pytanie - czy aby używać GPIO3 jako linii we/wy muszę wykonać uart_swap czy wystarczy:
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3)
i wtedy mam do dyspozycji dotychczasową linię TxD do debugowania (?)
Awatar użytkownika
pzygmunt
Posty: 8430
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

wt wrz 17, 2019 8:38 pm

To jest teoretycznie wykonalne ale trzeba przerobić uart.c
Patryk
Posty: 776
Rejestracja: pn sty 07, 2019 7:51 pm

wt wrz 17, 2019 8:39 pm

Nie wiem czy to w czymś pomoże, ale zobacz:
viewtopic.php?p=47016#p47016
djack2017
Posty: 377
Rejestracja: pn lis 27, 2017 7:36 am

wt wrz 17, 2019 8:50 pm

Patryk pisze:
wt wrz 17, 2019 8:39 pm
Nie wiem czy to w czymś pomoże, ale zobacz:
viewtopic.php?p=47016#p47016
Użycie #define USE_GPIO3 powoduje wykonanie:

Kod: Zaznacz cały

#if defined(USE_GPIO3) ||  defined(USE_GPIO1) || defined(UART_SWAP)
    system_uart_swap ();
#endif

#ifdef USE_GPIO3
   PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);
   PIN_PULLUP_DIS(PERIPHS_IO_MUX_U0RXD_U);
#endif
Ja to dokładnie (a nawet więcej) robię, ale bez efektu.
ODPOWIEDZ

Wróć do „Gotowy sprzęt”