USBASP ATtiny85보드용 커넥터 제작

ATtiny85 보드를 프로그래밍을 할때마다 매번 선 체크해서 연결하는게 번거로와 PCB를 만들었습니다.

아래 사진은 이전에 작업하던 방식입니다.

가운데 있는 모듈이 이번에 만든 PCB보드입니다.

USBASP와 ATtiny85보드를 연결하기 쉽게 만들어 줍니다.

간단한 보드지만 프로그램 업로드 할때 바로 꽂아서 연결하니깐 훨씬 편하네요.

LGT8F328P 아두이노 나노 호환 보드

나노와 99%이상 호환이 가능하다는 LGT8F328P보드입니다. 가격은 1/2 – 2/3 수준인데 호환이 잘만 된다면 앞으로 이걸로 구입해서 작업해도 문제가 없겠네요.

가운데 메인칩에 마킹이 없습니다. ATmega328 카피 버전이 아닐까 생각이 됩니다.

아래의 홀텍 USB 칩입니다. 나노 클론에서 많이 쓰는 CH340G칩이 아니네요. 홀텍칩은 따로 USB 드라이버 안 잡아도 윈도우에서 자동으로 잡히네요.

아두이노 IDE에서 셋팅은 다음과 같습니다. Preferences에 아래의 링크를 추가해 주시면 됩니다.

https://raw.githubusercontent.com/dbuezas/lgt8fx/master/package_lgt8fx_index.json

다음에는 실제 프로젝트에서 구동해 보고 결과물을 올려야겠네요. 굳이 돈 더주고 나노를 살 필요는 없을거 같습니다.

MC14490 하드웨어 디바운스

하드웨어 디바운스되는 칩중에서 이 칩이 최고중의 하나가 아닐까 합니다. 

Features
• Diode Protection on All Inputs
• Six Debouncers Per Package
• Internal Pullups on All Data Inputs
• Can Be Used as a Digital Integrator, System Synchronizer, or Delay Line
• Internal Oscillator (R−C), or External Clock Source
• TTL Compatible Data Inputs/Outputs
• Single Line Input, Debounces Both “Make” and “Break” Contacts
• Does Not Require “Form C” (Single Pole Double Throw) Input Signal
• Cascadable for Longer Time Delays
• Schmitt Trigger on Clock Input (Pin 7)
• Supply Voltage Range = 3.0 V to 18 V

10nf를 사용했습니다. 100ms정도 타이밍으로 버튼 클릭 가능합니다.

테스트용 아두이노 코드입니다. 하드웨어적으로 처리하기 때문에 delay없이 작동합니다. 

int buttonPin = 3;         // the number of the input pin
int ledPin = 13;       // the number of the output pin

int state = 0;      // the current state of the output pin
int reading;           // the current reading from the input pin
int previous = 0;    // the previous reading from the input pin


void setup()
{
  pinMode(buttonPin,  INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  reading = digitalRead(buttonPin);

  if (reading == 0 && previous == 1)
  {
    state = !state;

    Serial.println("button pressed");
  }

  digitalWrite(ledPin, state);

  previous = reading;
}

PLL LCD 라디오 수신기

LCD 라디오 수신기 모듈로 라디오를 만들어 봅니다. RX, TX도 있어서 아두이노를 연결하여 명령어로 조정도 가능합니다. 다음번에는 그렇게 한번 만들어 봐야 할거 같네요.

제품 사양은 아래와 같습니다.

FM radio module / LCD version

Product parameters:
Output power: 500mW (drive headphones)
Frequency response range: 50Hz-18KHz
Channel: Stereo
Receiving frequency adjustment range:
Turn off campus broadcast 87.0MHz-108.0MHz,
Turn on campus broadcast 76.0MHz-108.0MHz Equivalent noise: ≥30dB
Supply voltage: 3.0V-5.0V
Current: 40mA

  • PLL digital frequency lock, no frequency
  • 30 level digital volume control
  • 76.0-108.0MHZ full coverage
  • Wide voltage 3-5V power supply
  • Automatic search storage function
  • Power off memory volume / frequency
  • Mono / Stereo Control
  • Support serial command control

Pinout

1 (L): left channel audio output
2(G): audio ground
3 (R): right channel audio output
4 (V+) : Short press volume + / long press continuous +
5 (V-): Short press volume – / long press continuous –
6(F+) : Short press a station / long press down to search for a station
7(F-) : Short press the previous station / long press to search for the station
8(P): Short press mute/long press full band search and save station
9 (DM): USB DM cable
10 (DP) : USB DP data cable
11 (TX): TTL serial port sender
12 (RX): TTL serial port receiver
13 (+5V): 5V power input (3-5V wide range)
14(G): power ground
15 (ANT): External FM radio antenna end

버튼 연결은 4번부터 8번까지 총 5개입니다. 버튼 반대쪽은 GND에 연결합니다.
이어폰잭에 연결해서 테스트 해봤습니다.

또 다른 Arduino Nano 보드들

오른쪽의 보드는 아두이노 나노보드인데 usb 칩이 CH340E 으로 구성되어 있습니다. 보통 많이 들어간 CH340G가 아닙니다. 이 칩은 크리스탈이 칩안에 구성되어 있다고 하네요.

왼쪽 보드는 아두이노 나노인데 메인칩이 ATmega328이 아닌 ATmega168 로 구성되어 있습니다. 2009년에 나온 Arduino Duemilanove에 들어간 칩이라서 메모리 구성이 반이네요.

AVRISP MKII

https://www.microchip.com/webdoc/avrispmkii/index.html

이 제품이 있으면 ATmel studio 7.0을 사용하여 프로그램밍이 가능합니다. 정품은 아니고 중국에서 만든 제품인데 프로그램에서는 avrisp mk2로 제대로 나옵니다. 가격은 1.5만원입니다. 메인칩은 Atmega128A가 들어가 있고 PDIUSBD12, 74HC4053D, 74HC4066D, AMS1117-3.3v로 구성되어 있네요.

ATtiny85 보드 업로드 하기

v-usb 방식으로 업로드 가능하지만 안정성이 떨어져서 좋지 않네요. usbasp 사용하는게 빠르고 확실합니다.

usbasp의 vcc는 attiny85보드의 5V, gnd-gnd로 연결합니다. 나머지 mosi, miso, slk, reset 연결해주면 됩니다.

보드 셋팅은 아래와 같습니다. Digispark로 디폴트 선택하면 되고 Programmer는 usbasp로 선택합니다.

스케치 메뉴에 있는 Upload Using Programmer를 클릭하면 프로그램 업로드가 완료됩니다.