STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리


 


제조사

 칩 

 주요특징

 실리콘랩

  • 8bit MCU EFM8 시리즈  
  • 32bit  EFM32 시리즈 

 EFM8 싸다. 

 STM

  • STM32 .

 최고 항상 만족. 

 Cypress

  • pSoC 

 pSoC6 은 기대해볼만. 

 NORDIC

  • nRF52 

 블투 무선솔루션.

 espressif

  • ESP32 

 WiFi,BT,Dual CPU

 


 




 

MCU 중요도  

 1순위 : STM32 

 2순위 : nRF52


 실리콘 랩과 Cypress 것은 "개인"적으로는 별루 안중요한 곳에 사용되었음. 반면 STM32 는 고신뢰도 확고한 동작에서 만족감, 성취도 최대. nRF52 는 무선통신기능이 핵심임. STM사가 무선솔루션에서는 아직은 약함(개인적 주관적 평가). 노르딕사는 무선솔루션에 목숨건 업체.  nRF24 같은 무선통신 칩으로 크게 성장했고, 무선솔루션에 MCU 솔루션까지 같이 제공하는 중. 환경변화에 대응하는 능력을 보면 오래 갈 업체로 보이고 계속 시장 장악력 높을듯.  


응용 개발자로써 가장 중요한 덕목은 특정 칩에 종속되지 않고 상황에 맞게 MCU 골라서 활용하면 됨. 개인 취미로 장난감 만들 때는 아두이노 같은거 이용하고, 고품질 원하면 그에 맞는 고품질 MCU 로 개발할것. 이게 분간이 안되면 죽도 밥도 안되니 개발자로써의 업은 그만 둘것을 고려하고 그래도 하고 싶다면 개인 취미생활만 하면됨. 


MCU 개발시 사용되는 언어 - 무조건 기본은 C  

- 간혹 C++ 로도 개발하지만 MCU 코딩은 무조건 C 언어 기반으로 개발된다. 이런걸 루 쓰짤데기 없는 고민 좀 하지 마라... . 그냥 C 는 임베디드 개발자의 필수 스킬이다. 전산 언어는 1개 만으로 못먹고 산다. 임베디드 분야 개발자면 C언어는 무조건 익숙해지면 되고 . 그리고 추가로 능력 되면 다른 언어들도 익숙해지면 됨. 임베디드 어셈블리로 코딩하지 않아도 됨을 감사하게 생각하자. 



EFM8 

8051 core

1.How to

 

 전용 개발툴  Simplicity Studio 설치하기. -> http://igotit.tistory.com/131

- Simplicity studio는 무료로 기능제한없이 사용가능한 통합개발환경을 제공한다.

- 실리콘 랩사의 C8051, EFM8, EFM32 시리즈 모두 개발가능.

 

Simplicity Studio에서 EFM8 프로젝트 만들기. -> http://igotit.tistory.com/230

SYSCLK 을 포트핀으로 출력하기. ->  http://igotit.tistory.com/228

SYSCLK 클럭소스 선택, Divider설정, 클럭별소비전류 -> http://igotit.tistory.com/250

GPIO출력, 출력속도, 소비전류 -> http://igotit.tistory.com/233

EFM8 RTC 클럭소스를 외부크리스탈로 설정하기. -> http://igotit.tistory.com/249

PCA 이용 RTC클럭 핀 출력하기. ->  http://igotit.tistory.com/299

터치센서 구현하기. -> http://igotit.tistory.com/232

터치센서 센서파형 보는 방법. -> http://igotit.tistory.com/298

EFM8 I2C(SMBus) 구현하기. -> http://igotit.tistory.com/292

EFM8 인트럽트 코드 생성방법. -> http://igotit.tistory.com/323

ADC 활용법 -> http://igotit.tistory.com/338

EFM8 UB1 USB 설정하기 -> http://igotit.tistory.com/457

 

2. info.

 

EFM8 SB1 시리즈 개요. -> http://igotit.tistory.com/227

EFM8 UB1 시리즈 개요. -> http://igotit.tistory.com/455

EFM8 SB1, 스타터 키트 -> http://igotit.tistory.com/231

EFM8 SB1 개발보드 -> http://igotit.tistory.com/322

