반응형

 

 

 

 

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
반응형
반응형

 

 

 

 

 

소스를 긁어서 복사 붙이기 했더니... 역시나 빨간줄....

Thread 를 사용하려는데 어떻게 하는지 잊었다.

아래와 같은 코드를 사용하려면...

 

new Thread(new ThreadStart(DoRoutine)).Start(); // 쓰레드 정의

 

using System.Threading;

 

를 사용해야 한다.

즉, Thread 를 사용하려면 System.Threading Namespace 를 써야 한다.

빨간줄이 나왔다고 당황하지 말고 써 주자.

 

System.Threading Namespace에 대한 내용은 아래 링크 참고.

 

docs.microsoft.com/en-us/dotnet/api/system.threading?view=net-5.0

 

System.Threading Namespace

Provides classes and interfaces that enable multithreaded programming. In addition to classes for synchronizing thread activities and access to data (Mutex, Monitor, Interlocked, AutoResetEvent, and so on), this namespace includes a ThreadPool class that a

docs.microsoft.com

Provides classes and interfaces that enable multithreaded programming.

이라고 되어 있다. 

Thread외에 멀티쓰레드 프로그래밍을 사용하는 인터페이스와 클래스를 제공한다. 

 

Thread Class는 아래 링크 참조.

 

docs.microsoft.com/en-us/dotnet/api/system.threading.thread?view=net-5.0

 

Thread Class (System.Threading)

Creates and controls a thread, sets its priority, and gets its status.

docs.microsoft.com

예제 소스도 잘 나와 있으니 참고하자!

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

C# Winform program 에서 첫 번째 클래스

기초적인 지식 없이 인터넷의 소스와 참고 자료로만 프로그램 하다 보니 이런일이 발생한다.

 

 

기본 Winform 프로젝트를 만들고 사용자 정의 class를 Form1.cs 소스 내에서 제일 위에 넣었더니 위와 같은 

메시지가 나오면서 폼이 디자이너에서 열리지 않는다. ㅡ.ㅡ;

 

Form1 이 디자인 가능하려면 첫 번째 클래스어야 한다.

Visual Studio 에서 디자이너는 파일의 첫 번째 클래스를 사용해야 합니다.

이렇게 나와있네...

 

아래는 실수로 한 코드 Form1 보다 앞에 두었다. 이와 같이 하면 안 된다. 

 

 

잊어버리지 말고 주의하자.

C# 제대로 공부해야지... ^^

 

 

 

 

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

Color Scripter의 배경색과 스타일을 바꾸고 싶어서 확인해 보았다.

스타일 패키지를 선택해서 간단히 바꿀 수 있다.

 

추가적인 기능으로 확장 패키지가 있어서 이것을 사용하는 방법을 확인해 보았다.

 

확장 스토어를 누른다. 

 

 

여기서 내가 원하는 스타일 패키지를 선택한다.

나는 추천 스타일패키지에서 "기본패키지" 를 선택하였다. 

 

 

다시 편집 페이지로 어떻게 돌아올지 고민했는데...

왼쪽 위의 이미지를 클릭하면 편집 페이지로 돌아온다. 

 

 

스타일패키지를 선택하면 내가 확장스토어에서 선택한 패키지가 추가되어 있다.

확장스토어에서 선택한 패키지는 plugin 이라고 표시되어 있다.

여기서 기본패키지 plugin 을 선택.

 

 

초기 스타일에서 선택된 스타일로 변경되었다. 

 

 

아래는 변경된 스타일패키지를 적용하여 복사한 내용이다.

 

1
2
3
4
5
/* color highlighter css */
.colorscripter-code { margin: 5px auto 20px; }
.colorscripter-code-table {display: block; overflow-x: auto;}
.colorscripter-code-table > tbody > tr > td:nth-last-of-type(2) {width:100%;}
 
cs

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

블로그에 소스 코드를 올리는데 소스 코드가 표시되는 것이 마음에 들지 않았다.

 

페이지의 전체 폭에 맞게 나와야 일관성이 있는데...

소스 코드의 폭에 맞추어서 블로그에 표시되어 소스 코드가 표시되는 부분이 일관적이지 않고 소스 코드의 폭 길이에 따라 변했다.

아래와 같이 전체 폭에서 코드가 일 부분만 표시되어 있다.

 

 

그래서 다른 Highlight code 방식을 찾고 있었는데...

