반응형

 

 

 

 

Serial EEPROM CAT24C32 Read/Write 구현

 

32-Kb I2C CMOS Serial EEPROM

즉, 4KByte 용량이다.

 

 

현재 회로 구현에서 A2, A1, A0를 Low로 연결하였기에 

Slave address로 0xA0 를 사용한다.

 

 

Byte write sequence는 아래와 같다.

주의할 것은 Address가 두 번 전송된다는 것이다.

다른 EEPROM의 소스를 그대로 적용하였다가 안되어서 보니 이 부분의 차이가 있었다.

 

Write Cycle Timing은 아래와 같다.

5 ms 이니 Byte Write sequence를 연속으로 쓸 때는 주의해서 사용하자.

 

 

 

Read Sequence는 아래와 같다.

Selective Read Sequence는 주소를 지정하여 한 Byte를 읽는 것이다.

Immediate Read Sequence는 현재 지정된 주소의 다음 주소를 한 Byte 읽는 것이다.

즉, Selective Read (3번 주소) 를 한 후 Immediate Read를 하면, 4번 주소의 데이터가 읽힌다.

 

 

위의 자료를 토대로 하여 펌웨어를 구현하면 된다.

오래간만에 이것을 다시 보니 실수를 많이 했다. ㅡ.ㅡ;

소스코드는 다음에...

 

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

스탭모터의 가속 제어가 필요하여 검색하던 중 유용한 자료 발견!

스탭모터를 처음부터 빠른 속도로 돌리면 탈조가 나서 동작하지 않는 주파수대가 된다.

이것은 스탭모터 특성 그래프 참고! ^^

 

그래서 가속을 구현해야 하기에 아래 코드를 참고하여 구현해 보았다.

 

STM32 스탭 모터 Scurve 가속 코드 구현.

www.programmersought.com/article/85951804968/

 

STM32 stepper motor S curve acceleration code implementation - Programmer Sought

Equation of the S-curveThe graph in [-5, 5] is shown below: If you want to apply this curve to the acceleration and deceleration of the stepper motor, you need to translate the equation in the XY coordinate system and pull the curve up and down: The A comp

www.programmersought.com

자세한 내용은 위 링크 자료 참고.

이 사이트에 많은 좋은 자료가 있다. ^^

 

아래의 공식을 코드로 구현한 것이다.

 

 

온라인 컴파일러로 코드를 테스트 해 보았다.

 

 

아래는 결과를 그래프로 나타내 본 것.

이것을 역으로 적용하면 가속 구간으로 적용할 수 있다.

STM32의 출력 Period 를 반대로 주어야 하는 상황이라서 데이터를 반대로 나타내었다. ^^

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Online C compiler to run C program online
#include <stdio.h>
#include <math.h>
 
int main() {
    
    float fre[100];
    unsigned short period[100];
    float  len = 100;
    float fre_max = 18000;
    float fre_min = 1900;
    float flexible = 4;
    
    int i=0, j=0;
    float deno ;
    float melo ;
    float delt = fre_max-fre_min;
    for(; i<len; i++)
    {
        melo = flexible * (i-len/2/ (len/2);
        deno = 1.0 / (1 + expf(-melo));
        //expf is a library function of exponential(e) 
        fre[i] = delt * deno + fre_min;
        period[i] = (unsigned short)(10000000.0 / fre[i]); 
        // 10000000 is the timer driver frequency
        //printf("%d\n", period[i]);
        printf("%.0f, ", fre[i]);
        j++;        
        if(j > 9) {
            printf("\n");
            j = 0;            
        }
    }
 
    printf("\n");
 
    for(i=99; i>=0; i--)
    {
        printf("%.0f, ", fre[i]);
        j++;        
        if(j > 9) {
            printf("\n");
            j = 0;            
        }
    }
    
    return 0;
}
cs

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

X-NUCLEO-IHM01A1 Stepper Motor driver expansion board

NUCLEO-F401RE에 적용하여 테스트.

 

아래에 관련 자료를 모아서 압축하여 링크

관련 소스 자료. X-CUBE-SPN1

 

en.x-cube-spn1.vol1.egg
10.00MB
en.x-cube-spn1.vol2.egg
2.28MB

 

추가로 X-NUCLEO-IHM01A1 자료 묶음. (Steppter motor driver L6474 datasheet 포함)

 

x-nucleo-ihm01a1.zip
3.79MB

 

Compiler는 무료인 System Workbench for STM32 를 사용하였다.

 

X-NUCLEO-IHM01A1 보드에 모터를 연결하고 모터 전원을 인가하고 NUCLEO-F401RE 을 USB cable로 PC와 연결한다.

 

 

NUCLEO-F401REX-NUCLEO-IHM01A1를 연결하고 NUCLEO board에 USB로 연결하면 PC에서는 위와 같이 인식된다.

 

 

압축을 풀면 생성되는 STM32CubeExpansion_SPN1_V1.10.0 폴더내의 아래 위치를 소스를 컴파일러에서 열어서 테스트.

STM32CubeExpansion_SPN1_V1.10.0\Projects\Multi\Examples\MotionControl\IHM01A1_ExampleFor1Motor\SW4STM32\

컴파일러에 맞는 소스를 열면 된다.

 

 

소스에 아무런 수정도 하지 않고 컴파일하여 Debug folderSTM32F401RE-Nucleo.bin 파일이 생성되었다.

이 파일을 USB로 인식된 드라이버에 복사하면 Firmware가 자동으로 다운로드 되고 실행된다.

 

모터가 일정시간 정회전, 일정시간 역회전 하는 것을 확인할 수 있다.

 

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

210316 Serial EEPROM CAT24C32  (0) 2021.03.16
210310 스탭모터 S curve 가속 코드 구현  (0) 2021.03.12
210209 NFC tag NTAG213  (0) 2021.02.25
210223 엑셀로 오실로스코프 파형 분석  (0) 2021.02.24
210222 서보모터 인코더  (0) 2021.02.23
반응형

 

NFC tag NTAG213

 

NFC관련 자료를 찾다보면 NTAG213 이 많이 나온다.

NTAG213으로 된 card와 라벨이 많이 유통되고 있다.

 

 

NTAG213이 NFC의 표준인 줄 알았는데 NXP에서 나온 NFC IC 다.

이 IC를 이용하여 만든 NFC tag 제품이 많이 유통되고 있는 것이다.

 

참고로 NFC213의 datasheet 첨부.

 

NTAG213_215_216.pdf
1.58MB

 

NTAG213, 215, 216의 모델이 있는데 사용자 메모리 용량의 차이이다.

 

 

ST에서 NFC evaluation board가 있어서 검색해 보았는데 ST25 series의 TAG IC를 사용한다.

그런데 ST25를 적용한 TAG는 시중에 구할 수 없다. 쓸려면 직접 만들어야 한다.

 

 

 

 

 

 

 

728x90
반응형
반응형

 

 

환경) MSOffice 365

 