EFM8 UB1, 스타트 키트 -> http://igotit.tistory.com/456

EFM8 SB1, 클럭. ->  http://igotit.tistory.com/226

EFM8 SB1, RTC ->  http://igotit.tistory.com/253

EFM8 SB1, Timer ->  http://igotit.tistory.com/290

EFM8 SB1, PCA, WDT ->  http://igotit.tistory.com/296

EFM8 SB1, I2C(SMBus) ->  http://igotit.tistory.com/291

EFM8 SB1, Power Mode -> http://igotit.tistory.com/252

- normal, idle, suspend, sleep 모드가 있다.

EFM8 Port I/O, Crossbar, External Interrupts, and Port Match  -> http://igotit.tistory.com/254

EFM8 ADC -> http://igotit.tistory.com/332

EFM8 부트로더 -> http://igotit.tistory.com/459

 

 

3.기타

 

EFM8 플래시 프로그램 안될 때 최후 조치법 - http://igotit.tistory.com/265

 

 

4.

 

 


 

EFM32 

ARM Cortex core

1.How to

 

전용 개발툴  Simplicity Studio 설치하기. -> http://igotit.tistory.com/131

- Simplicity studio는 무료로 기능제한없이 사용가능한 통합개발환경을 제공한다.

- 실리콘 랩사의 C8051, EFM8, EFM32 시리즈 모두 개발가능.

 

EFM32 프로젝트 생성법 -> http://igotit.tistory.com/245

 

EFM32 UART(USART) 활용법 -> http://igotit.tistory.com/247

2. info.

 EFM32 시리즈 개요. -> http://igotit.tistory.com/132

 

EFM32 Zero Gecko 시리즈 -> http://igotit.tistory.com/234

- Cortex M0+

 

EFM32 Wonder Gecko 시리즈 -> http://igotit.tistory.com/235

- Cortex M4, FPU

 

EFM32 Wonder Gecko 의 클럭 -> http://igotit.tistory.com/248

 

EFM32 Wonder Gecko 개발보드 -> http://igotit.tistory.com/246

 

EFM32 Zero Gecko 개발보드 ->http://igotit.tistory.com/262

3.

 

 

4.

 

 

 

 

 



STM32 

ARM Cortex core

1.

 


 

다른 수종의 MCU 들 사용경험 비교 결과 STM32 계열이 가장 큰 만족감과 많은 성취를 줬다. - 기준 : 2018년 12월 까지의 경험상. 


- 고속 퍼포먼스, FPU 등 구비. 

- 안정되고 신뢰도 높은 동작, 

- 풍부한 메모리 

- 뛰어난 가성비

- 많은 개발자들이 사용중. 단순 취미를 뛰어넘는 초특급 내공의 개발자들이 많음.


STM32 MCU 개발 환경은 통상 STM32CubeMX 기반으로 기본 설정처리하고 자동 프로젝트 생성하여 KEIL MDK-ARM (유료) 혹은 SW4STM32 (무료) 에서 코드 작성하는 방식으로 진행된다.



 

STM32 개발용 IDE  

 

SW4STM32 (System Workbench for STM32) 

- 무료 사용가능함이 최대 장점. 

- SW4STM32 설치 -> http://igotit.tistory.com/463 


KEIL MDK-ARM 

- 유료지만 고신뢰성 때문에 상용 작업에서는 선호하게된다.  

- STM32 프로젝트 생성 -> http://igotit.tistory.com/155 이 방법은  STM32CubeMX 사용하지 않는 방법인데 불편하다. CubeMX 기반으로 생성하는게 훨씬 편리하고 정확하다. CubeMX 기반 KEIL 프로젝트 생성방법 보기 -> http://igotit.tistory.com/271


SW4STM32, KEIL MDK-ARM 멀티개발환경 구축.

- 동일 프로젝트 소스를 KEIL 과 SW4STM32 동시 개발환경 구축 방법. -> https://igotit.tistory.com/1919


이클립스 <- 상기 SW4STM32 로 충분하니 사용할 필요없다.