아래 링크를 통해 Color Scripter를 사용하여 소스 코드를 게시할 때 폭을 조절하는 부분을 수정할 수 있었다.

자세한 내용은 아래 링크를 참조~

 

purplechip.tistory.com/40

 

Color Scripter 사용 시 코드 블럭 width 조정하기

HTML/CSS 수정에 대한 기초적인 글은 아래 글에서 참고바란다. 2020/05/03 - [정보] - 티스토리 HTML/CSS 수정하기 Color Scripter를 사용하던 중 디자인적으로 불만이 하나 생겼다. 그것은 바로 코드의 최대 l

purplechip.tistory.com

 

스킨 편집 으로 들어가서 CSS 부분을 수정한다.

 

 

그런데 위 링크에서 소스를 그대로 가져와서 적용해 보니 내가 쓰는 스킨에서는 적용되지 않았다. ㅡ.ㅡ;

 

 

내 스킨에서는 .area_view 부분을 찾을 수 없어서 아래와 같이 수정해 보았다.

그랬더니 소스 코드가 페이지 폭에 맞게 확장되어 표시되었다.

 

 

 

참고로 웹 페이지에서 오른쪽 클릭하여 페이지 소스 보기를 보면 아래와 같이 Color Scripter 부분이 있다.

CSS를 모르겠지만 아래 부분의 class="colorscripter-code" 부분과 관련된 것 같다.

 

아래에 코드를 추가하였으니 참고하세요.

 

1
2
3
4
5
6
/* color highlighter css */
.colorscripter-code { margin: 5px auto 20px; }
.colorscripter-code-table {display: block; overflow-x: auto;}
.colorscripter-code-table > tbody > tr > td:nth-last-of-type(2) {width:100%;}
 
 
cs

 

 

 

 

 

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
반응형

 

 

 

 

 

티스토리의 기본 코드 블럭과 하이라이트가 마음에 들지 않아서

블로그의 소스코드를 이쁘게 구문 강조하기 위해 다른 사람들이 쓰는 것 처럼

Color Scripter를 적용하기로 결정했다.

 

그런데 내 블로그에 사용하려다 보니 일부 영역 복사 허용이 적용되어 있어서 코드 작성할 때 조금의 작업이 더 필요했다.

참고로 내 블로그에는 아래 내용이 적용되어 있어서 코드를 복사할 수 있게 해 놓았다.

 

kgkang.tistory.com/123

 

210123 티스토리 블로그 복사방지 일부 영역 복사허용

블로그의 복사방지를 하지만 일부영역을 복사 허용하도록 하는 방법을 찾던 중 아래 블로그 글을 이용하여 이 기능을 설정할 수 있는 방법을 알게 되었다. 자세한 내용을 알려면 아래 링크를 참

kgkang.tistory.com

 

Color Scripter의 적용 방법은 간단하다.

1. Color Scripter 사이트에 자신의 코드를 쓴다.

 

colorscripter.com/

 

Color Scripter

Simple & Flexible Syntax HighLighter

colorscripter.com

 

2. 왼쪽 아래의 HTML로 복사 버튼을 누른다.

 

 

 

3. 코드 창이 나오면 Ctrl + V (복사)를 한다.

  요즘은 이 창이 뜨면 기본적으로 클립보드에 복사가 되어 있는데 Color Scripter는 그렇지가 않다. 

  반드시 Ctrl + V (복사)를 해 주어야 한다.

 

 

4. 티스토리 블로그에서 내용을 작성 후 작성 모드를 변경한다.

  반드시 내용 작성 후 작성 모드를 변경해야 한다. 그리고 HTML 모드로 수정을 완료해야 한다.

  다시 기본모드로 돌아오면 기본모드로 바뀌면서 HTML이 조금 변경되는 경우가 있었다.

 

5. HTML 모드에서 Color Scripter에서 복사한 내용을 붙여넣기 한다.

 

 

6. 보통 여기까지만 하면 된다. 내 블로그의 경우 소스 코드를 복사 가능하도록 하기 위해 코드 태그를 추가한다.

  Color Scripter로 복사된 코드의 첫 부분과 끝 부분에 <code> ... </code> 태그를 추가한다.

 

 

7. 마지막으로 완료 버튼을 눌러 글을 등록한다.

 

 

 

 

 

 

728x90
반응형

+ Recent posts