전체 글 270

ATMEGA32U4 breakout-보드 사용하기 1편(avrdude사용)

안녕하세요. 오늘은 ATMEGA32U4 breakout 보드를 사용해보겠습니다 해당보드는 sparkfun에서 만든보드고 특징으로는 USB인터페이스가 있으므로 ISP장비가 없어도 펌웨어를 다운로드 가능합니다. https://www.sparkfun.com/products/retired/11117 ATMEGA32U4는 아두이노 레오나르도보드에 사용됩니다. ATMEGA32U4는 USB 인터페이스를 제공하므로 아두이노 레오나르도보드가 펌웨어를 다운받을때 별도의 장비가 필요없습니다. 많이 사용하는 아두이노 우노는 ATMEGA328p을 사용하고 해당 MCU는 USB인터페이스를 지원하지않으므로 아두이노우노에는 ATMGEA16u2가 들어가있어서 펌웨어를 다운로드하게 해줍니다. 아두이노 IDE는 펌웨어를 다운로드할때 av..

STM32C031-DK와 DOT MATRIX 사용하기 2편(MAX7219사용)

안녕하세요. 오늘은 STM32C031-DK와 DOT MATRIX 32*8을 사용해보겠습니다. (해당글을 이해하기 위해서는 DOT MATRIX 사용하기 1편을 봐야합니다) 해당 모듈도 MAX7219를 사용하고 도트매트릭스 8*8짜리 1개당 1개씩 사용해서 총 4개가 달려있습니다 *OUT핀 나가는 파형 SPI신호의 MOSI가 MAX7219의 IN핀으로 들어와서 OUT핀으로 나갑니다. 근데 OUT으로 나가는 파형이 동일시점에서 IN과 OUT이 같지가 않습니다. IN파형이 들어오고나서, 16.5클럭이후에 OUT으로 파형이 나갑니다 실제 파형을 보겠습니다 1번이 실제로 MCU와 연결하는 핀이고, 2,3,4번은 2,3,4번째 세그먼트의 IN핀입니다. (글의 처음 부분의 그림에 빨강선이 연결해있는데 파형을 측정하려고..

STM32/STM32C031-DK 2024.02.24

STM32C031-DK와 DOT MATRIX 사용하기 1편(MAX7219사용)

안녕하세요. 오늘은 STM32C031-DK와 DOT MATRIX를 이용해보겠습니다. 사용 할 DOT MATRIX는 8*8입니다. *DOT MATRIX 관련내용 모듈 회로도는 아래와 같습니다. LED가 8*8=64개있고 이 LED를 제어하기위해서 MAX7219가 연결해있습니다. MAX7219은 SPI통신을 합니다. DIN은 MOSI이고 MISO는 사용하지않습니다. 회로도출처: Interfacing MAX7219 LED Dot Matrix Display with Arduino (simple-circuit.com) 타이밍도) MSB방식이고 CHOL은 LOW이고 CPHA은 1 Edge입니다 데이터포맷) 16Bits이므로 2바이트를 보내면 됩니다. 처음에는 주소를 보내고 그 다음에 데이터를 보냅니다 클럭속도) 1..

STM32/STM32C031-DK 2024.02.19

STM32H7-GFX보드 사용하기 1편(기본프로젝트세팅,LED,UART)

안녕하세요. 오늘은 STM32H7-GFX 보드를 사용해 보겠습니다. 해당 보드는 BARAM 님이 개발하신 거고 BARAM 님의 강좌를 참고해서 제가 기억하고 싶은 내용을 기록할 예정입니다. 최종 목표는 LCD,터치센서,마이크,스피커 사용방법을 익히고 이러한 기능을 사용해서 리듬게임을 만드는 것입니다. https://blog.naver.com/chcbaram/223323827781 https://smartstore.naver.com/higenis/products/9107440057 위의 사이트에서 해당 제품을 구매했고 전원만 넣었을 때 사진입니다. 기본 FW가 들어가 있어서 LCD 동작 여부를 확인할 수 있었습니다. 보드에 ST-LINK가 포함되어 있지 않으므로 ST-LINK는 따로 준비를 해야 합니다. ..

STM32/STM32H7-GFX 2024.02.17

C언어로 배열에있는 값을 대문자or소문자로 치환하기

안녕하세요. 오늘은 배열에 있는 값을 대문자or소문자로 치환해보는 함수를 만들어보겠습니다 먼저 알아야 할 내용은 아스키코드에있는 a~z, A~Z값입니다 a~z는 97~122이고 A~Z는 65~98입니다 각 문자의 차이는 32가 납니다 그래서 A에 32를 더하면 97이고 a입니다 이러한 방식으로 함수를 만들면 됩니다 #include void stringToUpper(char *str) { char s; int i; for(i=0; i='a')&&(s

