[ARM] Project : Pedestrian Safety Integrated Control System
ARM/Project2024. 5. 8. 22:55[ARM] Project : Pedestrian Safety Integrated Control System

Project : Pedestrian Safety Integrated Control System ⦁  개요 : STM32 ARM Cortex M4를 이용한 보행자 안전 통합 관제 시스템 개발 ⦁  기능     1. 횡단보도 차량 속도 경고 알림           1) 일정 속도를 초과하면 LED 점등     2. 에스컬레이터 일반인, 노약자 모드(자동 동작, 자동 멈춤, 에너지 절약)          1) 일반인 모드                a) 에스컬레이터 속도 : 빠름                b) 동작 : 보행자가 에스컬레이터 시작 위치를 지나가면 동작을 시작, 끝 위치에 도달하면 동작 종료                c) 일반인은 에스컬레이터를 걸어갈 수도, 가만히 서서갈 수도 있기 때문에 ..

[ARM] STM32_FreeRTOS, Shared Memory
ARM/2_Study2024. 4. 30. 00:23[ARM] STM32_FreeRTOS, Shared Memory

1.  OSProcess = 프로그램Thread = Process 내부에서 동작하는 프로그램Process → Process Direct Access 불가능 ⇒ IPC(Inter Process Communication) 사용 Windows, Linux : 범용 OS ← 8GB 이상임베디드용 OS : 제한된 기능(스케줄링, 메모리 제어) ← 10kB 이하종류 : RTOS, Micrium OS, …  OS 필수 기능⇒ 스케줄링프로세스가 실행되는 순서를 결정 FCFS(선착순)        : 프로세스는 준비 대기열에 도착한 순서대로 실행. 비선점형 스케줄링 알고리즘우선순위 스케줄링        : 각 프로세스에 우선순위 할당Round Robin(RR) ← 대부분의 OS에서 사용        : 각 프로세스에 실..

[ARM] STM32_Serial Communication(UART), Queue
ARM/2_Study2024. 4. 29. 23:43[ARM] STM32_Serial Communication(UART), Queue

1.  Serial Communication   동기/비동기 통신 방식 핀 다중 통신여부 Slave구분 방법 속도 UART비동기전이중(Full Duplex)TxD, Rxd1:1 통신XCLK이 없어 속도의 제한이 있음I2C동기반이중(Half Duplex)SCL, SDA1:n 통신AddressSPI보다 느림SPI동기전이중(Full Duplex)CLOCK, MOSI, MISO, CS1:n 통신CS(Chip Select)제일 빠름 특징I2C반이중 통신으로 송수신 동시 불가데이터 전송에 Address 송신, ACK bit 수신 프로토콜이 추가되어 속도가 SPI에 비해 느림(100kHz, 400kHz)핀 개수 적음Pull-up 저항 필요SPI속도 가장 빠름 (Mbps)각 Slave별로 CS핀이 필요하여 핀..

[ARM] STM32_PWM, Driver(Motor)
ARM/2_Study2024. 4. 29. 23:14[ARM] STM32_PWM, Driver(Motor)

1.  PWM Prescaler 설정 : 100-1 → 100MHz / 100 : 1MHzARR(Auto Reload Register)Counter Period 조절하여 주파수 조절 (top 값)1MHz → 1 count = 1us@ ARR=1000-1) 0 ~ 999 count하고 overflow → 1kHzCCR (Channel Compare Register) : Pulse 값 조절하여 duty rate 조절PWM mode : mode 1) CNT CCR → 출력 High(시작 Low)Output compare preload : Enable → CCR 값 변경시 다음 주기부터 변경 적용 / Disable → CCR 값 변경시 바로 적용(오류 가능성 있음)CH Polarity 조절하여 시작을 LOW ..

[ARM] STM32_메모리 저장&실행 과정, Driver(Button, LED)
ARM/2_Study2024. 4. 26. 00:03[ARM] STM32_메모리 저장&실행 과정, Driver(Button, LED)

1.  메모리 저장 & 실행 과정 `main.c` 소스 파일 Compile → `main.o` 오브젝트 바이너리 코드 파일 변환 → Linker가 `main.elf` 실행 코드로 변환Flash Memory : 실행 코드 저장RAM : 데이터 저장  .elf 실행 코드가 flash Memory에 저장되는데 어떻게 저장? → 메모리는 각 section으로 나뉘어져 있음 .map 파일`.map` 파일에서 각 section을 어디에 저장시킬지 저장되어 있음. (네비게이션 역할)(.text : 사용자 정의 함수 등) LinkerScript 파일더보기/*********************************************************************************** @file ..

[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 외부 크리스탈 오실레이터가 장착되어 있음..

image