- STM32프로젝트 생성 -> http://igotit.tistory.com/154  






 주제. 클릭하면 상세 정보 볼 수 있음. 

 

  STM32CubeMX 설치

  STM32CubeMX 에서 STM32 라이브러리 활용법

  STM32CubeMX 에서 프로젝트 저장방법 상세.

 

  STM32F4 프로젝트 생성기초 (CubeMX + KEIL)

 CubeMX에서 프로젝트 생성하고 KEIL MDK-ARM 에서 코딩하기 위한 흐름.

  CubeMX에서 다른프로젝트 복사해서 만들기.

 CubeMX에서 이미 만들어진 프로젝트 복사해서 새 프로젝트 만들기.

  STM32F 회로설계 전원처리. 

  STM32 외부 크리스탈 연결.

 외부 크리스탈 칩에 연결하기 위한 CubeMX 에서의 설정.

  STM32 외부 크리스탈 설정 법 상세 동영상

 외부 크리스탈 24MHz 인 경우 상세하게 동영상으로 설명.  

  STM32 JTAG/SWD 핀 연결.

 JTAG/SED 디버거/프로그래머를 칩에 연결하려는 경우 CubeMX에서 핀 설정.

  STM32F4 GPIO 핀출력, 핀출력속도

 

  STM32 GPIO 출력속도향상.

 레지스터 직접제어, 컴파일러 옵션 시간최적화.

  STM32F4 핀 인터럽트

 

  UART 기본 사용법

  UART Hardware Flow Control 적용법

  UART 5Mbps 고속통신 시험

  UART 특성시험.

 

  STM32 SPI 사용 설정.

  STM32 SPI 읽기/쓰기코드, 동작특성 확인.

  STM32 SPI 인터럽트 방식.

 CubeMX에서 SPI 사용가능하게 설정하고 Keil 에서 읽기, 쓰기 코드 구현하고 스코프로 SPI 동작특성확인.

 

  STM32 I2C 사용하기.

 CubeMX에서 I2C 사용가능하게 설정하고 Keil 프로젝트에서 I2C 함수 호출.

  STM32. USB HID 구현.  
  STM32. ADC 활용 외부 아날로그 전압을 핀으로 인가받아 디지털로 변환.

  STM32. DAC 활용

 디지털 값을 아날로그 전압으로 핀 출력.

  STM32. System tick timer 인터럽트.

 일정 시간격으로 인터럽트 발생시키는 간단한 방법. 

  STM32 에서 FreeRTOS 사용 하기

 

  STM32F4 회로설계가이드 전원처리

 

  STM32 ST-LINK utility

 STM32 에 ST-LINK/V2 이용 펌웨어 기록 전용 S/W

 



2. info.

 

STM32 개요 -> http://igotit.tistory.com/134

ST-LINK/V2 Debugging & Programming tool -> http://igotit.tistory.com/268

STM32 USB DFU 개발자용 리소스 -> http://igotit.tistory.com/464

STM32 USB DFU PC측 드라이버. -> http://igotit.tistory.com/645

STM32 DSB DFU DfuSeDemo 사용법 -> http://igotit.tistory.com/739

STM32 DfuSe 버전 3.0.4 의 "Dfu File Manager"버그 해결  -> http://igotit.tistory.com/738

STM32 DMA 개념잡기 -> http://igotit.tistory.com/467


STM32F4 LQFP100 패키지의 핀호환성 -> http://igotit.tistory.com/255

STM32F401 사양 -> http://igotit.tistory.com/276

STM32F401 의 USART -> http://igotit.tistory.com/277

STM32F401 개발보드(Simple, with FT240XQ) -> http://igotit.tistory.com/269

STM32F401 디스커버리 보드 -> http://igotit.tistory.com/157

STM32F407 디스커버리 보드 -> http://igotit.tistory.com/156

STM32F429 디스커버리 보드 -> http://igotit.tistory.com/158


STM32L4 개요 -> http://igotit.tistory.com/453

STM32L4 개발 보드 : NUCLEO-L476RG -> http://igotit.tistory.com/465

STM32L4x6. GPIO -> https://igotit.tistory.com/2085

STM32L4x6. USART -> http://igotit.tistory.com/787

STM32L4x6. SPI -> http://igotit.tistory.com/814

STM32L4x6. ADC -> https://igotit.tistory.com/1961

STM32L4x6. DAC -> https://igotit.tistory.com/1962