STM32 DFU모드 장치관리자에서 안잡히는 증상

안녕하세요. 오늘은 STM32에서 DFU모드를 테스트할때 발생한 에러에 대해 알아보겠습니다. DFU 모드에 진입하게 해놓고 장치 관리자를 봤더니 드라이버가 잡히지 않은 것처럼 나왔습니다. 참고로 드라이버는 STM32CubeProgrammer를 설치할때 자동으로 설치해줍니다. 그 이유는 VID를 STM사로 안해놔서 그랬던거같습니다. VID를 1155로 해놓으면 잘 됩니다. VID는 아래의사이트에서 확인가능합니다 https://usb.org/sites/default/files/vendor_ids051920_0.pdf

STM32/간단한팁 2024.01.21

STM32CubeIDE, MCUXpress등 폴더를 빌드에서 제외시키기

이클립스기반으로 만들어진 IDE(STM32CubeIDE,MCUXpress등)에서 빌드할때 폴더를 제외시키는 방법을 알아보겟습니다 MCUXpress에서 폴더를 빌드에서 제외시키는것을 해보겠습니다 usb폴더를 빌드에서 제외시키겠습니다 usb폴더 오른쪽클릭 => Resource Configurations 클릭 => Exclude from Build..클릭 Debug/Release 옵션중에 제외하고싶을때를 선택하고 OK를 클릭합니다 기존에는 usb폴더를 소스폴더로 인식했는데, 설정하고나서는 일반폴더로 인식해서 usb폴더를 빌드하지않습니다 폴더UI는 IDE마다 약간씩 차이가 있는 것 같습니다. STM32CubeIDE에서 빌드에서 제외했을 때 폴더UI입니다 STM32CubeIDE는 빌드에서 제외할 때 폴더가 흐려지..

STM32/간단한팁 2024.01.13

STM32 PWM TIMER 알아보기

안녕하세요. 오늘은 STM32 PWM TIMER에 대해 알아보겠습니다. PWM은 Pulse width modulation의 줄임말이고 디지털신호를 아날로그신호를 사용하는걸 의미합니다. DC모터의 제어나 LED 밝기조절할때 사용합니다. 이 글에서는 PWM을 사용하여 주파수값에 따라서 LED밝기가 어떻게 변하는지 알아보겠습니다 먼저 PWM을 사용하기위해 클럭을 설정해줍니다 데이터시트 RCC쪽에서 어떤 타이머가 어떤 버스를 사용하는지 확인 가능합니다 이 글에서는 TIM1,2를 사용할거고 사용할 클럭은 48MHz로 설정했습니다 48MHz를 분주하기위해서 prescale이라는걸 사용합니다. Period를 설정해기위해 auto-reload register를 설정합니다. 100을 설정했다고하면 CNT값이 0->1->..

STM32/이론 2023.12.31

아두이노 레오나르도 VID,PID 변경하기

안녕하세요. 오늘은 아두이노 레오나르도보드 VID,PID를 변경해보겠습니다. VID : Vendor IDentifier PID : Product IDentifier VID는 제조사ID이고, PID는 제품ID입니다. 예를들어 아두이노의 VID는 0x2341이고, 로지텍의 VID는 0x046D입니다. 아두이노IDE에서는 보드의 설정을 변경할수있는 파일이 있습니다. C:\Users\sw\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6 (경로는 아두이노IDE 버전에따라 다를 수 있습니다) 위의 경로에서 boards.txt파일을 열면 아래의 사진에 나와있는 항목들이 보입니다 boards.txt 파일에서 보면 아래와같은 항목이 있습니다. leonardo.n..

아두이노/이론 2023.12.09

아두이노를 이용해서 릴레이제어하기

안녕하세요. 오늘은 아두이노 나노를 이용해서 릴레이를 제어해보겠습니다. 윈도우프로그램은 C#으로 만들었고 MCU는 아두이노 나노를 사용합니다. 둘이 통신은 UART로 합니다. 사용하는 릴레이는 무접점릴레이입니다. (PDDO-105N) *회로구성 아두이노나노, 버튼, 릴레이, OLED(SSD1306)로 구성했습니다. OLED는 MCU에 저장해있는 데이터, 동작상태등을 보여줍니다. ON, OFF, CYCLE데이터를 EEPROM에 저장해서 PC프로그램과 통신을 안해도 정해둔 데이터를 저장해서 전원만 넣으면 버튼으로 START할수있게 만들었습니다. 버튼 : D2 릴레이 : D3 OLED SCL : A5 OLED SDA : A4 *프로그램동작 UART통신을 위한 연결UI가 존재하고, 컨트롤창이 존재합니다. 프로그..

아두이노/활용 2023.11.26