이번 포스팅에서는 각각의 구현은 다르지만 기능은 같은 객체들을 관리하는 Builder 패턴에 대해 알아보겠습니다. 간단하게 예를 들면 사용자측 코드 즉, main 함수에서는 객체를 만들 뿐 기능을 사용하기 위해 기능 함수를 직접 호출하지 않고 관리자를 통해서만 일 처리를 합니다. Key(버튼) 처리하는 예제로 Builder 패턴을 상세히 들여다 보겠습니다. Key를 입력받아 처리하는 식의 기능은 firmware에서는 참 많이 쓰입니다. Key 처리 기능은 하드웨어적으로 참 많이 바뀝니다. 예를 들어 단순 1:1 GPIO를 사용할 수도 있고 ADC를 사용할수도 있으며 혹은 1:N 매트릭스 GPIO를 사용할 수도 있습니다. 아니면 세가지 다 사용할 수도 있겠지요. 주의할 점은 어떠한 하드웨어 Ke..
로지텍 K855를 사기전 알리익스프레스에서 K68을 구매했습니다. 가격은 18,000원 정도입니다. 텐키리스와 더불어 function 키도 없습니다. 2.4G 무선동글을 비롯해 블루투스까지 지원하는 가성비를 가졌습니다. 사이즈도 상당히 컴팩트해서 조명만 잘 받으면 이쁩니다. 외관은 보시다 시피 깔끔합니다만 가까이에서의 모습은 저렴해 보이기도 합니다. 키에 짙은 회색 도료로 코딩이 되어있는데 고급진 느낌은 아닙니다. 사용해보다 보면 은근이 Function키를 한번에 누를 수 없어 불편할 때도 있습니다. 그.리.고 제가 이 키보드를 쓰기 싫어했던 결정적인 이유가 있습니다. 바로 End 키입니다. End 키를 누르기 위해서는 Fn 키와 같이 눌러야 하는데 영 불편한게 아니었습니다. 코딩이나 문서를 작성할 때 ..
쿠팡에서 K855 키보드를 해외직구로(약 7만원 대) 구매했습니다. 현재 K835를 너무 만족스럽게 사용하고 있어서 구매결정하는데 그리 어렵지 않았습니다. 해외 직구라서 한글자판이 인쇄되어 있지 않습니다. 상판이 알루미늄이어서 고급스럽게 보입니다. 3개까지 블루투스로 붙일 수 있고 로지텍 볼트 USB 동글도 지원하고 있었습니다. 텐키리스는 무조건 추천입니다. 숫자 키가 없어 마우스를 잡는 오른손을 좀 더 몸쪽으로 붙일 수 있어 피로도가 덜합니다. 숫자 키를 자주 사용하는 직업인 경우에는 숫자키 키보드를 별도로 사용하는 것이 훨씬 더 좋을 거 같습니다. ins, home, page up/down, del, end 키의 배열과 위치가 아주 이상적입니다. 코딩할 때 딱 저 위치가 좋은 것 같습니다. 조금만 배..
이제 MP1에서도 베어메탈 어플리케이션을 돌릴 수 있게 되었네요!!! 우왕굳 다양한 전자 애플리케이션과 고객들을 지원하는 세계적인 반도체 회사인 ST마이크로일렉트로닉스(STMicroelectronics, 이하 ST)가 STM32 마이크로컨트롤러 코드를 보다 강력한 STM32MP1 마이크로프로세서로 마이그레이션하는 새로운 소프트웨어를 발표했다. 이 소프트웨어로 엔지니어들은 임베디드 시스템 설계의 성능을 한 차원 높일 수 있다. 일상 생활과 업무를 지원하는 기술에서 더 많은 기능과 더 빠른 응답을 바라는 최종 사용자들의 요구가 계속되면서, 제조사들은 제품의 성능 향상에 효과적인 솔루션이 필요해졌다. 산업용 실시간 애플리케이션이 대표적 사례이다. 최신 프로세스 장비, 공장 자동화 시스템, 물류 및 소매 기술,..
오늘은 STM32CubeAI를 이용한 아주 간단한 XOR 게이트 머신러닝을 알아보도록 하겠습니다. 요즘 워낙 A.I 어플리케이션이 많이 활용되어 어디에서든 쉽게 AI 모델을 찾아 활용할 수 있습니다. 이번 포스트에서는 이런 모델중에서도 가장 쉬운 XOR 게이트 모델을 통해 STM32CubeAI의 활용중에 아주 기초적인 사용법을 익히도록 하겠습니다. 1. 모델생성 및 .h파일 만들기 우선 model을 아래와 같이 만듭니다. 아래 모델은 Google에서 찾았으나 어느 사이트였는지 기억이 나지않아 링크를 걸지 못했습니다. (보통 왠만한 모델들은 검색을 통해 쉽게 찾을 수 있습니다.) 아래 모델은 각각 XOR의 Input값과 Output 값을 sigmoid 활성화 함수, mse 손실함수와 함께 4000번 학습시..
오실로스코프를 사용하여 사양에 대한 벅 컨버터의 성능을 확인할 수 있습니다. 그림 20. PWM 파형 D0 및 D1 트레이스는 벅 컨버터가 일정한 100mA 부하로 작동할 때 하이 사이드(1차) 및 로우 사이드(2차) 스위치에 대한 PWM 출력을 보여줍니다. PWM 주기는 200kHz 스위칭 주파수에 해당하는 5µs입니다. 출력 전압은 채널 1 트레이스에서 볼 수 있듯이 목표와 일치하는 3.3V입니다. 그림 20 그림 21 CPU 부하에서 D0 트레이스는 CPU가 유휴 상태인 동안, 즉 while(1) 루프를 실행하는 동안 토글되는 디지털 IO 핀(GPO2)입니다. CPU가 FMAC 인터럽트 핸들러를 실행할 때 GPO는 토글을 멈춥니다. CPU가 PWM 주기 시작 후 460ns에 FMAC 인터..
Configuring the FMAC FMAC 레지스터에 액세스하기 전에 FMAC 클록을 활성화해야 합니다. __HAL_RCC_FMAC_CLK_ENABLE(); A 및 B 계수를 위해 시스템 메모리 영역을 할당해야 합니다. /* Array of filter coefficients A (feedback taps) in Q1.15 format */ static int16_t aFilterCoeffA[COEFF_VECTOR_A_SIZE] = {A1,A2,A3}; /* Array of filter coefficients B (feed-forward taps) in Q1.15 format */ static int16_t aFilterCoeffB[COEFF_VECTOR_B_SIZE] = {-B0,-B1,-B2,-B..
Buck converter specification 변환기 예제는 아래와 같은 사양으로 디자인되어 있습니다. • Input supply voltage: 5 V • Output voltage: 3.3 V • Maximum current: 0.5 A • Target ripple: 0.5% (16.5 mV) • Overshoot (50% load step): 5 mV • Control mode: Voltage, digital • Switching frequency: 200 kHz • Sampling frequency: 200 kHz • Crossover frequency: 8 kHz • Phase margin at crossover: 50 degrees • Duty cycle limit: 90% 디스커버리..