STM32L4x6. VREFBUF -> https://igotit.tistory.com/1966

STM32L4x6. Timers -> https://igotit.tistory.com/1993

STM32L4x6. 내장플래시메모리 -> http://igotit.tistory.com/743



STM32L4+ 개요https://igotit.tistory.com/2078

STM32L4R5VG (LQFP100, 1Mbyte flash) : https://igotit.tistory.com/2278 

STM32L4R5VI (LQFP100, 2Mbyte flash) https://igotit.tistory.com/2334

STM32L4R/S Power Supply : https://igotit.tistory.com/2286 

STM32L4R/S Reset, NRST : https://igotit.tistory.com/2292

STM32L4R/S Clock : https://igotit.tistory.com/2291

STM32L4R/S Bootloader : https://igotit.tistory.com/2411

STM32L4R/S. ADC : https://igotit.tistory.com/2283 

STM32L4R/S. DAC : https://igotit.tistory.com/2285

STM32L4R5VG 플래시 메모리 : https://igotit.tistory.com/2330 

STM32L4R/S EXTI : https://igotit.tistory.com/2429

3.버그/하자 

STM32CubeMX 버전 4.3.0 의 USB 관련 버그  및 해결책 - http://igotit.tistory.com/289


STM32CubeMX 버전 4.25.0 의 클럭 설정 버그 및 해결책 -  https://igotit.tistory.com/1978 


SPI 통신 데이터 비트 시프트 버그 및 해결책 . https://igotit.tistory.com/2446  


STM32L4R5VG 부트로더 버전 9.2 부트로더 작동안됨. . https://igotit.tistory.com/2278

4.

 

 

 

 

 


 

 

PSoC 

PSoC3 : 8051, PSoC4 Cortex M0, PSoC5 : Cortex M3, PSoC6 : Cortex M4 + M0 Dual 

1.How to


PSoC Creator 설치.(버전 2.1 SP1 구버전임) : http://igotit.tistory.com/1568

PSoC 의 자류로운 핀맵 지정 : http://igotit.tistory.com/1569

Watch Dog Timer 인트럽트 구현. : http://igotit.tistory.com/261 

I2C Master 설정 I2C API 함수 사용법 : http://igotit.tistory.com/327

pSoC, pRoC BLE 셋팅방법 골격 : http://igotit.tistory.com/510

 

2. info.

 

PSoC 프로그래머 (윈도우 PC 프로그램) : http://igotit.tistory.com/1571

miniProg3 (PSoC 펌웨어 기록기) : http://igotit.tistory.com/306


pSoC4 BLE / pRoC BLE 개발보드 : http://igotit.tistory.com/260 

 

CapSense  기본정보들 : http://igotit.tistory.com/259 

 

pSoC4 BLE 칩개요 : http://igotit.tistory.com/207

 

pSoC4 전력모드 : http://igotit.tistory.com/222

 

Bluetooth Low Energy Subsystem의 전력모드 : http://igotit.tistory.com/225

 

UART to BLE 브릿지  : http://igotit.tistory.com/257  ( code example )

 

WDT기반 RTC & BLE GATT Current Time Service : http://igotit.tistory.com/256 ( code example )


PSoC 6 개요. M4+M0 Dual , 초저전력 : http://igotit.tistory.com/1621

 

3.

 

 

4.

 

 

 

 

 

 


nRF52 

Bluetooth 5.0 Radio with ARM Cortex M4F

1.






nRF5 개발용 IDE

 SEGGER Embedded Studio (SES 라고 하자)

  - nRF5x 을 타겟칩으로 하는 경우 무료 사용가능함. 

  - 설치방법 상세 : https://igotit.tistory.com/1667

  - nRF5 제조사 제공 SES 에서 nRF5 개발 위한 가이드 문서 : http://infocenter.nordicsemi.com/pdf/getting_started_ses.pdf

 


 KEIL MDK-ARM 

 - 상기 SEGGER Embedded Studio 로 충분하나 제조사에서 배포된 샘플 코드가 MDK-ARM 인 경우 있음. 






nRF52 칩, 개발보드, 상용 모듈  

nRF52 칩


nRF52칩 비교 810 832 840 : http://igotit.tistory.com/1674

