Skocz do zawartości

Emerid

Użytkownicy
  • Zawartość

    10
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O Emerid

  • Ranga
    2/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dla wartości R1 = 10k, R2 = 1k, C3 = 1000u układ działa poprawnie. Problem zaczyna się, kiedy dam R1 = 100R - poniżej zachowanie układu. 1. Kondensator ładuje się normalnie od wartości 0V do 4V (Stan Q = 1, świeci się dioda czerwona) 2. Kondensator rozładowuje się od 4V do 2.08V i zatrzymuje się (Stan Q = 0, świeci się dioda zielona) Trochę pomierzyłem i okazuje się, iż przy zastosowaniu rezystora R1 = 100R napięcie na pinie 7 (discharge) w momencie zwarcia tranzystora rozładowującego nie jest równe 0V (GND), tylko 2.08V. Jakiś pomysł dlaczego tak się dzieje? Edit: Kolejne pomiary V_cc = 5.76V Dla R1 = 50R (2x 100R połączone równolegle) V_DIS = 3.84V, (V_cc - V_DIS)/R1 = 38.4 mA Dla R1 = 76R (100R i 330R połączone równolegle) V_DIS = 2.80V, (V_cc - V_DIS)/R1 = 38.9 mA Myślicie, że 38mA to maksymalna wydolność tego tranzystora rozładowującego? Jak to wygląda z zatykaniem się tranzystorów? (Czy zatkanie oznacza jeszcze coś innego?) Edit2: Kolejne pomiary Zwiększenie V_cc rozwiązuje problem. Czy to oznacza, iż tranzystor rozładowujący ma małe wzmocnienie prądowe/ transkonduktancję?
  2. Jeśli dobrze rozumiem, w momencie kiedy odbierany jest sygnał, na pinie OUT występuje logiczne zero, czyli masa (GND), zatem dioda nie powinna świecić, bo nie ma zasilania. Czy nie jest odwrotnie? Dioda świeci właśnie w momencie odebrania sygnału. Mógłbym prosić o sprawdzenie, ewentualne wyjaśnienie mi czego nie rozumiem? Edit: Ok, już rozumiem, ale zostawię post. Przy generowanym stanie niskim tworzy się różnica potencjałów, która właśnie pozwala na przepływ prądu. (Dioda jest zasilana z baterii, a nie z układu scalonego i potrzebuje jedynie masy do zamknięcia obwodu)
  3. @Gieneq Dziękuję. Nie wiedziałem nawet, iż istnieje taka funkcja single. Trigger też poprawiłem Widzę piękne drgania Dla ciekawych, czas opadania zbocza 160ns, zatem minimalne pasmo przewodzenia= 0.34/160ns = 2.125 MHz lub dla dokładniejszych pomiarów (kolejne harmoniczne) 3*2.125 MHz = 6.375 MHz. Proszę jeszcze o potwierdzenie czy dobrze rozumiem. Pasmo przewodzenia jest po to, żeby sygnał nie był tłumiony, natomiast próbkowanie zbiera próbki sygnału bez względu na to, czy sygnał został stłumiony, czy nie. Tak to działa?
  4. #include "stm32f1xx.h" void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); } int main(void){ SystemCoreClock = 8000000; HAL_Init(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); GPIO_InitTypeDef gpio; gpio.Pin = GPIO_PIN_5; gpio.Mode = GPIO_MODE_OUTPUT_PP; gpio.Pull = GPIO_NOPULL; gpio.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &gpio); gpio.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3; gpio.Mode = GPIO_MODE_OUTPUT_PP; gpio.Pull = GPIO_NOPULL; gpio.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &gpio); gpio.Pin = GPIO_PIN_13; gpio.Mode = GPIO_MODE_IT_RISING; gpio.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOC, &gpio); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); uint32_t led = 0; while(1){ if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_5) == GPIO_PIN_RESET){ HAL_GPIO_WritePin(GPIOC, 1 << led, GPIO_PIN_SET); HAL_Delay(150); HAL_GPIO_WritePin(GPIOC, 1 << led, GPIO_PIN_RESET); if(++led >= 4) led = 0; } else{ HAL_GPIO_WritePin(GPIOC, 8 >> led, GPIO_PIN_SET); HAL_Delay(150); HAL_GPIO_WritePin(GPIOC, 8 >> led, GPIO_PIN_RESET); if(++led >= 4) led = 0; } } } Moje rozwiązanie zadanie 4.1. Stan diody PA5 zmieniany jest poprzez interwencję. Czy da się w jakiś sposób utworzyć zmienną w funkcji HAL_GPIO_EXTI_Callback() i przesłać ją do funkcji main()?
  5. @Gieneq Jeśli chodzi o rezystancję switcha, to po prostu podłączyłem szeregowo rezystor i switch i obserwując napięcie na oscyloskopie ... aaa, no to jasne. Oscyloskop ma chyba impedancję 1M, więc to on by tworzył dzielnik z moim rezystorem, a nie switch. Racja? W jaki sposób przelicza się 500MS/s na 5mln próbek/s? Czy MS/s nie znaczy Million Samples / sekundę? Pomyślałem też, że winą może być niewystarczające pasmo przewodzenia układu. Mój tani oscyloskop z pasmem 50MHz z jeszcze tańszą sondą 60MHz dają pasmo systemu około 38MHz (obliczenia na podstawie kursu https://learn.keysight.com/oscilloscope-probes-201). Bylibyście w stanie zmierzyć dla mnie t_rise zboczy tych drgań? Pozdrawiam.
  6. Co zrobić, jeśli kompilator faktycznie pomija wiersze z delay? (U mnie działo się tak już w zalecanym System Workbench)
  7. Mój oscyloskop ma próbkowanie 500 MS/s - czy to dla tego nie jestem w stanie zaobserwować drgań na styka tact switcha? (za wolne próbkowanie?) Odnośnie podciągania i ściągania napięcia tact-switchem, to warto też nadmienić, żeby ten rezystor pierwotny nie miał zbyt dużej wartości, bo ja dla testu dałem 1M, co jest równe rezystancji tact-switcha przy rozwarciu i dostałem dzielnik napięcia
  8. Wystąpił u mnie taki sam problem jak u cyberluk oraz MarcinPura. Czy udało się znaleźć rozwiązanie? #Edit: Ponowna instalacja System Workbench i zrestartowanie komputera pomogło. Zostawiłem też bez zmieniania domyślną ścieżkę katalogu instalacji
  9. Mam pytanie odnośnie budowy tranzystora. Kiedy mówimy, że podłoże jest domieszkowane typem p, to chodzi nam o tę niebieską część, czarną część, czy może obie? Czy to czarne jest elektrodą? Jeśli tak, to czy taką samą jak bramka, dren i źródło?
  10. Dlaczego zwieramy masy 4 i 5 z 12 i 13 na L293D? Nie sterują one dwoma różnymi silnikami?
×
×
  • Utwórz nowe...