Witam, chcę zrobić urządzenie które będzie miało niski pobór prądu bo chcę, żeby było zasilane z baterii(prócz klawiatury i karty SD chcę podłączyć jeszcze mały wyświetlacz i transmiter RF). Chciałem na razie uruchomić to na bibliotekach HAL.. Dla próby mam Nucleo z uC STM32L452RE. Zdecydowałem się na niego, bo ma port SDIO, przez który chciałem podłączyć kartę SD, i stąd teraz pytanie czy jest jakaś znaczna różnica w poborze prądu między podłączeniem karty SD przez SPI a SDIO? SPI ma pin Chip select (CS) którym wydaje mi się, że mógłbym usypiać kartę, a w SDIO nie wiem czy istnieje taka możliwość, czy trzeba byłoby odcinać zasilanie, chyba, że bez wykonywania operacji na karcie nie pobiera ona za wiele prądu.
Druga sprawa to klawiatura matrycowa 3x4, czy żeby zaoszczędzić pobór prądu korzystać z klawiatury matrycowej? Na razie nie myślę o usypianiu uC;/ Czy mniej energochłonne byłoby podłączenie 12 przycisków osobno do portów uC? i próbowałem obsłużyć klawiaturę matrycową za pomocą HAL w funkcji callback dla zewnętrznych przerwań "HAL_GPIO_EXTI_Callback" i w przypadku wystąpienia tego przerwania zmienić kolejno stany na sygnałach wyjściowych na klawiaturę, i zobaczyć na którą linię zareaguje, ale to chyba zła droga tym bardziej, że jak użyję funkcji HAL_Delay(1000); w callbaku przerwania to zawiesza mi przerwanie;/ Czytałem żeby wykorzystać do tego timer, ale nie wiem czy tylko do odliczania czasu na wykrywanie drgania styków, czy też do multipleksowania pinów wyjściowych na klawiaturę?
Proszę o pomoc, bo utknąłem w tym miejscu z projektem.
Druga sprawa to klawiatura matrycowa 3x4, czy żeby zaoszczędzić pobór prądu korzystać z klawiatury matrycowej? Na razie nie myślę o usypianiu uC;/ Czy mniej energochłonne byłoby podłączenie 12 przycisków osobno do portów uC? i próbowałem obsłużyć klawiaturę matrycową za pomocą HAL w funkcji callback dla zewnętrznych przerwań "HAL_GPIO_EXTI_Callback" i w przypadku wystąpienia tego przerwania zmienić kolejno stany na sygnałach wyjściowych na klawiaturę, i zobaczyć na którą linię zareaguje, ale to chyba zła droga tym bardziej, że jak użyję funkcji HAL_Delay(1000); w callbaku przerwania to zawiesza mi przerwanie;/ Czytałem żeby wykorzystać do tego timer, ale nie wiem czy tylko do odliczania czasu na wykrywanie drgania styków, czy też do multipleksowania pinów wyjściowych na klawiaturę?
Proszę o pomoc, bo utknąłem w tym miejscu z projektem.