전체 글 53

ESP32 CAM / 다운 연결 / CAN 연결 / CAN log 저장

목적 can 수신데이터 SD 카드 저장 용도 테스트 해보니 고속으로 들어오는 CAN데이터를 실시간으로 SD 카드 저장이 어렵다. 일정 데이터를 Ram 버퍼 저장하고 CAN 데이터 들어오지 않는 타이밍에 SD 카드에 저장 하면 될것 같으나 이건 해당 프로토콜을 알아야 가능하기 때문에 범용적으로 사용 불가. 방법은 SD 카드 저장 속도를 올려야 하는데 SPI방식이 아닌 SDIO 4bit / 8bit 인터페이스로 변경하면 될듯하지만, 현재 보류 중...시중에 ESP32 보드중에 SD카드가 SDIO로 연결된게 없는 것 같음... 그냥 STM32 에 SDIO로 연결해서 테스트 해볼까 생각중.. 회로도 psram 이 추가되어 램이 많고, 여기에 SD 카드 있어서 CAN 연결후 저장 하기 좋음. 다운로드 기존 D1-..

Firmware/ESP32 2022.01.22

DSP [ 28377s] 초기 설정, SCI uart / 프로젝트 생성

폰트 탭 사이즈 조정 디버깅 에뮬레이터 수정 새로 추가 후 연결된 프로브 선택 디버깅 환경설정 SCI (UART)설정 코드 float 처리가 안됨. 하기 옵션 다 조정했는데..stack 사이즈가 문제인가.. 더 키우면 될것 같은데.. void SetupSCI(void) { // SCI setting EALLOW; GpioCtrlRegs.GPAGMUX2.bit.GPIO28 = 0; // Configure GPIO28 for SCIRXDA operation GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; GpioCtrlRegs.GPAGMUX2.bit.GPIO29 = 0; // Configure GPIO29 for SCITXDA operation GpioCtrlRegs.GPAMUX2.bit...

[MFC] 단축키 설정.

해당 키 기능 추가. 몇가지 시스템 키는 동작안됨...F10.. BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. CString strinfo; if (pMsg->message == WM_KEYDOWN) { d_msg("pMsg->wParam %x\n", pMsg->wParam); if (pMsg->wParam == VK_ESCAPE) return TRUE; else if (pMsg->wParam == VK_RETURN) return TRUE; else if (pMsg->wParam == VK_F1) { strinfo.Format("F1 키"); m_pView->InfoMsg(strin..

SW/MFC 2021.10.25

keil cubemx 없이 uart 추가.

수정 파일.. stm32l4xx_hal_conf.h => 해당 기능 주석 해제. #define HAL_UART_MODULE_ENABLED HAL_USART_MODULE_ENABLED 로 되는거 주의!! main.h => GPIO 추가. #define USART1_TX_Pin GPIO_PIN_6 #define USART1_TX_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ #define _DEBUG_MSG // 디버깅 메세지 삭제하려면 주석처리. 20210303 kts #ifdef _DEBUG_MSG #include #define MSG_LV 0 #if MSG_LV == 0 #define d_msgl(...) do{printf("#[%s %d] ",__FU..

Firmware/STM32 2021.10.09

파이썬 씨리얼 통신 / 챠트 그리기 Serial Chart / RS-232 UART 통신 / Python Serial

시간 날때마다 Pyside 로 한번 만들어본 시리얼 통신 프로그램 파이썬은 라이브러리가 잘 되어 있어 개발이 쉽고 편하다. 기본 시리얼 통신은 아래 소스로 참고했고 https://github.com/y252328/ATerm GitHub - y252328/ATerm: A simple serial terminal implemented in Python A simple serial terminal implemented in Python. Contribute to y252328/ATerm development by creating an account on GitHub. github.com 챠트는 파이썬 유명한 matplot 사용함. 1번에 챠트 파싱할 조건 추가. 첫 글자는 파싱 하기위한 영문자 이후 숫자로 되..

SW/Python 2021.09.10

플래쉬 프로그램 UNIFLASH Hex

TI 전용 다운프로그램 전달합니다. (CCS 프로그램으로 다운 불필요) https://www.ti.com/tool/UNIFLASH#downloads 다운 후 설치 실행하면 자동으로 디버그 장치 연결되고 해당 디바이스 선택 (28027) 스타트 버튼 활성화 되면 클릭 후 *.out 파일 선택 후 load image 버튼으로 펌웨어 업로드 정상적으로 펌웨어 다운되면 하기 콘솔창에 메시지 출력됨. CCS hex 만들기 C2000 hex 활성화, 메모리 16, 16 출력 모토로라 2

Firmware/TI_DSP 2021.07.16

구글 크롬 캐스트 4세대 TV USB 전원 사용 (스텝업 보드 MT3608)

크롬 캐스트 경우 TV에 있는 USB 전원으로는 전원 부족으로 동작이 안되어 외부 전원을 연결해야 하는데, 평상시에 계속 켜져있는게 신경쓰여, TV 전원으로 동작하는 거 찾다가 결국 스텝업 보드로 해결함. 필요물품 : 인두기, 전원 공급 보드, USB 케이블, 멀티메터 MT3608 스텝업 보드 구매 (500원) 간단히 말하면 VIN 에 USB 5V 입력 넣어주면 가변저항 조정을 통해 VOUT 전압을 올려주는 보드 타입C 케이블이 없어서 젠더 사용..ㅜㅜ 가장 중요한 사항.. VIN 양단 5V 입력 되는 거 확인한 후 VOUT이 5.2~5.3V 정도 출력되게 파란색 네모난 가변저항을 돌려가며 멀티메터로 전압 확인 필요!! 연결 후 어떤 전압으로 나올지 모르기 때문에 멀티메터로 출력 전압 꼭 확인후 크롬 캐..

기타 2021.05.27

구조체 memset 시 에러 발생

구조체 내부에 CString 있는 경우, 초기 전체 구조체 memset 문제 발생됨. - 액세스 위반 메모리 접근 위반됨. - 되도록 char*, TCHAR[] 사용 m.blog.naver.com/PostView.nhn?blogId=dimigozzang&logNo=220295830390&proxyReferer=https:%2F%2Fwww.google.com%2F 구조체에 CString 있을 땐, ZeroMemory 안 되요 ! 눈으로 봐서는 문제가 없는 코드가 있지만 간혹 에러가 뜨는 경우가 있다.. 이럴땐 디버깅으로 눈을 크게 ... blog.naver.com

SW/MFC 2021.05.06

비 정적 멤버 호출하는 방법. (this 사용)

클래스 내 static 선언되지 않은 함수를 사용하는 방법 해당 클래스 전역 포인트 변수로 선언후 this로 받아 사용. ActivationTimer* _This = NULL; // 전역 포인트 변수 // 생성자 클래스 내부에 this 처리. ActivationTimer::ActivationTimer(const unsigned long msTimeout, int runcount, void* pNewFunc, void* pParam) { if (_This == NULL) _This = this; ... } void TaskList::CallTask(const int num) { Task* task = operator[](num); if(task->runcount == 0) _This->RemoveTask(..

SW/MFC 2021.03.29

다이알로그(클래스) 생성(Create, DoModal) / 상호 데이터 전달 / 부모 자식

다이알로그 생성 방법 및 차이 다이얼로그 추가하고 해당 클래스 생성. 1. DoModal 방식 - 생성방법 : 해당 다이얼로그 클래스 include 하고 생성후 Domodal() 호출. CSetCalDlg Dlg; // 다이알 로그에 pubic 설정 변수 추가후. 실행전 데이터 복사. memcpy(&Dlg.setParam, &pMainFrame->m_setDev, sizeof(Dlg.setParam)); int ret = Dlg.DoModal(); if (IDOK == ret) { // 다이알로그 ok 버튼시 데이터 복사. memcpy(&pMainFrame->m_setDev, &Dlg.setParam, sizeof(Dlg.setParam)); d_msgl("Dmm %d Can %d Jig %d", pMa..

SW/MFC 2021.03.27

cubemx CAN 속도 설정

보통 125~1000kbps 사용 UART와 다르게 여러 파라메터 조정하여 설정함. FCLK 클럭 확인 www.bittiming.can-wiki.info/ CAN Bit Time Calculation The following calculation sheet is mostly useful for classic CAN as defined in ISO-11898 before 2015. For the new CAN FD as defined in ISO-11898:2015 work is in Progress. CiA provides the document CiA 601-3 CAN FD bit-timing recommendations. By providing t www.bittiming.can-wiki.info S..

Firmware/STM32 2021.03.09