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

Ngọc Tuấ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 ?
Ngọc Tuấn
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.

Ngọc Tuấn
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.

Ngọc Tuấn
INPUT

Ngọc Tuấn
ĐIỆN TRỞ PULL-UP, PULL-DOWN

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

Ngọc Tuấn
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.

Ngọc Tuấn
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.

Ngọc Tuấ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. Ngọc Tuấn
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.

Ngọc Tuấn
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

Ngọc Tuấn
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

Ngọc Tuấn
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

Ngọc Tuấn

You might also like