2018년 5월 20일 일요일

실장 방법에 따른 Chip 종류

목적: Chip의 Datasheet를 볼 때 PIN Map을 참조해야 하는데 하나의 Chip이라도 다른 형태의 PIN이 존재하기 때문에 어떤 핀을 참조해야 하는지 모르는 경우가 있다. 그 이유가 QSOP, QFN 등의 단어들과 함께 나오는데 이를 이해하기 위함이다.


내용: Chip은 Board에 실항하는 방법에 따라 모양이 달라지는데 Lead 가 있는 타입과 없는 타입이 나눠지는 경우, 그리고 더 자세하게 나눠지는 경우 들이 있다.
QSOP: Quarter-size small-outline package
QFN: quad-flat no-leads







2018년 5월 18일 금요일

I2C 통신 속도 분석

목적: Chip 의 Register에 적혀있는 I2C 의 속도 설명을 이해한다.

Datasheet 내용
I2C Master SCL High Time This field configures the high pulse width of the SCL output when the Serializer is the Master on the local I2C bus.
Units are 40 ns for the nominal oscillator clock frequency. The default value is set to provide a minimum 5us SCL high time with the reference clock at 25 MHz + 100ppm.
The delay includes 5 additional oscillator clock periods. Min_delay = 39.996ns * (SCL_HIGH_TIME + 5

분석
1. SCL High Time 이 8bit, SCL Low Time 이 8bit 로 Register에 적혀 있다.
    - I2C 통신에 사용되는 Clock의 신호가 High 로 유지되는 시간과 Low로 유지되는 시간을 설명해주는 내용이다.
2. 두 Register의 기본값은 0x79, 0x79로 동일하다.
3. Units are 40ns for the norminal oscillator clock frequency.
    - 하나의 단위는(여기서 SCL의 High 가 한번 유지되는 시간이나 Low가 유지되는 시간) 40ns 이다. 기본값(여기서는 0x79)는 SCL High나 Low 유지되는 시간의 최소값인 5us 를 만족하기 위해서 입력되어 있다.
    - 여기서는 reference clock이 25MHz 라고 되어 있는데 이 clock은 PCLK 과 동일한 것인지
    - clock 이 25MHz 라면 frequency 는 40ns
    - 계산 식으로는 Min-delay = 39.996ns * (SCL_HIGH_TIME + 5) 일때 'SCL_HIGH_TIME' 를 0x79(121) 로 변환하면 39.996ns * (121 + 5) = 5039.496ns 가 된다. 이는 약 5um 으로서 최소값 5um 를 만족 한다.
    - SCL High Time이 5.039496um 이고 SCL Low Time이 5.039496um 라는 것은 하나의 cycle이 10.07899um 라는 것으로 99,216.27083 이라는 숫자가 나오며 99.2162783 KHz로 계산된다.
    - 최종적으로 reference clock 이 25MHz 의 clock 이라면 0x79 를 기본 값으로 하는 I2C SCL High, I2C SCL Low 값은 약 100KHz 의 I2C Clock Frequency 를 의미한다.
4. 그러면 여기서 100ppm 은 무엇인가
5. remote delay



2018년 5월 12일 토요일

Excel VBA 기본

목적: 간단한 VBA 코드가 필요할 경우(Macro 작성) 기본 문법도 모두 검색해서 찾아보기 때문에 효율성이 떨어지고 내가 제대로 알고 있는지 의구심이 들 때가 있기 때문에

프로그램 설명: 1번 Row 부터 800번 Row 까지 이동하면서 1번 Column 에 특정 문자열이 들어 있으면 특정 명령을 수행한다.

1) 코드에는 아래와 같이 쓴다. Sub 와 함수 이름을 작성하고 괄호를 열고 닫은 후 엔터를 치면 End Sub 가 자동으로 나타난다. 이 말은 문법이 아직까지 틀린적이 없다는 것이다.
Sub MakeIndent()
End Sub

2) 사용할 변수 선언
Sub MakeUndext()
    Dim i, j, K As Integer
End Sub

3) For 구문 작성
Sub Makeindent()
    Dim i, j, K As Integer
    For i=1 To 800 
    Next
End Sub