엑셀로 오실로스코프 파형 분석

텍트로닉스 오실로스코프로 파형을 캡춰 후 .csv로 저장을 하였다.

이 저장한 파형을 엑셀에서 불러와서 확인하려 한다.

 

첫 번째 셀이 시간, 두 번째 셀이 Ch1, 세 번째 셀이 Ch2 이다.

삽입 메뉴에서 추천차트를 선택했더니 원하는 형태의 차트가 자동으로 선택되지 않았다.

 

 

모든 차트 탭을 누르고,

분산형 >> 곡선 및 표식이 있는 분산형에서

아래와 같이 우측을 선택하면 추출한 데이터를 이용하여 파형을 확인할 수 있다.

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

210219 X-NUCLEO-IHM01A1 Stepper Motor driver  (0) 2021.03.09
210209 NFC tag NTAG213  (0) 2021.02.25
210222 서보모터 인코더  (0) 2021.02.23
210217 전해커패시터 파손 사례  (0) 2021.02.18
210131 실용전자공학 와이어 게이지  (0) 2021.01.31
반응형

 

 

 

비싸고 정밀제어가 되는 서보모터.

인코더가 어떻게 되어 있기에 정밀할 것일까?

궁금해서 서보모터 인코더의 구조를 찾아 보았다.

 

유튜브에 미쓰비시 서보 모터를 분해하신 분이 있다. ^^

 

 

간단히 몇 가지만 캡춰하면~

 

 

답글의 내용을 보면 유리디스크라고 한다.

 

 

서보모터에는 마그네틱 엔코더가 사용될 줄 알았는데 광학식 엔코더를 사용하고 있었다. ^^

 

이 외에도 재미있는 내용이 많은 유튜브다. 

가끔 찾아봐야겠다~ ^^

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

210209 NFC tag NTAG213  (0) 2021.02.25
210223 엑셀로 오실로스코프 파형 분석  (0) 2021.02.24
210217 전해커패시터 파손 사례  (0) 2021.02.18
210131 실용전자공학 와이어 게이지  (0) 2021.01.31
201231 WinMerge 파일 비교  (0) 2021.01.05
반응형

 

 

전원을 넣은 후 보드의 전원 LED가 안 켜져서 이상하다 싶었는데...

1 ~ 2 초 후 큰 소리와 함께 폭파!

왜 파손되었지?

 

 

확인을 해 보니 전원 케이블의 커넥터 부분 핀맵이 잘 못 되었다.

24V 전원이 거꾸로 인가 되었다.

220uF / 35V가 파손되었다.

 

파손되면서 윗 부분이 열리는 것은 보았지만 케이스가 완전히 파손되어 버린 것은 처음이다.

주변에 파편들과 함께...

 

초기 설계가 잘 못된 보드를 테스트용으로 쓰다보니 잘 못된 배선에 바로 파손되었다.

Fuse를 거쳐서 전원이 들어오도록 설계하여 잘 못된 전원 인가시 fuse가 먼저 파손되도록 해야 한다.

보드 설계할 때 항상 주의할 체크 포인트!!!

수정된 보드는 위 사항이 반영되어 있다. ^^

 

 

 

728x90
반응형
반응형

 

 

실용전자공학 책을 보면서 필요한 내용 정리.

와이어 게이지 부분.

 

예제 : 출력 전력이 0.1mW에서 5W까지 다양한 부하 장치를 부하에서 10 ft (= 3.048m) 떨어진 12V 전원에 연결해야 한다.

부하에서 끌어당겨 쓸 것으로 예상되는 전류가 무엇이든 안전하게 지원할 수 있는 최소 전선 치수를 AWG 표 (AWG table) 를 보고 결정한다.

 

 

최대 전력 준위만 고려하면 되므로 

I = P/V = 5W / 12V = 0.42A

 

표에 제공된 와이어 게이지만 선택하면 0.92 A의 22 게이지가 작동하지만, 2.32 A 정격의 18 게이지 전선을 보수적으로 선택할 수 있다. 전선의 길이가 너무 짧아서 전압이 거의 떨어지지 않으므로 길이를 무시할 수 있다.

 

다시 전자공학을 공부하기 위해 구매한 책인데 아주 유용한 내용이 많다. 

실용전자공학 책은 적극 추천한다. ^^

 

 

 

728x90
반응형

+ Recent posts