임베디드.일렉트로닉스 ( 670 ) Microsoft OS 2.0 Descriptors Specification.-USB 개요 표준 USB 디스크립터로는 윈도우운영체제에서는 핸들링 하지 못하는 것에 대하여 MS사 자체 정의 디스크립터. 스펙문서 다운 주소 : https://msdn.microsoft.com/de-de/library/windows/hardware/dn385747.aspx ///764. 2016. 6. 5. keil compiler. __attribute__((at(address))) variable attribute. 주로 내부플래시 영역에 변수 할당하기 위함. __attribute__((at(address))) 저장 주소 지정가능한 변수 선언 구문. - 주로 내부플래시 영역을 변수의 저장공간으로 지정할 때 사용되는 편리한 구문. 사용예. int myV1 __attribute__((at(0x10000))) = 10; // myV1 을 주소 0x10000 에 할당하고 초기화 10을 한것. int myV2[5] __attribute__((at(0x10000))) = {0,1,2,3,4}; // 배열 사이즈 5인 myV2 를 0x10000 에 할당하고 초기화 한것. keil 제공 설명 사이트 : http://www.keil.com/support/man/docs/armcc/armcc_chr1359124981140.htm 주의사항 : GCC - GCC 에서는 Keil 에.. 2016. 4. 14. STM32. USB HID 구현. STM32Cube + Keil 기반. 주소: https://www.youtube.com/watch?v=KwRQxGUrbN0&nohtml5=False STM32Cube + EWARM 기반. 주소: https://www.youtube.com/watch?v=xufZyQf4O7Y 2023.07.15 추가. 위 영상에서 STM32 에서 USB 호스트로 데이터 송신하는 부분 상세 -영상 : 3:46 에 보면 함수 USBD_CUSTOM_HID_SendReport 호출하여 데이터 송신함. 연관 상위 정리 http://igotit.tistory.com/244 의 STM32 STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리. STM32. nRF52. ESP32. EFM8. EFM32. PSo.. 2016. 4. 14. STM32. DfuSe Demo 사용법. 개요 STM32 의 USB DFU 유틸리티 DfuSe 에서 제공되는 DfuSe Demo 프로그램 사용법 정리. DfuSe V3.0.4 기준. 사전지식. 1. DfuSe 개요및 설치. http://igotit.tistory.com/464 DfuSe Demo 사용법. DfuSe Demo 프로그램 실행. DfuSe 3.0.4 설치하면 시작 프로그램에 등록된 것 중 DfuSeDemo 클릭하여 실행. DfuSe Demo 실행화면. - 프로그램 실행 첫화면 , 아래 파박에는 STM32칩의 DFU 모드일때만 자동으로 보인다. 관련 : STM32 가 DFU 모드상태에서 PC에서 USB 인식 상태 -> http://igotit.tistory.com/645 Upload Action 사용법. 기능 : upload 란 타겟칩.. 2016. 4. 12. STM32. DfuSe 3.0.4 Bug 해결된 DfuFileMgr.exe, STDFUFiles.dll DfuSe 3.0.4 의 "DFU file manager" 버그 해결. DfuSe 3.0.4 의 DFU file manager는 2개의 버그가 있으며, 오류있는 코드 수정하여 정상화된 실행파일 만들었음. - 제조사 STM에서 버그 있는 상태에서 1년이 지나도록 정상화된 버전을 배포 하질 않아서, 직접 코드 수정함. - 개발툴 : Visual C++ 2015. 타겟플랫폼 : x86 (32bit). 32비트 응용프로그램은 32비트/64비트 환경에서 모두 정상실행됨. 해결된 버그. 1. hex file 열지 못하는 문제 해결되었음. 2. dfu 파일 저장시 사용자가 지정한 폴더에 정상적으로 저장되게 하였음. 상기 2개 문제외에도 DfuSe 유틸리티 들이 정상작동하지 못하는 심각한 오류들이 많은데 위 2개의 버.. 2016. 4. 12. STM32. SPI DMA 사용법. 개요 STM32 (STM32L4x6) 에서 SPI 활용시 DMA 기반으로 통신처리하는 방법. 전체 구현흐름. 1. STM32CubeMX 의 SPI 설정에서 DMA 사용가능하게 설정. 2. 상기1에서 프로젝트 생성하여 (본 예에서는 KEIL MDK-ARM 용 프로젝트 생성함.) 3. 상기 2의 펌웨어 코드에서 SPI DMA 읽기/쓰기 처리 코드 추가. 상세 STM32CubeMX 에서 SPI DMA 설정. SPI 설정창의 탭 "DMA Settings" 에서 RX 용 TX 용 2개모두 등록한다. - 2개 모두 등록함이 중요하다. 실제 코드에서 TX는 사용하지 않고 RX만 사용하는 경우에도 설정에서 2개 모두 등록해야 RX 만 사용하는 경우에도 정상 작동한다. 위와 같이 DMA를 선택하게 되면 DMA1 Chan.. 2016. 3. 29. STM32. L4x6 SPI 개요. 개요. STM32L4x6 계열 MCU SPI 주요특징. STM32L4x6 의 SPI Block Diagram. - FIFO 내장 : RxFIFO, TxFIFO 각각 32비트(4바이트) 용량. DMA 가능.- data size : 4bit ~ 16bit 선택가능. - SPI Motorola 모드(통상사용하는것), TI 모드 선택 가능. - Hardware CRC 선택가능 ; Tx mode에서 마지막 바이트에 CRC값 기록, 수신시 자동 CRC체크 가능.- 그외 일반 SPI 특성과 동일. from : pdf. STM32L4x6 Reference Manual 페이지 1283 부터. 상세 - SPI 데이터 송수신 RxFIFO, TxFIFO 1. 모든 SPI data 는 내장된 FIFO 를 경유 하게 되어있다. .. 2016. 3. 23. STM32. 리셋핀 NRST 풀업저항. 개요 STM32 리셋 핀 NRST 특성과 핀 제어 방법. STM32L, STM32F 의 경우, 아래와 같이 소자 내부에 풀업저항 (40k옴) 고정적으로 연결된 상태이다. 1. 설계하는 회로에서 STM32 리셋 하지 않는 경우엔 NRST 핀에 외부 풀업저항 달 필요없고, 개방 시켜둬도 됨. 2. 소자외부에서 별도 스위치를 이용하여 리셋하려는 경우엔 위 회로처럼 처리. 3. 타 MCU의 핀 출력을 이용하여 STM32 를 리셋하려는 경우는 타 MCU 측의 핀 상태를 open-drain 으로 한다. STM32의 NRST 핀에 인가되는 전압에 따른 STM32측의 로직 H, L 기준전압. Low : 0.3 x Vddio 보다 작은 전압이 인가된 경우. High : 0.7 x Vddio 보다 큰 전압이 인가된 경우... 2016. 3. 17. SILabs. Simplicity Studio USB library EndPoint 설정 관련 버그 및 해결책. 개요 - 오류증상. 실리콘 랩사의 Simplicity Studio(버전3, 2016년 3월 15일 시점 최신버전) 의 Configurator 의 USB Library 로 생성된 코드 설정이 정확하지 않은 버그가 있고 이를 해결하는법 정리. 오류증상. 확인된 오류 상황. 타겟칩 : EFM8 UB1 으로 하여 Simplicity Studio 의 Configurator에서 제공되는 USB 라이브러리를 활성화 하고 endpoint 를 사용함으로 설정하였음에도 자동생성된 펌웨어 코드에서는 해당 endpoint 가 비활성화되어있는 오류가 있다. 본 오류는 타겟칩 무관하게 즉, EFM32에서 USB Library 사용시에도 발생 한다. 오류상세. 아래처럼 Simplicity Studio 의 Configurator 에.. 2016. 3. 15. EFM8, C8051F계열 플래시 데이터 기록/읽기. 개요 SIlabs 의 EFM8, C8051F 시리즈 펌웨어에서 플래시 메모리에 데이터 기록, 읽기 방법. 아래 관련 기본재료 중에서는 포럼글의 3번의 구현이 가장 간단함. 기본 재료. SiLabs 제공 Application Notes. Flash Securities User's GuideAN120 Writing to Flash from FirmwareAN201 AN201SW EEPROM Emulation for Flash MicrocontrollersAN568 AN568SW EEPROM Emulation with Wear-Leveling for 8-Bit Flash MCUsAN798AN798SW SiLabs 포럼글 :1. http://community.silabs.com/t5/8-bit-MCU/EF.. 2016. 3. 12. EFM8UB1 Chip ID를 USB 시리얼로 설정하기. 1. EFM8UB1 의 Chip ID 확보하기 : http://igotit.tistory.com/706 . 총 16바이트임. 2. 상기1에서 확보된 Chip ID 를 USB 시리얼로 설정하는 코드. SILabs 포럼 : http://community.silabs.com/t5/8-bit-MCU/EFM8-UB1-How-can-I-assign-the-USB-Descriptor-Serial-Number-as/m-p/158712/highlight/true#M43820 상기2의 코드를 이용하는 경우 Chip ID의 바이너리 16바이트를 그대로 기록하기 때문에 이를 호스트측에서 문자로 표현하게 되면 아래예 처럼 보이게 된다. 8&33AC858D&0&1 호스트측에서 문자열로 표현하지 말든지 혹은 칩의 펌웨어에서 숫자를.. 2016. 3. 12. EFM8UB1 Unique ID (Chip ID) EFM8 시리즈마다 Chip ID규격이 조금씩 다름. EFM8SB1 시리즈에서는 http://igotit.tistory.com/446 에서 처럼 32비트 Chip ID가 제공되는 반면, EFM8UB1 시리즈인 경우엔 128비트 (16 바이트) 크기의 Chip ID가 제공된다. Unique Identifier A128-bit universally unique identifier (UUID) is pre-programmed into all devices. The UUID resides in the read-only area of flash memory which cannot be erased or written in the end application. The UUID can be read by firmwa.. 2016. 3. 12. STM32. I2C 사용하기. 개요 STM32 에서 I2C 사용하기 위하여 CubeMX에서의 설정 . I2C 활용하는 전체순서. 1. CubeMX에서 I2C사용하도록 설정하고, 이를 프로젝트 (예 : KEIL)에 반영하고, 2. 프로젝트(예 : KEIL )에서 I2C 관련 함수 호출. 연관. I2C 기본 지식 : http://igotit.tistory.com/328 CubeMX에서 I2C 사용 설정 CubeMX 프로그램에서 Pinout탭에서 I2C1 에서 I2C 선택한다(아래 붉박), 그럼 I2C SDA, SCL 핀이 자동으로 지정된다(아래 파박). I2C 설정하기. 탭 "Configuration" 에서 I2C1 클릭하여, 탭 "Parameter Settings" 에서 I2C통신속도 선택하여 아래 붉박은 Standard Mode 를 .. 2016. 3. 10. ALTIUM (알티움) 비아 써말릴리프 없애기. PCB 라우팅 시 copper pour 에 비아 내는 경우 기본 옵션은 thermal relief (아래 그림 검정색 처럼. ) 를 형성하는 것으로 되어있다. 릴리프 없애기 위한 설정. Altium 메뉴 Design -> Rules.. 클릭하여 아래 설정창을 보면 기본 설정이 relief 형성하는 것으로 되어있다. 콤보박스에서 아래 처럼 Direct Connect 선택한다. 그럼 비아에 있던 relief 처리 되지 않은 것으로 만들어진다. 본글 포함된 상위 정리 글. 1. 알티움 활용법 정리 : https://igotit.tistory.com/1988 첫글등록 : 2016년 3월 6일.최종수정 : 본글단축주소 : https://igotit.tistory.com/687 2016. 3. 6. STM32L476 보드. D1P123R1 품번 : D1P123R1 외형. 치수. 핀맵. P1. 핀번호 기능할당.(STM32L4) 핀번호 기능할당. (STM32L4) 1 - 2 PC13 3 PB4 GPIO 4 PC12 SPI3 MOSI 5 PB0 GPIO 6 PC11 SPI3 MISO 7 PB1 GPIO 8 PC10 SPI3 SCK 9 PB2 GPIO 10 PA9 USART1 TX 11 - 12 PA10 USART1 RX 13 - 14 - 15 GND 16 GND 17 USB DM 18 USB DP 19 USB VBUS(+5V) 20 - P2. 핀번호 기능할당. (STM32L4) 핀번호 기능할당. (STM32L4) 1 PA5 SPI1 SCK 2 PC7 GPIO:SPICS7 3 PA6 SPI1 MISO 4 PA7 SPI1 MOSI 5 PB5 GPI.. 2016. 3. 5. ALTIUM (알티움). PCB 3D step,stp 파일 출력. ALTIUM에서 작업한 PCB 를 3D step 파일 출력하기. 아래 그림. 메뉴 File-> Save As.. 클릭. Save As.. 창에서 파일형식을 step 파일로 선택하여 저장하면 끝. step 파일을 읽어서 표현가능한 툴에서 열수 있다. 통상 기구설계 작업시 PCB 정보를 정확히 반영하여 설계가능하다. 아래는 무료 3D 캐드툴인 DesignSpark Mechanical( http:igotit.tistory.com/514 ) 에서 PCB 스텝 파일 열어본것. 왼쪽 구조부분을 보면 모든 부품들이 개별적인 오브젝트로 만들어져 있음을 알 수 있다. 본글 포함된 상위 정리 글. 1. 알티움 활용법 정리 : https://igotit.tistory.com/1988 첫글등록 : 2016년 2월 29일.최종.. 2016. 2. 29. ALTIUM (알티움). PCB두께(core, 동박두께) 설정하는법. PCB 두께(코어, 동박두께) 지정하는법. ALTIUM 메뉴 -> Design -> Layer Stack Manager 클릭 (아래 그림) Layer Stack Manager 창에서 그림에서 보이는 "Core " 클릭하여 실제 제작될 PCB의 두께지정과 Top Layer , Bottom Layer 클릭하여 동박의 두께 지정한다. 본글 포함된 상위 정리 글. 1. 알티움 활용법 정리 : https://igotit.tistory.com/1988 첫글등록 : 2016년 2월 28일.최종수정 : 본글단축주소 : https://igotit.tistory.com/682 2016. 2. 28. ALTIUM (알티움). Board Cutout 방법. - PCB에 임의모양 구멍내기. Board Cutout 알티움에서 PCB 작업하면서 임의 모양 구멍 내는법. 예. 위 PCB 오른쪽 의 중간지점에 아래 그림처럼 컷아웃 처리하려는 것. 방법. 1. 메뉴 Place->Solid Region 클릭하여 보드 상에 원하는 위치에서 마우스로 영역을 그린다. 2. 그려진 Region 을 우마우스 클릭하여, Properties.. 클릭하여 뜬 창에서 "Board Cutout" 체크하고 OK 버튼 클릭한다. 해당 region 컷아웃 처리된다. 위 2D를 3D로 본것. 본글 포함된 상위 정리 글. 1. 알티움 활용법 정리 : https://igotit.tistory.com/1988 첫글등록 : 2016년 2월 28일.최종수정 : 본글단축주소 : https://igotit.tistory.com/681 2016. 2. 28. 이전 1 ··· 24 25 26 27 28 29 30 ··· 38 다음