4)  특정 문자열이 있는지 확인
Sub Makeindent()
    Dim i, j, K As Integer
    For i=1 To 800
        if ( inStr(Cells(i, 1), "Heading") ) Then
        Endif
    Next
End Sub

5) 특정 행동을 실행
Sub Makeindent()
    Dim i, j, K As Integer
    For i=1 To 800
        if ( inStr(Cells(i, 1), "Heading") ) Then
            j = MID(Cells(i, 1), 9, inStr(Cells(i, 1), "&") - 9)
            For k To j
                ' 오른쪽으로 Shift 하는 코드를 넣는데 이런 부분은 Macro 기록으로 실행한 뒤 복사해서 사용하면 된다.
            Next
        Endif
    Next

2018년 4월 12일 목요일

2018년 3월 9일 금요일

Folder 자동으로 생성, 번호순으로

참조: Link

FOR /L %N IN (1,1,500) DO md "JiraIssue_%N"

요약
FOR /L 는 기본 키워드로서 For Loop를 돌려주고
이때 N은 변수 명으로 1부터 1씩 500까지 번호를 돌려주면서 폴더 만들고(md) 그때의 이름은 JiraIssue_%N 이다.

---

FOR /L
Conditionally perform a command for a range of numbers.

Syntax 
      FOR /L %%parameter IN (start,step,end) DO command

Key
   start       : The first number 
   step        : The amount by which to increment the sequence
   end         : The last number

   command     : The command to carry out, including any
                 command-line parameters.

   %%parameter : A replaceable parameter:
                 in a batch file use %%G (on the command line %G)

2018년 3월 2일 금요일

I2C 는 무엇인가?

참조: Link

I2C 버스는 동일한 회로 기판에있는 구성 요소간에 쉽게 통신 할 수 있도록 1980 년대 초에 Philips에서 설계되었습니다. Philips Semiconductors는 2006 년 NXP로 이름이 변경 되었습니다.

I2C 라는 이름은 "Inter IC"를 의미 하는데. IIC 또는 I²C 버스라고도 불립니다.

본래의 통신 속도는 초당 최대 100kbps로 정의되었으며 많은 애플리케이션에서는 더 빠른 전송을 필요로하지 않습니다.  fastmode 는 400kbit이며 - 1998 년부터 - 고속 3.4Mbit 옵션도 사용할 수 있습니다. 최근에는 fast mode plus 라고 이들의 중간 범위의 전송 속도가 지정되었습니다. 이 외에도 Ultra Fast Mode UFM이 있지만 솔직히 실제 I2C 버스는 아니라고 할 수 있습니다.

I2C는 단일 보드 에서뿐만 아니라 케이블을 통해 연결된 구성 요소를 연결하는 데에도 사용됩니다. 단순함과 유연성은이 버스를 많은 어플리케이션에 매력적으로 만드는 주요 특징입니다.

가장 중요한 기능은 다음과 같습니다.

  • 케이블은 2 개만 사용 합니다.
  • 예를 들어 RS232와 같은 엄격한 baudrate 요구 사항이없는 경우 마스터는 버스 클럭을 생성합니다
  • 간단한 마스터 / 슬레이브 관계가 모든 구성 요소 사이에 존재합니다.
  • 버스에 연결된 각 장치는 고유 한 주소로 소프트웨어 주소 지정이 가능합니다
  • I2C는 중재 및 충돌 감지를 제공하는 진정한 다중 마스터 버스입니다.


더 배우고 싶습니까?
I2C 도구 및 소프트웨어를 찾고 계십니까?

당신이 고속 I2C 솔루션 을 찾든 USB I2C 인터페이스 찾든 상관없이, 버스를 모니터링하든 자신의 애플리케이션을위한 소프트웨어 플랫폼이 필요하든, 우리는 당신을 도울 수 있습니다!.

2018년 3월 1일 목요일

PyQt 사용간 메모

Python Code(Anaconda 환경) 에서는 문제없이 실행 되었는데 Pyinstaller로 exe 로 변형한 다음에는 출력 에러가 떴다.
문제는 PyQt의 plainTextEdit 에서 .toPlainText() 로 가져온 string format 이 QString 이었는데 이것이 처리되는것에 문제가 생긴 것이었고 str() 으로 변경한 후에는 문제가 사라졌다.