[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; ..

[ARM] STM32_RTC, Switch
ARM/1_Study2024. 4. 2. 22:49[ARM] STM32_RTC, Switch

1. RTC(Real Time Clock) : 현재 시간을 유지시켜주는 컴퓨터 시계 DS1307 RTC 모듈에는 아래와 같은 소자가 있다. CR2032 : 수은 전지 24C32 : 32kBit EEPROM DS1307(RTC) 좌) 연도가 뒷자리 00 ~ 99만 저장되기 때문에 앞 2자리는 사용자가 알아서 판단해야하며 2100년과 2000년을 구분할 수 있는 기능은 없다. 우) DS1307은 BCD(Binary coded decimal)로 설계되어 있다. 0000 0000 == 0 0000 0001 == 01 0000 1000 == 08 0000 1001 == 09 0001 0000 == 10 → 이런식으로 4bit가 1의 자리, 다음 4bit가 10의 자리 Slave Address : 1101 000x..

[ARM] STM32_LCD I2C, ADC(polling 방식, DMA 방식), CDS
ARM/1_Study2024. 3. 29. 22:23[ARM] STM32_LCD I2C, ADC(polling 방식, DMA 방식), CDS

1. I2C 통신 Write : [장치 주소(7bit) + 0(Write)] [쓰기 데이터(8bit)] Read : [장치 주소(7bit) + 1(Read)] [읽기 데이터(8bit)] ⦁ 모든 data 뒤에는 ACK bit가 붙음(쓰기에서는 slave가, 읽기에서는 master가 보냄) 2. LCD I2C ∘ 16x2 LCD 2-1. LCD 메모리 1. CGROM(Character Generator ROM) ⦁ 8비트 문자 패턴을 저장하고 있는 메모리 ⦁ 208개의 5x8 도트와 32개의 5x10 도트의 문자 패턴 저장(9920bit) ⦁ Character Code 0b0010 0000(공백) ~ 0b0111 1111(←)까지는 ASCII (아스키 코드) 와 일치 → c언어에서 문자로 표현된 데이터를 ..

[ARM] STM32_Radar
ARM/1_Study2024. 3. 24. 16:51[ARM] STM32_Radar

1. Radar - Ultrasonic 거리 측정, Servo Motor 동작 구현 - Ultrasonic으로 측정한 거리 UART 출력 및 Python Radar UI 표시(tkinter 사용하여 물체 위치 표시) (1) TIM1 : servo motor 동작 PWM (Pulse frquency : 50Hz(== Period 20ms)) (2) TIM3 : Ultrasonic Input Capture Interrupt TIMER (3) PA5 : GPIO Trigger, PA6 : TIM3 (4) TIM11 : us delay용 TIMER (5) UART2 : Interrupt set Data(6byte) 통신 protocol : STX CMD data1 data0 CRC ETX - protocol 송..

[ARM] STM32_Buzzer, Ulatrasonic, 필터링, ServoMotor
ARM/1_Study2024. 3. 19. 18:34[ARM] STM32_Buzzer, Ulatrasonic, 필터링, ServoMotor

■ LookUPTable 결과값을 미리 저장하고 있는 배열 LUT(LookUPTable) 배열의 인덱스는 입력, 배열의 값은 출력 /* USER CODE BEGIN 0 */ int soundLUT[] = {131, 147, 165, 175, 196, 220, 247, 262}; // LookUPTable ... int main(void) { ... while (1) { if (countSound == 0) { countSound = 500; static int num = 0; setSound(soundLUT[num]); num++; num %= 8; } ... 1. Buzzer(UART 이용 음계 출력) ⦁ UART로 특정 문자 입력시 Buzzer 음계 출력 - 계이름별 주파수를 LookUPTable로 ..

image