[ARM] STM32_Low level Programming
ARM/2_Study2024. 4. 24. 10:01[ARM] STM32_Low level Programming

1.  STM32F411RET6(ARM Cortex-M4) STM32f411RET6 특성Flash Memory : 512 kBytesRAM : 128 kBytesSpeed : 100 MHz   2.  STM32 구조 D-BUS : RAM BUSI-BUS : Flash Memory BUSS-BUS : 주변장치 BUS APB1, APB2 : Bus 이름→ ARM Architecture에서는 모든 peripheral, clock을 사용자가 설정해줘야함⇒ 복잡할 수 있지만 전력 소모에서 이득  3.  ioc를 이용한 설정 3-1.  Clock 설정  PLL회로 : 클럭 증폭→ NUCLEO 보드에는 8MHz 외부 크리스탈 오실레이터가 장착되어 있음..

[FullCustomIC] Cadence Virtuoso_4bit Adder, Subtractor
Full Custom IC/Study2024. 4. 21. 22:10[FullCustomIC] Cadence Virtuoso_4bit Adder, Subtractor

1. 4bit Adder Half Adder 1개, Full Adder 3개가 직렬로 이어져 있는 형태 → 각각의 Adder가 각 자리수에 대한 연산 시행 test setup VDD VSS VINH source type DC 1V DC 0V Pulse Voltage range x x 0 ~ 1V Period x x 20n Delay time x x 0s Rise time x x 1ps Fall time x x 1ps Pulse width x x 10n Simulation time 30ns 0111 (VING, VINE, VINC, VINA) x100 (VINH, VINF, VIND, VINB) → VINH의 값만 0, 1로 바꾸어 연산 결과 확인 VINH = 0) 0111 + 0100 (7+4) = 10..

[FullCustomIC] Cadence Virtuoso_XOR Gate, Adder
Full Custom IC/Study2024. 4. 21. 21:11[FullCustomIC] Cadence Virtuoso_XOR Gate, Adder

1. XOR Gate ⦁ Truth Table VINA VINB VOUT 0 0 0 0 1 1 1 0 1 1 1 0 X = A ⊕ B = A’B + B’A ⇒ Input 2개가 서로 다를 때 1 출력 → 덧셈과 유사 (1) Logic Level Design → TR 22개 (2) Switch Level Design → TR 6개 2. Adder Half Adder(carry X) : 17 + 15 = 2 Full Adder(carry O) : 17 + 15 = 32 3. Half Adder : 덧셈 연산을 수행하는 디지털 회로 Truth Table VINA VINB S(out) C(out) 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 S = A’B + AB’ (XOR Gate) C = AB ..

[FullCustomIC] Cadence Virtuoso_4x1 MUX(Logic, Switch), 8x1 MUX(Logic, Switch), 16x1 MUX(Logic, Switch)
Full Custom IC/Study2024. 4. 20. 22:24[FullCustomIC] Cadence Virtuoso_4x1 MUX(Logic, Switch), 8x1 MUX(Logic, Switch), 16x1 MUX(Logic, Switch)

1. 4x1 MUX(Logic) ⦁ Truth Table VINA VINB VINC VIND S0 S1 VOUT A B C D 0 0 A A B C D 1 0 B A B C D 0 1 C A B C D 1 1 D 2. 4x1 MUX(Switch) 3. 8x1 MUX(Logic) ⦁ Truth Table S2 S1 S0 VOUT 0 0 0 VINA 0 0 1 VINB 0 1 0 VINC 0 1 1 VIND 1 0 0 VINE 1 0 1 VINF 1 1 0 VING 1 1 1 VINH 4. 8x1 MUX(Switch) 5. 16x1 MUX(Logic) ⦁ Truth Table S3 S2 S1 S0 VOUT 0 0 0 0 VINA 0 0 0 1 VINB 0 0 1 0 VINC 0 0 1 1 VIND 0 1 0..

[ARM] I2C Level Shifter
ARM/1_Study2024. 4. 10. 03:28[ARM] I2C Level Shifter

■ Level Shifter 양 디바이스의 전압이 다를 때 사용 Level Shifter를 사용하지 않으면 Low Level Module의 High signal 3.3V가 High Level Module에서 High signal로 인식하지 못할 수 있음 또한, High Level Module의 High signal 5V가 Low Level Module에 인가되었을 때 손상을 입힐 수 있음 Mobility가 더 좋은 nMOS 주로 사용 Pull-up Register 이용 동작 원리 1. High Level Module → Low Level Module signal transmit 2. Low Level Module → High Level Module signal transmit Made By Minseok..

[ARM] STM32_FND,DHT11
ARM/1_Study2024. 4. 8. 22:20[ARM] STM32_FND,DHT11

1. FND Common Cathode type D1 ~ D4 : Common pin → 0이면 ON, 1이면 OFF A ~ G : Segment pin → 1이면 해당 핀 ON DP : Decimal pin → 1이면 소수점 ON (1), (2) : Prescaler : 16-1 (3) : PB0 ~ PB7 : GPIO Output(A ~ DP), PC0 ~ PC3 : GPIO Output(D1 ~ D4) `SysTick_Handler()` : 1ms마다 실행 → `SystickCallBack()` 함수 1ms마다 실행 1-1. 2, 4번째 FND만 ON 더보기 void SystickCallBack()// Run every 1ms { // 2, 4번째 FND만 켜짐 static int pos = 0; ..

image