본문 바로가기

Master/Embedded

(14)
HCLK, FCLK, PCLK [이론] FCLK, HCLK, PCLK란? ​우선 공통적으로 포함되는 CLK는 Clock을 의미한다.일정 주기마다 발생하는 클럭에 따라인의적인 신... blog.naver.com
UART 통신 이론, stop, start bit NONE Parity bit, 8 Data bit, 1 Stop bit N,8,1의 의미는 패리티 비트는 없고 데이터 비트는 8, 스톱 비트는 1로 총 9개의 비트가 한문자를 표현한다는 뜻이다. 여기에 표시는 안 하지만 시작 비트 1개를 더해 총 10개의 비트가 한문자를 표현하게 된다. 한문자가 10개의 비트로 구성되면 초당 960 문자를 주고받을 수 있다는 뜻이다. 장치에서는 104 µs 시간 간격으로 전압을 10회 측정하여 시작 비트(Start bit), 종료 비트(1 Stop bit)를 버리고 8개의 비트로 ASCII 테이블에 대입해 문자를 확인하게 된다. "A" ASCII 테이블에서 보면 숫자 65이며 이를 16진수로 변환하면 41이고 이를 이진수로 환산하면 0100 0001 이 된다. 여기에 시..
시리얼 통신 기초 (Serial Communication) Hardware Implementation앞선 내용들은 시리얼의 개념에 대한 내용이었습니다. 여기서는 시리얼의 하드웨어 구현, signal level 에서 살펴봅니다. (RS-232, logic-level (TTL)) 마이크로 컨트롤러나 low-level IC 의 경우 TTL (transistor-transistor logic) level 에서 시리얼 통신을 구현합니다. TTL serial signal 은 마이크로 컨트롤러의 동작 전압에 의해 변화하는데 보통 0V ~ 3.3V 또는 5V 입니다. VCC level (3.3V, 5V, etc.)의 signal의 경우 idle 상태를 의미하며 bit 값으로는 1로 표현됩니다. 이 값은 stop bit 의 값(1)과 같습니다. 0V (GND) signal 은 ..
MSP와 PSP You are correct in a way, in the cortex m (which your stm32 is, though I can't say which variant unless you specify a part) there is one active stack pointer r13, this can however be either the MSP or PSP. The reason for two is to enable the user to easily implement a multi tasking 'operating system'. The idea is that the PSP or process stack pointer is used by the individual tasks, and the kern..
ISR(Interrupt Service Routine) 폴링이 대상을 주기적으로 감시하여 상황이 발생하면 해당처리 루틴을 실행해 처리한다면, 인터럽트는 상대가 마이크로프로세서에게 일을 처리해 달라고 요청하는 수단이다. 따라서 폴링과 대비되는 개념이다.[4][5] 폴링은 주기적으로 마이크로프로세서가 상태를 파악하기 위해 장치의 레지스터를 읽어야 한다. 이 작업이 진행되는 동안은 다른 장치는 체크가 힘들다. 그리고 이런 작업은 장치의 상태를 읽는데 마이크로프로세서의 자원이 낭비된다.[6] 마이크로프로세서의 다른일과 겹쳐 폴링이 고속의 하드웨어에서 데이터 손실될 여지가 있다면, 인터럽트는 해당 하드웨어가 CPU에게 요청하므로 빨리만 처리된다면 데이터 손실 위험이 작아진다. 폴링은 리얼타임에 문제의 소지가 있다면, 인터럽트는 필요할 때 처리되는 경향이 있어서 폴링보..
Interrupt (인터럽트), Exception (예외) Interrupt (인터럽트) : 제어 흐름에서 예상치 못한, 외부에서 전달되는 사건. Exception (예외) : 프로세서 내부에서 발생하는 예상치 못한 사건. 일부 architecture 에서는 exception과 interrupt를 interrupt 로 통합하여 용어를 사용하기도 하는 반면, 다른 architecture에서는 구분하여 사용하기도 한다. 구분할 경우 외부 인터럽트는 인터럽트로, 내부 인터럽트는 예외로 생각하면 된다. - 내부 인터럽트 (Internal interrupt) - exception . SVC (SuperVisor Call) 인터럽트 : 외부의 프로그램이 의도적으로 호출. 예를 들어 다른 프로세스 수행 중 새로운 프로세스를 실행하면 자원 할당 등의 동작을 수행 . 산술 오버..
HAL 라이브러리 HAL 라이브러리 구성 소스파일은 단순히 cubeMX에서 PG13(Green LED)을 Output으로 TrueSTUDIO로 Generate한 코드다. TrueSTUDIO의 첫화면은 다음과 같다. HAL 라이브러리를 사용하면서, main.c에서는 단순히 main.h 헤더를 불러오게.. noel-embedded.tistory.com
Pull up, Pull down 풀업(Pull-up), 풀다운(Pull-down)장치 개요 아두이노를 사용하다 보면 전류를 제어하는 기능을 사용하거나 버튼을 만들때 스위치를 사용해야 할 경우가 많이 생깁니다. 버튼식 스위치는 버튼 상태에 따라 다르게 출력되는 값을 통해 kocoafab.cc
GPIO [STM32 HAL] GPIO Referencehttps://leanpub.com/mastering-stm32https://github.com/eziya/STM32F4_HAL_EXAMP... blog.naver.com
keil 프로젝트 생성 KEIL uVision 5 에서 프로젝트 생성. 타겟칩의 예로 STM32를 사용함. 개요. 본 글은 KEIL uVision 5 (KEIL MDK-ARM)에서 프로젝트 생성하는법과 main.c 를 만들어 두는 것까지 정리한다. 예로 사용되는 대상칩은 STM32F407Z로 한다. 1. KEIL uVision 5 에서 프로젝트 생성하기. 단계.. igotit.tistory.com
ARM assembly ARM 명령어 공부 ipad2에는 A5라는 CPU가 탑제되어 있습니다 ARM 회사에서 만들었기 때문에 리버싱을 하려면 당연히 ARM CPU에 대해서 적당한 지식이 있어야합니다. 여기선 조금씩 알아보고 더욱 자세한 내용은 ARM CPU ezbeat.tistory.com
UART 와 USART의 차이 UART (Universal Asynchronous Receiver Transmit) : 비동기 모드로서 사용되는 시리얼통신 USART (Universal Synchronus Receiver Transmit) : 동기 모드로서 사용되는 시리얼통신 # UART 와 USART의 차이 = 동기와 비동기 모드의 차이 동기 모드는 데이터 동기화를 위해 별도의 클록 신호를 전송한다. AVR에서 데이터 동기화를 위한 클록 신호는 XCK 핀을 통해 전달된다. 동기 모드에서는 비동기 모드에서 데이터 동기화를 위해 사용하는 시작 비트(start bit)와 정지 비트(stop bit)는 필요하지 않으므로 데이터 전송 효율을 높일 수 있는 장점이 있지만, 클록 핀을 필요로 하는 단점이 있다. 비동기 모드는 별도의 클록을 사용..
UART, USART 실습 kangssu.com/wed07/post/2016-10-14-7%EC%A1%B0-6%EC%A3%BC%EC%B0%A8-%EC%8B%A4%ED%97%98.html 7조 6주차 실험 개요 비동기(UART) 통신에 대해서 알아보는 실험이다. 다른것으로 USART 가 있는데 이것은 동기화 통신이라고 UART, 즉 비동기까지 지원하는 통신방법이다. 이번 실험에서는 UART 를 이용하여 테스트 kangssu.com
Baud Rate, Bit Rate란? 1. Bit Rate Bit Rate는 초당 데이터 비트(0 or 1)를 얼마만큼 전송할 수 있는지 나타내는 값. BPS(Bit Per Second)로도 나타냄. PCIe나 버스의 데이터 전송 속도를 나타낼 때 주로 사용 2. Baud Rate 전기통신 및 전자공학에서 보(baud, 단위 기호 "Bd")는 초당 펄스 수 또는 초당 심볼 수를 뜻한다. Baud Rate는 초당 많은 심볼(Symbol, 의미 있는 데이터 묶음)을 얼마만큼 전송할 수 있는지 나타내는 값. Teraterm 같은 시리얼 통신에서 115200과 같은 수치로 사용 1 킬로 보(kBd)=1,000Bd 의 전송 속도는 초당 1,000심볼의 심볼 속도와 같다. 심볼이 ascii code 라면, 1 baud는 8bit이다. ※ 보오는 1초당..