You are on page 1of 13

OUTPUT PUSH-PULL , OPEN-DRAIN

PushPull
Đối với chế độ hoạt động này thì cả Mosfet P-MOS và N-MOS đều hoạt động. Khi P-MOS dẫn N-MOS tắt thì chân I/O
sẽ xuất mức 1, Khi P-MOS tắt N-MOS dẫn thì chân I/O sẽ xuất mức 0,
Opendrain
Đối với chế độ hoạt động này thì chỉ có N-MOS hoạt động. N-MOS dân
CÁCH MẮC LED THEO KIỂU
SINK DÒNG, SOURCE DÒNG
Source dòng (Source current): khi tải hoạt động dòng sẽ đi từ chân vi
điều khiển đi qua tải và xuống GND.

Sink dòng (Sink current): khi tải hoạt động dòng sẽ đi từ nguồn qua
tải về chân vi điều khiển và xuống đất

Câu hỏi : 2 mạch trên mạch nào là sink, mạch nào là source ?
CẤU HÌNH TRONG CUBE
 GPIO output level: Trạng thái IO mặc
định
• LOW: mặc định ở mức thấp:
• HIGH: mặc định ở mức cao.
 GPIO mode:
• Output Push Pull: ngõ ra chế độ đẩy
kéo.
• Output Open Drain: ngõ ra chế độ cực
thu hở.
 Maximum output speed: Tốc độ ngõ
ra tối đa.
HÀM CẦN NHỚ

Hàm xuất tín hiệu ra 1 chân:


HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
Tham số:
 GPIOx : GPIOA, GPIOB, GPIOC, GPIOD
 GPIO_Pin: GPIO_PIN_x (x từ 0 đến 15)
 PinState:
• GPIO_PIN_RESET: Xuất mức 0.
• GPIO_PIN_SET:
+) Xuất mức 1 nếu ở chế độ Push pull.
+) không xuất gì nếu ở chế độ Open Drain.
INPUT
ĐIỆN TRỞ PULL-UP, PULL-DOWN

Điện trở Pull-up Điện trở Pull-down


BÀI TẬP VỚI NÚT NHẤN

Bài 1: Nhấn nút bật đèn nhả nút tắt đèn.


Bài 2: Nhấn nút bật đèn nhả nút vẫn bật, nhấn lần nữa mới tắt, cứ
thế lặp lại.
HIỆN TƯỢNG RUNG CỦA NÚT NHẤN
• Do phím nhấ n bên ngoà i là phím cơ khí nên khi nhấ n hoặ c nhả phím sẽ xảy ra hiện tượ ng
rung phím trong khoả ng thờ i gian là 20ms.
• Hiện tượ ng này dẫ n đến là chú ng ta nhấ n 1 lầ n nhưng vi xử lí đọ c đượ c nhiều lầ n.
CHỐNG RUNG NÚT NHẤN
Cách 1: dùng tụ mắc song song nút nhấn

104 = 10^4 pico Fara


10^4*10-12 =10^-8
STM32

Nguyên lí chống rung: khi chưa nhấ n nú t tụ điện sẽ đượ c


nạ p điện, khi nhấ n nú t tụ điện bắ t đầ u xả ra sẽ dậ p cá c xung
mà nú t nhấ n bị rung tạ o ra.
CHỐNG RUNG NÚT NHẤN
Cách 2: chố ng rung bằ ng phầ n mềm (cá ch này hay đượ c sử dụ ng vì tiết kiệm chi phí phầ n
cứ ng – đỡ tố n em tụ :v).

Thuật toán: khi bắ t đượ c sự kiện nhấ n nú t, chú ng ta sẽ bỏ qua khoả ng thờ i gian 20ms
rung phím, sau đó kiểm tra lạ i 1 lầ n nữ a để chắ c chắ n phím vẫ n đang đượ c bấ m sau đó xử
lí code như bình thườ ng.
CẤU HÌNH TRONG CUBE

 GPIO pull-up/Pull-down:
• No pull-up and no pull-down: không điện trở kéo
lên và kéo xuống
• pull-up : sự dụng điện trở kéo lên.
• pull-down : sự dụng điện trở kéo xuống
HÀM QUAN TRỌNG
Hàm đọc trạng thái của 1 chân.
HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin).
 Tham số:
 GPIOx : GPIOA, GPIOB, GPIOC, GPIOD
 GPIO_Pin: GPIO_PIN_x (x từ 0 đến 15)
 Trả về:
 GPIO_PIN_RESET: nếu chân ở mức 0 GPIO_PIN_SET: nếu chân ở mức 1
Bài tập
Bài tập 1: Nhấn nút trên chân PA0 thì đèn trên chân PC13 bật, nhấn lần nữa đèn tắt.
Bài tập 2: Nhấn nút trên chân PA0 đèn trên chân PC13 bật, nhấn giữ 3s đèn tắt

You might also like