전체 글 444

ADSTAR - Sleep mode

Halt3는 Cpu 코어만 Sleep로 들어가는 모드입니다. 크게 전류 소모량이 줄어드는지는 모르겠습니다. 조금 더 Deep Sleep 하는 모드도 있는데 기본적으로 30mA 전, 후의 전류가 소모된다고 해서 Sleep 모드가 중요하다면 ADSTAR가 아닌 다른 칩을 사용하는게 맞을 것 같습니다. /* Sleep mode enable - halt3 */ #define SleepMode_Config() *(U32*)0x80023C00 |= (1

ADC128S102, DAC128S085

ADC128S102는 첫 데이터가 들어가고 다음 데이터에서 값이 나오는 것 같습니다. 때문에 값을 받을때는 한 채널씩 뒤로 밀리네요. #if 0 /* datalength 8bit */ #if 0 /* Enable SPI and GPIO clocks */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); /* Configure SPI pins: SCK, MISO and MOSI */ GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2); GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI2); GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, G..

SD Card 내에 파일을 읽어서 Ymodem으로 업데이트

SD Card 내에 파일을 읽어서 Ymodem을 사용하여 업데이트하였습니다. MCU는 Adstar을 사용하였습니다.(Download는 미사용) s32 Fats_UpdateFile_Read(char* fname, u8 *FileData, u16 FileSize, u32 FilePosition) SD Card의 파일을 읽는 함수이고 File Name을 읽어오기 위해 아래 함수도 약간 수정하였습니다. void Ymodem_PreparePacket(char* fname, u8 *SourceBuf, u8 *data, u8 pktNo, u32 sizeBlk) /******************************************************************************* * Funct..

[ABOV] A33G52 EVM 보드를 사용한 부트로더

ABOV에 부트로더를 사용한 펌웨어 다운로드 프로그램이 없어 ST의 IAP를 수정하여 적용하였습니다. Silicon Labs의 X-Modem을 올릴까 ST의 Y-Modem을 올릴까 고민하다가 ST에서 제공하는 Y-Modem을 올렸습니다. Silicon Labs에서 제공하는 프로그램은 제 기억에 특정 baudrate가 없이 처음 입력하는 버튼의 길이를 측정하여 baudrate를 자동 설정했던 것으로 기억합니다. 아이디어 진짜 신박하다고 생각했었는데. ㅎㅎ Y-Modem 테스트는 하이퍼 터미널 프로그램을 사용하였습니다.(압축 파일 내에 넣었습니다.) Oanny라고 적힌 부분들을 따라가보면 변경 부분이 쉽게 보입니다. IAP 사이즈를 널널하게 0x5000을 잡아서 Application의 시작점을 0x5000으..

No section matches selector - no section to be FIRST/LAST. 에러

CubeMX로 프로젝트를 생성 후 나오는 에러 start-up 파일(예 - startup_stm32h743xx.s)이 링크되어 있지 않을 경우 발생 XXX.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST. Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 1 error messages. "XXX.axf" - 1 Error(s), 0 Warning(s).

STM32F 자이로 가속센서 MPU6050

Reset 시에 어떤 부분이 틀어져서인지 모르지만 Reset 후 타이밍이 안 맞으면 전원을 완전 제거 후 다시 인가해줘야 하네요.(제가 잘못한 걸수도 있구요.) IC의 전원을 Reset 해주도록 설계 해주는게 맞는거 아닌가 싶긴하네요.(IC 전원만 Load 스위치를 사용하여 다시 Turn-on 시키는게 편할 것 같습니다.) 너무 여기저기 소스를 긁어다 쓰다보니 어디꺼를 가져왔는지도 모르겠네요. ... https://ddtxrx.tistory.com/entry/STM32-LL%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-I2C-DMA-MPU6050-%EC%83%81%EB%B3%B4%ED%95%84%ED%84%B0 [STM32] LL 드라이버 - I2C DMA로 작성한 MPU6050 상보..

STM32F DAC, Digital POT

MCP4251 MCP4716 웹에서 돌아다니는 아두이노 코드와 구글링한 코드를 수정하였습니다. https://www.arduino.cc/reference/en/libraries/mcp4251/ MCP4251 - Arduino Reference Reference > Libraries > Mcp4251 MCP4251 Signal Input/Output MCP4251 Digital Pot Control MCP4251 digital potentiometer can be controlled over SPI interface to have resistance range as per the model number. The number of steps can be 128 or 256 depends upon www.ar..