초보의 아웅다웅 설계하기 336

PSOC4 - 블루투스모듈 오동작

PY8C4247 IC를 가지고 Observer 모드로 하여 들어오는 블루투스 신호를 분석하고 있는데 2 ~ 3주간 사용하면 블루투스가 정상적으로 동작하지 않습니다. (블루투스 모듈 버젼은 3.40을 사용) 리셋을 하거나 프로그램을 다시 다운로드하여도 동일한 증상이 발생한 것을 보면 레지스터나 이런 부분의 문제가 아닌 듯 싶습니다. 처음 1개가 비정상 동작 했을때 IC가 실장이 잘못 되었을 거라 생각했는데 3개째 같은 증상을 겪으니 그게 아닌 것 같다는 생각이 듭니다.(기간도 약 3주정도 사용하다보면 나오는게 동일하네요.) 원인을 찾아서 해결해야하는데 조금 막막하네요.

ST의 디자인 툴

ST사에서 웹으로 설계 프로그램을 지원하고 있습니다. NFC쪽을 그리다 안테나 설계를 안테나 회사에 다니는 친구에게 부탁을 할까하면서 구글링을 하다보니 ST에서 지원하는 것을 알게 되었습니다. 여러가지 설계 지원 툴 중 하나지만 제가 필요한 건 이거니까. 값을 변경해가면서 바로바로 결과를 알 수 있으니 좋습니다. 실제 PCB를 제작했을때도 동일하게 나올지는 잘 모르겠네요. 요즘 TI도 그렇고 ST도 그렇고 원하는 결과만 넣으면 값과 회로도까지 툭하고 튀어나오니 진짜 편하네요. 한편으로는 하드웨어 엔지니어인 제 자리가 위험하다는 생각이 드네요. 몇년뒤면 하드웨어 엔지니어는 없어지지 않을까 하는 걱정까지 듭니다. 펌웨어도 설정을 하면 기본 소스가 나오는 걸 보면 그 자리도 위험하긴 매한가지겠네요. 에휴 앞으..

PSOC - Timer 생성

CPLD나 FPGA를 하시는 분들에게는 익숙하신 TopDesign에 들어가서 Timer를 찾아 생성하여 줍니다.(물론 CPLD나 FPGA에서는 이러한 라이브러리들이 지원되지 않아 만들어 쓰거나 구매하여 쓸 수 있습니다...) 생성한 후에는 빌드를 한번하여 주어야만 프로그램 라이브러리들이 생겨서 프로그램에서 사용할 수 있습니다. /* Timer Interrupt */ CY_ISR(Timer_Int_Handler) { DEBUGPRINT("Timer \r\n"); Timer_ClearInterrupt(Timer_INTR_MASK_TC); } int main() { /* Start communication component */ UART_Start(); /* Enable global interrupts */ ..

W7500P - UART 설정

W7500P에서 UART RX를 인터럽트 구조로 잡은 상태에서 UART를 연결하지 않으니 정상동작을 하지 않았습니다. 때문에 UART RX 단자를 처음 셋팅때 연결되어있는지 확인하고 연결이 되어 있으면 인터럽트로 동작하도록 잡았는데 가만 생각해보니 풀업 설정만 해도 될 것 같았습니다. void UART_Config(uint8_t uart, uint32_t baud) { uint8_t RXStatus = 0; GPIO_InitTypeDef GPIO_InitStruct; UART_InitTypeDef UART_InitStructure; if(uart == USART_0){ PAD_AFConfig(PAD_PA, GPIO_Pin_14, PAD_AF0); GPIO_InitStruct.GPIO_Pin = GPIO_..

W7500P - 리셋타이밍

주로 많이들 사용하는 같은 급의(ST, NXP 등등) MCU와 다르게 W7500P의 리셋타이밍에는 문제가 좀 있는 듯 싶습니다. 위즈넷사에서 제공하는 노트에도 명시되어 있는 부분입니다. 20ms를 명시해놓은 걸로 기억하는데 만일 지연 타이밍이 없다면 초기에 동작하지 않을 수 있습니다. 일단 R 200K, C 1uF으로 지연시간을 좀 늦추니 동작을 합니다. 양산시에는 보증할 수 없지만 테스트 용도로는 충분할 것 같습니다.