nRF52840 칩 : http://igotit.tistory.com/1176

nRF52832 칩 : https://igotit.tistory.com/397



nRF52840 개발보드

nRF52840 DK (PCA10056) : http://igotit.tistory.com/1665

nRF52840 USB Dongle (PCA10059) : http://igotit.tistory.com/1816



nRF52 상용모듈

nRF52840 칩 장착된 모듈들 가격, 판매처 : https://igotit.tistory.com/2027

nRF52832 칩 장착된 모듈들 가격, 판매처 : https://igotit.tistory.com/2026 








 

nRF5 개발시 필요한 툴 S/W 들 


nRF Connect 다운로드 설치 : https://igotit.tistory.com/1687

 - nRF Connect Bluetooth Low Energy 설치 : https://igotit.tistory.com/1686

 - nRF5 Connect. Programmer 개요 설치 : https://igotit.tistory.com/1867


nRF5 Sniffer 다운로드 설치 : https://igotit.tistory.com/1702


nRF RSSI Viewer 설치, 기본사용법 : https://igotit.tistory.com/1688





 

nRF5 SDK 기반 개발환경 구축 관련 


nRF5 SDK 개요. 다운로드 : https://igotit.tistory.com/1663


nRF5 SDK 작업환경 셋팅 : https://igotit.tistory.com/1669 - 본 설명 .

nRF5 SES 새프로젝트 만들기. nRF5 SDK 기반 : https://igotit.tistory.com/1690 - 본 설명 폐기

nRF5 SES 응용소스들 몰아두기 : https://igotit.tistory.com/1696  - 본 설명 폐기.


nRF5 SDK 기반 SES 프로젝트 깔끔하게 생성하는 방법 

- 위 3개 정보 폐기대신 본 설명의 방식으로 하면 최적 환경 구축됨. 

- 상세보기: https://igotit.tistory.com/2021본 설명 폐기. 

- 아래 프로젝트 템플릿 3. 볼것.



프로젝트 템플릿 1


- 상기 깔끔한 프로젝트 구축된것의 이름을 igotit_template_nRF52840_SES 로 변경하여 압축하였고, 다운로드 가능하다. 본인 프로젝트에 적용하는 방법 설명 하였다. 

- 상세보기 : https://igotit.tistory.com/2023본 설명 . 

- 아래 프로젝트 템플릿 2가 더 좋음. 

- 아래 프로젝트 템플릿3 형식이 더 좋음. 2019년 10월 4일 추가. 


프로젝트 템플릿 2.

- 아래 템플릿3 이용할것.

상기 처음만든 프로젝트 템플릿의 완성도가 부족한점을 보완하여 새롭게 만든 프로젝트 템플릿.

- 상세보기 : https://igotit.tistory.com/2042



nRF5 SDK 에서 제공되는 예제 프로젝트를 본인 프로젝트에서 구현하는 방법. 

샘플로 제공되는 프로젝트 열어서 빌드해서, 보드에 기록해봤다고 코드 구현 능력이 생기는건 아니다. 해당 기능을 구현하기 위해서 어떤 과정이 필요하며, 어떤 것이 필요하고 어떤 것이 필요없는지 명확히 알려면 가장 간단한 본인 프로젝트 소스 상태에서 구현과정을 직접 진행해 보는 것이 가장 빠른 지름길이다. 
- 상세보기 :   https://igotit.tistory.com/2033  본 설명 아래 프로젝트 템플릿 2 기반으로 작업하는 방법 적용할것.


- 프로젝트 템플릿 2를 시작점으로 하여 본인 프로젝트 구축방법 : https://igotit.tistory.com/2043  SysTick 관련 코드 구현임. 


- 상기 프로젝트 이후 Clock Control 추가 구현 방법 : https://igotit.tistory.com/2046 


프로젝트 템플릿

- 프로젝트 템플릿2 형식으로는 현업에서 발생하는 상황 특히 SDK 버전을 다른것으로 변경해야 하는 경우, 혹은 SDK 에 수정 발생하는 상황 및 프로젝트 백업시부하증가,  등 불편한 요소들이 많았다. 

아래 프로젝트 템플릿3 구성으로  최적의 프로젝트 작업 환경 구축 가능하다. 


