목록All (635)
Brise
// 1. 확장자 // C언어 : .c // C++ : .cc .cxx .cpp // 2. C언어를 지원하지만 약간 다른 경우도 있다 // 1_hello.cpp #include int main() { printf("Hello world!\n"); }
딘레일(DIN rail)은 최초 독일 공업 규격위원회에서 제정된 표준 거치 규격(DIN 46277)으로 산업계에서 자동화기기, 차단기 등을 거치하기 위하여 널리 사용됩니다. DIN rail에서 정의하는 규격은 여러가지가 있으나, 가장 많이 사용되는 규격은 35mm 너비의 규격입니다. 해당 규격은 IEC/EN 60715로 정의되어 있으며 자세한 내용은 아래와 같습니다. DIN rail을 사용하면 기기의 설치와 해체가 간편하며 기기를 견고하게 고정할 수 있습니다. DIN rail 취부를 지원하지 않는 기기라도 장착할 수 있도록 DIN rail 어댑터 또한 존재합니다. DK-35 또한 인터넷 상에는 3D 프린터를 이용하여 어댑터를 출력할 수도 있습니다. www.thingiverse.com/thing:11107..
ST-LINK V3은 모듈형으로 조립 가능한 디버거로 절연 가능한 모듈을 별도로 판매한다. 구성 모듈과 오더링 명은 아래와 같다. 모듈을 구성하는 방법은 크게 2가지가 있는데 하나는 본체의 1.27mm IDC케이블만을 사용하는 방법이고 다른 하나는 확장 모듈을 사용하는 방법이다. 절연 모듈을 구성하기 위해서는 아래와 같이 구성하는 것이 권장된다. 절연 모듈을 추가로 조립 시에 점퍼 설정이 달라지는데 아래와 같이 점퍼를 변경하여야 한다. 메인 모듈의 JP1 제거 절연 모듈의 JP2 연결 추가로 전압 역 삽입 시 브리징 회로가 소손되는 경우를 방지하기 위해서는 확장보드(MB1440)의 5V 전원 점퍼를 제거해 주는 것이 좋다.
일반적으로 HW에서 지원하는 엔코더 카운터는 [0 max] 값의 범위에서 작동한다. 모터를 단방향으로 제어할 때에는 새 값에서 이전 값을 빼는 방식으로(만약 현재 값이 이전값보다 작다면 max만큼을 더하고..) 차이를 구할 수 있다. 이 때 결과값은 [0 max-1]이 된다. 하지만, 양방향으로 제어할 때에는 결과값이 [-max/2 max/2]범위로 구해져야 하며, 이 때 타이머가 오버플로우되거나 언더플로우 되는 것에 대한 대응 코드가 필요하다. 해당 코드를 만들기 위한 참고 코드는 아래와 같다. int32_t NumOp_GetDiff(uint32_t curr, uint32_t prev, uint32_t max){ int32_t diff = 0; const uint32_t half_max = max/2;..
임베디드 코드 프로젝트를 VScode로 열어서 볼 때 uint32_t 타입 오류가 표시되어 꽤나 거슬릴 때가 있다. 특히, 해당 타입 때문에 아래 있는 다른 구문들이 정상적으로 읽어지지 않을 때가 있는데, 해당 이슈는 사실 오류가 아니라, VScode가 특정 컴파일러에 기반하지 않는 시스템이기에 생기는 문제이다. cmsis에서는 여러 컴파일러에 맞추어 여러 매크로를 선언하고 있는데, 어떠한 컴파일러도 감지되지 않았을 때 오류를 선언하기 때문에 uint32_t 타입이 에러로 표시되는 듯 하다. 해당 이슈를 해결하기 위해서는 아래와 같은 방식으로 해결할 수 있다. - VSCode에서 Ctrl+Shift+P 를 입력한 뒤 C/C++: Edit Configuration(JSON)을 클릭 - c_cpp_prope..
모터 드라이버 스텝모터 드라이버 DRV8825 HC지원 서보모터 드라이버 축 구동 스텝모터 L60 8K L48 5K 서보모터 축 이송 볼 리테이너(볼 스크류) TM 스크류 축 가이드 LM가이드 15호 청나라표(?) 15 HW형 일본 THK, 중극 HIWIN, 대만 CRC 8mm 연마봉 GT2 벨트 가공 베드 알루미늄 프로파일 20T 압출 T홈베드 구동설정 아크릴 피드 125 절입 1.2
VS code는 마이크로소프트에서 개발한 무료 에디팅 환경이다. 내부적으로 Javascript를 사용하며 속도도 빠르며 많을 플러그인을 갖추고 있어 사용하기 편리하다. https://code.visualstudio.com/ 이전버전의 우분투에서는 sudo apt-get install code와 같은 명령으로 코드를 설치할 수 있었는데 20.04에서는 별도의 과정을 거쳐야 하는 듯 하다. 간편하게 홈페이지에서 .deb 파일을 다운로드 받아 설치하는 방법이 있지만, 추후 업데이트를 위하여 레포지토리를 추가하여 설치해보도록 하자 설치하는 방법은 아래와 같다. sudo apt-get update sudo apt-get install -y curl apt-transport-https cd curl -sSL htt..
STM32 MCU의 일부 제품군은 이더넷 통신이 가능한 Peripheral을 가지고 있다. Ethernet 주변장치는 OSI 7계층에서 Data link Layer 부분의 역할을 수행한다. Ethernet 블록 다이어그램을 보면 위와 같은 구조로 되어 있는 것을 알 수 있으며, 크게 좌측의 DMA블록, 중간의 MAC블록, 우측의 PHY블록 3가지 부분으로 이루어져 있음을 알 수 있다. 이더넷의 경우 고속으로 동작하기 때문에 CPU가 데이터를 받는 동작을 수행하면 데이터를 송수신하면서 처리하기 어려워 송수신 부분은 DMA로 처리하는 것으로 보인다. STM32 MCU는 PHY인터페이스로 MII와 RMII 통신을 지원하며, PHY 설정을 위해서 MDC/MDIO 인터페이스를 지원한다. 일반적으로 MII인터페이스..