목록2020/10 (9)
Brise
모터 드라이버 스텝모터 드라이버 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인터페이스..
BeagleBone Black 메타 데이터의 끝으로 건너뛰기 Robert Nelson님이 작성, 6월 05, 2020에 최종 변경메타 데이터의 시작으로 이동 This is a page about TI's Cortex-A8 based; BeagleBone Black. Availability Basic Requirements ARM Cross Compiler: GCC Bootloader: U-Boot Linux Kernel Mainline TI BSP Root File System Debian 10 Ubuntu 20.04 LTS Setup microSD card Backup Bootloader Install Kernel and Root File System Copy Root File System Se..
> STM32CubeMX 프로젝트에서 LwIP를 이용한 이더넷은 여러 단계의 초기화 과정을 거친다. 위 그림과 같이 5가지의 과정으로 나눌 수 있다. 먼저 위의 4가지 부분은 CubeMX에서 생성하는 자동생성 코드이며 HAL_ETH_MspInit함수와 HAL_ETH_Init, 두 함수는 configurable하다. HAL_ETH_MspInit함수는 ETH 주변장치를 사용하기 위한 핀 설정을 초기화하며, HAL_ETH_Init은 MII/RMII 인터페이스 선택 및 PHY 설정을 초기화한다. 여기서 주의할 점 중 하나는 STM32의 MAC설정의 경우 ETH_MACDMAConfig에서 수행하는데 해당 부분에 대한 설정은 비교적 자유롭지 않다는 점이다. 예를 들어, MACDMA 설정의 멀티캐스트 필터링의 기본값..
> 간단한 UDP 수신 플로우는 아래와 같다. 실제로 코드를 보면 Ethernet Interrupt --> Ethernetif Thread(Realtime thread) --> low_level_input --> netif->input --> [PROTOCOL]->input 과 같은 형태로 실행된다. Tx의 경우 상위 udp_send와 같은 레이어에서 pbuf_alloc을 호출한 뒤 각 레이어에서 헤더를 추가해가며 패킷을 전송하며, 최종적으로 netif->output에서 MAC peripheral을 통하여 전송을 수행한다. (ETH_TransmitFrame()) > LwIP의 성능에 영향을 미치는 요소는 크게 기능활성화, 통계, 메모리 정도이나, 나머지의 경우 꼭 필요한 기능만 활성화 시키기 때문에 조절..
(OSI 구조와 유사하게)LwIP 구조는 크게 4가지 부분으로 나눌 수 있다. OSI 7계층의 Physical 레이어와 Data Link 레이어와 매핑되는 Network Interface 레이어(PPPoE, PPPoS와 같은 기능을 담당하는 PPP모듈이 해당 레이어에 속한다고 볼 수 있다.) OSI 7계층의 Network레이어와 매핑되어 라우팅과 네트워크 관리를 수행하는 Internet Layer 전송 및 세션레이어와 매핑되어 연결을 수행하는 Transport 레이어 그 위에 유저 응용에 따른 프로토콜이 있는 Application 레이어가 있다. LwIP에서는 각 레이어 레벨에서 제공되어야 하는 프로토콜의 종류를 모듈별로 나누어 놓았다. 파일 매핑은 아래와 같이 수행된다. > 네트워크 인터페이스는 실제 ..
Cortex-M7 프로세서 기반의 MCU인 STM32F7 프로세서에는 I/D Cache(데이터, 명령어) 캐시가 포함되어 있다. 일반적으로 MCU 레벨의 응용에서는 별도의 명령어를 자체 생성하지는 않기 때문에 명령어 캐시에 대한 일관성(Coherency)을 맞추기 위한 노력은 필요하지 않지만, 데이터에 대해서는 CPU Core 뿐만 아니라 DMA 코어 또한 데이터에 접근할 수 있기 때문에 CPU가 인식하지 못하는 상태에서 데이터가 변경되는 경우 데이터 일관성에 대하여 고려하여야 한다. 이를 위하여 사용자가 데이터 일관성을 맞출 수 있는 방법은 크게 두 가지 방법이 있다. 첫번째, MPU를 이용하는 방법이 있다. MPU를 이용하면 접근하는 메모리 영역에 대하여(실제로는 ARM MCU가 메모리맵 I/O 방식..