프로젝트 템플릿3 구성 상세보기 : https://igotit.tistory.com/2308


템플릿 3 구성에서 Keil, SES 프로젝트 만들기 : https://igotit.tistory.com/2311


GPIO 제어 레지스터 직접 접근 코딩하기 : https://igotit.tistory.com/2314


SDK 시간지연함수 구현 :  https://igotit.tistory.com/2323


SDK GPIOTE 구현 : https://igotit.tistory.com/2326









nRF5 LED 점멸 샘플 프로젝트 예제 : https://igotit.tistory.com/1684


nRF52840 USB Dongle LED 점멸 예제 : https://igotit.tistory.com/2019


nRF52840 GPIO 출력. 출력속도 : https://igotit.tistory.com/2029


SysTick 코드 구현 : https://igotit.tistory.com/2043

 

Clock Control 코드 구현 : https://igotit.tistory.com/2046


nRF52840 USB CDC 코드 구현 : https://igotit.tistory.com/2037


nRF52840 USB CDC 드라이버 설치 방법 : https://igotit.tistory.com/2038


Radio Tx 구현 : https://igotit.tistory.com/2053


Radio Rx 구현 : https://igotit.tistory.com/2055


nRF5 Enhanced ShockBurst 작동시험 : https://igotit.tistory.com/1704


블루투스 5.0 BLE Maximum Throughput Testhttps://igotit.tistory.com/1689


BLE NUS Server-Client 통신 시험 : https://igotit.tistory.com/1694


nRF52840 동글에 j-link  커넥터 달기 : https://igotit.tistory.com/2295


nRF52840 DK 를 j-link 디버거로 활용하기 : https://igotit.tistory.com/2296



2. 



nRF52. Power : https://igotit.tistory.com/2050


nRF52. Clock : https://igotit.tistory.com/2040


nRF52840 CPU : https://igotit.tistory.com/2032


nRF52. PPI(Programmable Peripheral Interface) : https://igotit.tistory.com/1697


nRF52 GPIO : https://igotit.tistory.com/2031


nRF52. GPIOTE. GPIO tasks and events : https://igotit.tistory.com/1699


nRF52. Timer/Counter : https://igotit.tistory.com/1698


nRF52. PWM (Pulse Width Modulation) : https://igotit.tistory.com/1999


nRF52. RTC (Real Time Counter) : https://igotit.tistory.com/2047


nRF52. SWI (Software Interrupts) : https://igotit.tistory.com/2049


nRF52. UART : https://igotit.tistory.com/2039

- 최고속도 : 1Mbps


nRF52. SPI : https://igotit.tistory.com/2048

- 최고속도 : 32MHz


nRF52. I2C : https://igotit.tistory.com/2063


nRF52. I2S : https://igotit.tistory.com/2062


nRF52840. USB : https://igotit.tistory.com/2035


nRF52 2.4GHz Radio Transceiver : https://igotit.tistory.com/1700


nRF5 의 Enhanced ShockBurst 개요 : https://igotit.tistory.com/1703


nRF52. ADC : https://igotit.tistory.com/2096


nRF52840. NFC Tag : https://igotit.tistory.com/2274





3. 버그  등 

 

 nRF5 SDK 버그 __putchar 관련 및 해결책 : https://igotit.tistory.com/1691


SES 디버깅 모드에서 NRF_LOG_INFO 출력 Debug Terminal 에 안보이는 문제 및 해결. https://igotit.tistory.com/2328

- 오락가락 하는 오류 증상에 일관된 해결책이 있는것도 아님. 어덯게든 보이게 해야 개발 속도 빨라짐. 


nRF5 SDK 16.0.0 의 오류 들 :  https://igotit.tistory.com/2353

4.

 

 

 

 

 

 



ESP32 

WiFi, Bluetooth, Dual CPU

1

 


2


3

 

 

4

 

 

 

 

 






첫글등록 : 2015년 4월 5일.

최종수정 : 2019년 10월 24일. 


본글단축주소 : https://igotit.tistory.com/244





Posted by 리치굿맨

