Posts

Showing posts from January, 2024

macOS 에서 리산테크 AVR FLASHER 10 사용하기

![img_1](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh_UQMMViB7Of1FnJHfsB5xeHz97bHSsjJk1JtteJCBYDswq109E_WFqRIsOuYLcGFQ2UXLdkERQHWFspN9JUUzCywiamd4JVcXVp3fPrjd0kMElJ2wlAC6fZlICVxuw6JV3bSRDRQBpITNEQgEWaCBStmQwkSV9yVxjOcZUX_XTVnxlxohNqYlUvRKls/s4000/KakaoTalk_Photo_2025-01-04-00-14-17.jpeg) AVR 프로그래밍에 주로 사용하는 리산테크의 AVR FLASHER 10 제품이다. 총 10개의 서로다른 펌웨어를 저장하여 PC 없이도 타겟 장치의 전원으로 펌웨어 다운로드가 가능하다. 펌웨어 다운로드가 고속으로 이루어지기 때문에 아주 편하다. 최근 윈도우 데스크탑 보다 맥북으로 작업을 하는 상황이 많아지면서 이 장비를 사용하는데에 소프트웨어 지원이 윈도우만 되기때문에 불편함을 격고 있었다. 이것때문에 윈도우 노트북을 장만하는건 말이 안되는거 같고 그렇다고 매번 데스크탑을 켜는것도 불편하고 고민만 하고 있었다. 예전에는 부트캠프를 사용해 윈도우 용 프로그램을 쉽게 사용할수 있었지만 맥북이 애플실리콘을 사용하면서 이런점은 살짝 불편해 졌다고 볼수도있다. 호환성이 많이 좋아졌다고 하지만 예전에 Whisky로 시도했다가 실패한 경험이 있었기 때문에 큰 기대는 하지 않으려고했다. 아직 가상화는 시도해보지 않았는데 UTM 은 좀 쓰기가 불편했고 Parallels 는 과금방식이 전부터 마음에 들지 않았다. 사실 개인 사용 목적으로는 VMWare가 무료이기 때문에 다른 선택지가 없다. ![img_2](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl6Piz058YvIQ1Wv-lqH-lgM7cpMD1KP4Qps0jIAQ2KPVy8mK51ecO-iCA4eH3teAte-Kk...

부스트 컨버터

Image
프로젝트를 진행하다 보면 순간적으로 높은 전류 소비, 다이오드, 레귤레이터 혹은 장치간 연결에 사용된 케이블 저항으로 인해  전원 공급이 불안정해 지는 상황이 발생한다. 이런 현상을 감안하여 실제 필요한 것보다 더 높은 출력을 갖고 있는 제품들이 있다. 이는 컴퓨터 주변기기에서도 불 수 있으며 USB 또 어댑터의 DC 출력이 정직하게 5.0V 가 아닌 5.1~5.2V 인 제품을 본 적 있을 것이다. 반대로 모자란 녀석들도 있다. 이렇게 타겟 장치가 요구하는 전압보다 어느 정도 높게 출력하면 선형 동작을 위한 헤드룸을 확보할 수 있다. (여유가 생긴다는 말이다.) 이번에 만들 회로는 TPS61090을 사용하여 리튬 이온/폴리머 전지의 3.7V 전압을 5.5V 로 만드는 회로이다. TPS61090 제품은 1.8V ~ 5.5V 의 입력 전압, 최대 5.5V 까지 조절 가능한 고정 출력, 저전압 감지, 절전 모드 등 96% 효율을 가진 부스트 컨버터 이며, 단가는 1릴 기준 $1.2 정도 된다.  무엇보다 출력 전압을 프로그래밍 할 수 있는 점이 나에게 챠밍 포인트로 다가왔다. 다음은 TPS61090 제품의 데이터 시트에 나와있는 회로도이다. R1, R2, R3, R4 의 저항으로 LBI/LBO 임계 전압과 출력 전압을 프로그래밍 할 수 있다.  방정식은 다음과 같다. 출력 전압 방정식 1 : R3 =  R4 * ( Vo / 500mV - 1 ) R4 에는 200KΩ 이하의 값을 권장하고 있는데, 만약 200KΩ 보다 너무 낮은 저항을 사용하게 되면 R3 에 추가적인 병렬 MLCC 사용을 권장하고 있다. 이때 MLCC 의 용량은 계산 방정식은 다음과 같다. R3 병렬 접속 MLCC 용량 방정식 2 :  Cr3 = 10pF * ( 200KΩ / R4 - 1 ) 임계 전압 방정식 3 :  R1 = R2 * ( Vbat / 500mV -1 ) R2 저항은 500KΩ이하의 값이 권장된다 . Vbat 에는 LBI/L...

함수형 프로그래밍

## 함수형 프로그래밍(functional programming) 함수형 프로그래밍은 프로그래밍 방법론 중 하나로, 수학적 함수의 개념을 기반으로 한다. 상태와 가변 데이터를 최소화하고, 순수 함수를 조합하여 프로그램을 구성합니다. 이는 부수 효과를 줄이고, 코드의 예측 가능성과 재사용성을 높이는 데 중점을 둡니다. --- ## 순수 함수 예제 순수 함수는 동일한 입력에 대해 항상 동일한 출력을 반환하며, 함수 외부의 상태를 변경하지 않는다. C 언어에서의 예는 다음과 같다. ```c int add(int a, int b) { return a + b; } ``` --- ## 순수하지 않은 함수 예제 순수하지 않은 함수는 외부 상태를 변경하거나, 동일한 입력에 대해 다른 출력을 반환할 수 있다. C 언어에서의 예는 다음과 같다 ```c int counter = 0; void increment() { counter++; } ``` 이 함수는 전역 변수 counter의 값을 변경하므로, 외부 상태에 영향을 미치는 순수하지 않은 함수이다. --- ## 함수형 프로그래밍의 장점 - 가독성 향상: 순수 함수와 불변성을 강조하여 코드의 이해와 예측이 용이하다 - 디버깅 용이: 부수 효과가 없으므로, 함수 단위 테스트와 디버깅이 수월하다. - 병렬 처리 효율성: 상태 공유를 최소화하여 동시성 문제를 줄이고, 병렬 처리를 효율적으로 수행할 수 있다. --- ## 함수형 프로그래밍의 예 C 언어는 함수형 프로그래밍을 직접 지원하지 않지만, 함수 포인터와 고차 함수를 활용하여 일부 개념을 구현할 수 있다. 예를 들어, 배열의 각 요소에 함수를 적용하는 map 함수를 다음과 같이 정의할 수 있다. ```c void map(int* array, int length, int (*func)(int)) { for (int i = 0; i --- ## map의 개념 map 함수는 배열의 각 요소에 함수를 적용하여 새...

짱구개미와 곡물 창고

Image
짱구 개미를 위해 곡물 창고를 만들었다.  씨앗을 넣어주면 아래 구멍으로 씨앗들이 조금씩 나오는 원리다 그러나 이것 또한 개미들의 쓰레기 통이 될 수 있다.  왜냐하면 지금까지 여러 형태의 먹이 그릇을 만들어주었지만,  받은 먹이를 다 먹었거나 메뉴가 마음에 들지 않으면,  밥그릇이 쓰레기통이 되는 것을 어김없이 봐왔기 때문이다.  그래서 이번에는 쓰레기통을 쓰지 못 하도록 뚜껑을 만들었다.   바로 관심을 보여서 만족스러웠으나  선호하는 씨앗을 고르는 건지 쓰레기라 보는 것인지  씨앗을 뽑아서 집으로 가져가지 않고 주변에 둔다.  개미들은 재미있는 것이 어지럽히는가 싶을 때 그대로 방치하면,  어느새 알아서 청소하고 정리를 해준다. 가끔 보면 분리수거도 하는 것 같다. 곡물 창고의 구멍 크기를 조절해서 급수타워로 사용해도 좋을 것 같다. 제발 홍수만은 피하자 

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기