임베디드.일렉트로닉스/nRF52 ( 84 ) nRF52 . Programmer . 경고 Part of the HEX regions are out of the device memory size 경고 내용 - Programmer v3.0.4 에서 부트로더 펌웨어(아래 그림 푸른박스) 파일 읽어들이면 붉은 박스 처럼 경고표시 보인다. 칩의 메모리 사이즈를 벗어났다는 경고 표시이다. 조치 필요없음 - 이 경고는 뭔가 조치를 해야 하는건 아니고, 무시하고 기록 진행하면된다. 칩에 기록된 부트로더 정상 작동한다. - bootloader 가 기록되는 플래시 메모리 영역이 일반 application 기록 영역과 달라서 프로그래머에서 이런 경고 표시 하는것 같은데,, 프로그래머 소프트웨어의 완성도 부족이다. 포럼에서의 관련 내용을 봐도 경고 무시하고 그냥 기록하면 된다고 함. Part of the HEX regions are out of the device memory size...from Programme.. 2023. 1. 20. nRF52 . SES . 빌드 오류 해결 .text .rodata is larger than specified size. 상황. nRF5 SDK 버전 : nRF5_SDK_17.1.0_ddde560 SES 버전 : 7.10 빌드 오류 내용. - nRF52 SDK 예제 프로젝트 빌드 하다보면 아래와 같은 오류 나는 경우 종종 있다. 오류 원인 프로젝트 구성 파일중 flash_placement.xml 에서 .text 와 .rodata 의 사이즈 제한 되어있기때문. 해결 방법 파일 flash_placement.xml 파일을 편집기로 열어서 .text 와 .rodata 의 사이즈 제한 한것 삭제 ( size="0x04" 부분 삭제 )한 이후 SES 재실행하여 리빌드하면 정상 빌드됨. 연관 STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리. STM32. nRF52. ESP32. EFM8. EFM32. P.. 2023. 1. 19. nRF52. MBR, bootloader , SoftDevice , Application , 플래시 메모리 배치 메모리에서 주소가 고정되어있는 영역은 MBR 의 시작, 끝주소및 SoftDevice 의 시작주소( MBR 의 끝 주소와 동일함)뿐이다. 그 외에 SodftDevice 끝주소, Application 시작, 끝 주소, Bootloader 시작주소는 가변 가능하며, 즉 개발자가 해당 주소를 사용자 정의해야 한다. - MBR ( Master Boot Record )은 필수 기록되어있어야 함. - SoftDevice 활용하는 경우에는 SoftDevice 내에 MBR 이 기본 포함되어있기 때문에 SoftDevice 기록시 MBR 도 같이 기록됨. - Bootloader 는 필수는 아니며 필요시 구현하여 기록. 위와 같은 메모리 구조에서 사용자 데이터를 플래시에 기록하려면 어디가 좋은가? Application 의 끝.. 2021. 3. 22. nRF52840. USB CDC (com 포트) 구현. 개요- 타겟보드 nRF52840 동글 에서 USB CDC (호스트에서 com 포트로 인식되는것) 구현 방법 정리. - nRF5 SDK 에서 예제로 제공되는 /example/peripheral/usb_cdc_acm (프로젝트 설명문) 의 소스코드를 참조하여 자신의 프로젝트에서 USB CDC 구현하는 방법 세부적인 과정을 보이고 최종 정상 작동하는 프로젝트 소스 다운로드 가능. - 예제 프로그램은 usb 구현위한 핵심정보를 제공함에는 부족함이 있다. 노르딕사의 예제들의 한심한 특징 : 단일 기능 위주를 먼저 제시하는 방식이 학습자에게는 도움이 되는데 이런 저런 기능을 덕지 덕지 붙여둔 예제들이 많다. 따라서 예제만 보면 해당 특정기능의 핵심 개념이해에 별 도움되지는 않는다. 예제에서 사용되고 있는 라이브러리.. 2020. 11. 18. nRF52. BLE Central Multilink. Nordic UART Service(NUS) Client 구현. 개요멀티링크 구현 시작점 . nRF5 SDK( https://igotit.tistory.com/1663 ) 설치하면 예제코드 중에 \examples\ble_central\ble_app_multilink_central 에 멀티링크 기본 골격 소스 코드가 제공되고 있으며, 예제에서의 서비스 는 LED 제어하는 예로 제공되고 있다. 위 예제 코드는 멀리링크 코드 작성위한 골격이며 BLE 서비스는 사용자가 필요에 따라 다른것으로 구현가능하다. 아래 영상의 동작 시험은 NUS(Nordic UART Service) 을 멀티 링크로 구현. mult ilink NUS 구현의 직접적인 코드예제는 제공되지 않으나, 제조사의 개발자 포럼에서 관련 정보 많이 보인다. 이들 정보 참조하여 구현작업 진행. https://devz.. 2019. 11. 10. nRF52. SPI nRF52 SPI Features SPI 수량 : nRF52840 의 경우 SPI master 로 사용시 4개, spi slave 로 사용시 3개. nRF52840 SPI 최대 통신 속도 및 SPI 클럭 SPIM3 최대통신속도 32Mbps . 주의 : 32Mbps 는 SPIM3 에서만 지원되는 사양. 최대 통신 속도는 SPI 클럭으로 결정되는데 , 데이트 시트 전기사양 부분을 보면 SPIM3을 비롯한 모든 nRF52840 의 SPI 클럭 최대 주파수는 8MHz 로 명시되어있는데, SPI 클럭 최대 8MHz 라면 통신 속도 32Mbps 는 불가능한데 32Mbps 가능하다고 표현하고 있음. from : http://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.0.pdf 의.. 2019. 10. 25. nRF5 SDK 기반 SES , KEIL 멀티 프로젝트 폴더 구축 및 프로젝트 템플릿3 개요 NORDIC 사에서 배포하는 nRF5 SDK 의 폴더 구성은 사용자(개발자) 입장에서는 지속 관리 하기 좋은 구조 아니다. 본 글에서는 nRF5 SDK 기반으로 코드 구현 및 프로젝트 관리 용이한 프로젝트 작업 폴더 구축 방법 정리. 참고 : 본 템플릿3과 이전 작업된 템플릿2 차이점 - 이전에 제작된 프로젝트 템플릿2의 구성은 1개의 프로젝트 폴더마다 nRF5 SDK 폴더를 모두 보유하고 있는 형식이었기에 프로젝트가 많이 만들어진 경우 중복된 파일들이 누적되게 된다. 이번 템플릿3은 모든 프로젝트에서 동일한 1개의 nRF5 SDK 활용하는 방식이므로 프로젝트수가 많아져도 단일 SDK 파일들을 공유하여 사용하므로 용량 증가 없이 컴팩트한 관리 가능. - 템플릿3 구조의 장점 : 프로젝트에서 nRF5.. 2019. 10. 24. nRF5 SDK 16.0.0 버그들 . KEIL DeviceFamilyPack 등 nRF5 SDK 버전 16.0.0 의 KEIL 예제 프로젝트에서 Device Family Pack 오류 https://devzone.nordicsemi.com/f/nordic-q-a/53503/nordicsemiconductor-nrf_devicefamilypack-8-27-0 NordicSemiconductor.nRF_DeviceFamilyPack.8.27.0 - Nordic DevZone devzone.nordicsemi.com 오류 요점. - SDK 16.0.0 에서 배포된 KEIL 예제 들이 DeviceFamilyPack 8.27.0 사용하는 것으로 설정되어있으나 8.27.0 에는 버그가 있어 8.29.0 이 사용되어야 하나 , 현재(2019년 10월 24일) 시점엔 8.29.0 배포되지 않고 있.. 2019. 10. 24. nRF52840 project template 2. nRF5 SDK 15.2.0, SEGGER Embedded Studio 2019년 10월 24일 수정. 더 완성도 높은 최종 프로젝트 폴더 재구성 한 형식3 이용할것. 형식 3 상세보기 -> https://igotit.tistory.com/2308 nRF5 SDK 기반 SES , KEIL 멀티 프로젝트 폴더 구축 및 프로젝트 템플릿3 개요 NORDIC 사에서 배포하는 nRF5 SDK 의 폴더 구성은 사용자(개발자) 입장에서는 좋은 구조 아니다. 본 글에서는 nRF5 SDK 기반으로 코드 구현 및 프로젝트 관리 용이한 프로젝트 작업 폴더 구축 방법 정리. 참.. igotit.tistory.com 아래 설명들 모두 폐기. Project template 2 번째 제작 첫번째 제작했던 이전것 대비 훨씬 심플하고 부실했던 부분(빌드시 항상 재빌드 처리되어 시간낭비 되었던것등) 모두 .. 2019. 10. 24. nRF52. 본인 제작 SDK 의 설정 헤더 파일 및 SES CMSIS Config Wizard 설정 개요 본글은 자신이 직접 만드는 공통활용 SDK (소스 형태의 라이브러리) 에 공통 적용되는 설정 사항들을 정의하는 헤더파일과 이를 SES 에서 CMSIS Configuration Wizard 보기 위한 설정 정리된다. 사전 준비 1.본인 제작 범용 소스 형식 구성 - 본 글은 하기 작업 이후에 이뤄지는 설정들임. nRF52. 본인 만든 범용 소스들 재활용 가능 구성 개요. 본 내용은 아래 링크 의 4번 항목에서 설명된 것처럼 코드 작업중 범용적인 것들을 다른 프로젝트에서도 재활용 가능한 형식 구축방법 정리. https://igotit.tistory.com/2339 nRF52. 예제프로젝트 기반 내.. igotit.tistory.com 사전준비 2. nRF5 SDK 의 sdk_config.h 를 CMSI.. 2019. 10. 21. nRF52. GPIO (General Purpose Input Output) nRF52840 GPIO Features • Up to 32 GPIO pins per GPIO port • Configurable output drive strength • Internal pull-up and pull-down resistors • Wake-up from high or low level triggers on all pins • Trigger interrupt on state changes on any pin • All pins can be used by the PPI task/event system • One or more GPIO outputs can be controlled through PPI and GPIOTE channels • All pins can be individuall.. 2019. 10. 19. nRF52. GPIO 오픈드레인 어중띤 특성 주의. 개요. MCU 핀 설정에서 오픈드레인 설정은 매우 유용하고 실전에서 활용도가 매우 높은것이나, nRF52 의 GPIO 는 오픈 드레인 특성이 완전한 오픈드레인으로 활용불가능함 주의 필수. 상세 nRF52 칩에서 GPIO 설정시 아래와 같이 설정 하면 오픈드레인 특성에 준하는 것이나, 주의해야할 것은 핀에 인가되는 전압이 Vdd+0.3V 보다 높은 경우엔 해당 핀의 전압이 유지되지 못하고 Vdd 전압이 핀에서 나옴. 예로 nRF52 칩 구동전압 Vdd 를 3.3 V 로 있는데, GPIO 핀에 3.3V 보다 높은 4V나 5V 가 인가된 경우 이 전압 유지 되지 않고 칩내부적으로 풀업저항이 Vdd 로 연결되어 핀전압이 3.3V 가 된다. 이런 특성때문에 스위치 용도의 P-MOSFET 의 Gate 에 nRF52.. 2019. 10. 19. nRF52. 본인 만든 범용 소스들 재활용 가능 구성 개요. 본 내용은 아래 링크 의 4번 항목에서 설명된 것처럼 코드 작업중 범용적인 것들을 다른 프로젝트에서도 재활용 가능한 형식 구축방법 정리. https://igotit.tistory.com/2339 nRF52. 예제프로젝트 기반 내 프로젝트 정리하기. 개요 이전 작업한 아래 링크의 "ex_ble_app_template 기반 내프로젝트 만들기" 한 것은 타겟보드 nRF52840 DK 에만 적용되는 코드들이 있다. 나의 타겟보드에 맞게 재구성 하는 과정 정리. https://igotit.tistory.. igotit.tistory.com 본 구성은 본인 혼자 코드 작성 하는 경우 뿐만 아니라 팀에서 작업 이뤄지는 경우에는 팀내 공유되는 공통 라이브러리 용도로도 활용가능하다. 1. 자체 제작 라이브러리 폴.. 2019. 10. 17. nRF52. 예제프로젝트 기반 내 프로젝트 정리하기. 개요 이전 작업한 아래 링크의 "ex_ble_app_template 기반 내프로젝트 만들기" 한 것은 타겟보드 nRF52840 DK 에만 적용되는 코드들이 있다. 나의 타겟보드에 맞게 재구성 하는 과정 정리. https://igotit.tistory.com/2308 nRF5 SDK 기반 SES , KEIL 멀티 프로젝트 폴더 구축 및 프로젝트 템플릿3 개요 NORDIC 사에서 배포하는 nRF5 SDK 의 폴더 구성은 사용자(개발자) 입장에서는 좋은 구조 아니다. 본 글에서는 nRF5 SDK 기반으로 코드 구현 및 프로젝트 관리 용이한 프로젝트 작업 폴더 구축 방법 정리. 참.. igotit.tistory.com 상세 1. 개발보드 특수 코드들 제거. nRF5 SDK 예제의 모든 코드들은 NORDIC 사의.. 2019. 10. 17. 문제해결. nRF5 SDK. NRF_LOG_INFO not shown in SES Debug Terminal. 문제상황 개요 nRF5 SDK 에서 제공하는 NRF_LOG_INFO() 류들의 함수는 디버거 터미널에서 보여야 정상인데 NORDIC 사에서 배포한 예제 실행 시 이거 안 보이는 경우 허다함. 이렇게 완성도 부족한 걸 배포하고도 ... 명확하고도 일관된 해결책 제시도 안 하고 있음. 개발자가 알아서 해결해야 함. 해결책. - 아래 사항들 조합해서 수정하여 정상 표시되면 됨. 단, 본인이 작성한 코드에 오류 없다는 전제하에.. 1. sdk_config.h 의 NRF_LOG_DEFERRED 비활성화 한다. #define NRF_LOG_DEFERRED 0//1 - 보통은 이것만 해도 로그 표현 됨. 이걸로 안되면 아래 다른 것도 시도. 2. NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENA.. 2019. 10. 7. nRF52840. SDK기반 코딩. step by step 2. GPIOTE 개요 - 이전 작업했던 SDK 이후 코딩 이후 SDK 에서 제공되는 GPIOTE 활용하기 위한 설정 정리. 사전준비. 1. nRF52 SDK 기반 코딩 step by step 1. https://igotit.tistory.com/2323 - SDK 제공 시간지연 함수들 활용하기 위한 프로젝트 설정. nRF52840. SDK기반 코딩. step by step. 개요 이전에 작업했던 생코딩 GPIO 제어 프로젝트에 SDK 에서 제공하는 시간지연 함수 nrf_delay_ms() 호출하기 위한 설정과정 상세히 보인다. 사전준비 1. sdk없이 만든 GPIO 제어 프로젝트. https://igotit.tist.. igotit.tistory.com 2. nRF5 SDK 에서 제공되는 예제 프로젝트 pin_chang.. 2019. 10. 6. nRF52840. SDK기반 코딩. step by step 1. 시간지연함수 개요 이전에 작업했던 생코딩 GPIO 제어 프로젝트에 SDK 에서 제공하는 시간지연 함수 nrf_delay_ms() 호출하기 위한 설정과정 상세히 보인다. 사전준비 1. sdk없이 만든 GPIO 제어 프로젝트. https://igotit.tistory.com/2314 nRF52840. GPIO 코딩. SDK 없이 레지스터 직접 제어 개요. - nRF52840 의 GPIO 제어 코드를 nRF5 SDK 없이 레지스터 직접 접근하여 코딩하는 예 정리. - SDK 없이 레지스터 직접 제어 코드 작성해봐야 하는 이유 . 실활용목적에서는 SDK 기반하여 작성하겠지만 초보.. igotit.tistory.com 2. sdk 제공예제코드를 프로젝트 템플릿3 형식으로 재구성한 프로젝트. https://igotit.tist.. 2019. 10. 5. nRF52. GPIOTE. GPIO tasks and events. GPIOTE. GPIO tasks and events. - GPIOTE는 GPIO에 연결되어 GPIO 핀 상태를 다른 곳에서 활용혹은 다른곳의 상태롤 GPIO 상태변경시키는 용도. - GPIOTE는 CPU가 관여하는 소프트웨어적인 처리가 아닌 하드웨어 적인 처리로 이뤄지므로 CPU부하증가없이 고속 처리 가능. - GPIOTE 의 채널은 1개의 GPIO핀에 할당가능. - PPI System 의 task 로 GPIO핀 상태변경 event 생성가능. - GPIOTE 총채널수 : 8개. (nRF52840) GPIO핀 write 위한 GPIOTE 채널 - 각 GPIOTE채널에 3개의 tasks 사용가능 - 2개의 task (SET, Clear) 는 고정된 기능, 1개의 task (OUT) 은, Set, Clear.. 2019. 10. 5. 이전 1 2 3 4 5 다음