댓글을 달아 주세요

  1. 비밀댓글입니다

    2019.11.11 14:22 [ ADDR : EDIT/ DEL : REPLY ]
    • 안녕하세요~ 제가 비밀댓글로 하면 글 남긴분도 답글을 못보는 경우가 많아 공개글로 댓글 남깁니다.

      제가 CC3100 을 STM32 로 제어하기 위하여 SimpleLink 포팅작업했던 시점이 5년전 2014년 말 2015년 초 까지 잠시 작업하다가 완료하지 않고 다른 프로젝트 작업 진행했었네요.

      그 당시 개발중에 구현해야할 핵심 작업사항이 SimpleLink 를 STM32 개발환경으로 옮기는 것이었고, 이를 개발중에 기록 남겨뒀던 것을 블로그에 새글 작성하여 올려 뒀습니다. 주소 : https://igotit.tistory.com/2377

      저도 한참이 지난 상황이라 기억은 가물가물 하지만 위 내용 보면 포팅과정에 별 다른 특이사항은 없었던것 같아요. 단지 TI사의 관련 개발 문서가 부실해서 명시적인 이해가 안되는 문제가 좀 있었고 이런 문제는 TI사 포럼에서 질문과 답변들 보면 도움이 되었던것 같네요.

      아 그리고 CC3100 의 경우 좀 특이한 특성이 있었는데 SPI 통신시 SPI CS 를 반드시 동적제어 해줘야 정상 통신이 되었습니다.

      2019.11.11 20:58 신고 [ ADDR : EDIT/ DEL ]
  2. 박재호

    안녕하세요! 확인하시고 답변 주셔서 감사드립니다! 올려주신 포스팅을 참고로 수정중에 있습니다.

    특히 최근 SDK에서는 STM32f4 Discovery board에 대한 platform 예제도 있어서,
    이를 바탕으로 CubeMX에서 잡아주는 peripheral 함수와 중복된 것을 지우고, 필요한 spi 함수를 바꾸는 중에 있습니다.
    빌드 ㅇ에선 아직까진 별다른 error 없이 동작하는데, 칩이랑 물려서 확인해봐야겠죠 이제.

    무튼, 아두이노를 제외한 임베디드 시스템을 제대로는 처음 해보는 터라 아예 막막하던 일이었는데, 선생님 덕분에 길이 보이는 것 같습니다! 감사드립니다 :)

    2019.11.12 17:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 아두이노 에서 STM32 로 넘어왔다길래 ... 노파심에서 추가 합니다. SPI 통신에서는 반드시 슬레이브측 의 SPI 모드와 동일하게 SPI master 에서 모드를 설정해줘야 합니다. 슬레이브 측의 SPI mode 는 해당 칩의 데이터 시트에서 반드시 명시하고 있습니다. SPI 모드 상세 : https://igotit.tistory.com/2088

      또한, SPI slave 의 가능한 최대 SPI CLK 가 명시되어 있구요. SPI master ( STM32 측) 에서는 지정된 최대 주파수이하의 SPI 클럭을 설정해야 합니다.

      SPI 통신에서는 위 2가지 무조건 처음부터 확실하게 설정하고 진행해야 합니다.

      2019.11.13 01:25 신고 [ ADDR : EDIT/ DEL ]
  3. 박재호

    안녕하세요! 오랜만에 덧글 남겨드리네요.
    시작하고 1주일 정도 머리 싸맨지 1주일 정도만에 성공했네요.

    포스팅해주신 내용 덕에 기본적인 세팅은 다 마무리 했었는데, 명령어가 계속 제대로된 값을 리턴하지 않아서 한참 고생했네요... 하나하나 debug해서 알아본 결과로는, SPI로 들어오는 명령어들 중 header 부분 이후 4바이트가 이상하게 들어오는 바람에 계속 밀린 데이터를 받고 있었네요... 이게 원래는 Status를 포함하는 부분이었는데, 예전 버전과 신규 버전의 차이인진 모르겠네요. Header 부분 이후에 강제로 4byte를 한 번 읽어들이는 코드를 추가해주니, 다른 예제 소스들도 다 정상 작동합니다.

    아무쪼록, 많은 도움 얻고 갑니다!! 감사드립니다 =)

    2019.11.21 22:39 [ ADDR : EDIT/ DEL : REPLY ]