이번에는 STM8을 살며시 살펴 보고자 한다.

 

설명 :

 

stm8s.pdf

 

 

표준 라이브러리 :

 

STM8S_StdPeriph_Driver.zip

 

 

표준 라이브러리및 기타 설명 :

 

stm8s-a_stdperiph_lib_um.zip

 

 

예제 소스 :

 

STM8S_StdPeriph_Examples.zip

 

 

셈플 회로도 :

 

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

STM8S slave SPI 살리기 및 인터럽트 살리기  (0) 2013.01.02
ST-LINK/V2 에 바리스터 달기  (7) 2012.12.27
[STM8L] 참고회로  (0) 2012.11.12
STM8 관련 국내 사이트  (0) 2012.11.12
[STM8] STM8L 해보기 6  (3) 2012.11.12

 

SPI의 사용

 

1    SPI의 기본사항

DATA를 시리얼 형태로 통신하는 방법은 많이 있다. 그 중 주변소자와 통신하는데 사용하는 대표적인 방식으로는 I2C,SPI 등을 말할 수 있으며 이번 장은 그 중 ADUC831에서 SPI MASTER 기능은 어떻게 사용하는지 설명 하려 한다.

 

2    SPI의 관련 레지스터

 

ADUC831 SPICON define

BIT7 

ISPI

1:SPI 인터럽트 동작조건 SPIDAT 전송이 완료되면 발생된다. 사용자의 프로그램에 의해 지워야 한다.

BIT6 

WCOL

1:SPI 전송을 위해 SPIDAT 잘못되면 발생된다.

사용자의 프로그램에 의해 지워야 한다.

BIT5 

SPE

1: SPI 사용 enable 설정

BIT4 

SPIM

SPI master/slave 모드 설정

1: master mode , 0:slave mode 

BIT3 

CPOL

Clock 이 발생하지 않을 때 핀의 상태를 나타낸다.

1: high 상태로 유지 , 0: low 상태로 유지

BIT2 

CPHA

DATA가 어떤 클럭에 동기 되는지 설정한다.

1: SCLOCK leading edge에 동기

2: SCLOCK trailing edge에 동기

BIT1 

SPR1

SPI bit 유지 시간을 설정 한다.(SPR1 SPR0 Selected Bit Rate)

00: fCORE/2,     01: fCORE/4,    10: fCORE/8,     11: fCORE/16

BIT0 

SPR0

 

 

3    SPI의 사용을 위한 CHIP 선정

 

SPI Master 활용예를 설명 들이겠습니다. 이를 위해 선정한 CHIP AD5232 2개의 저항을 가지고 있는 Digital Potentiometer 입니다. 내부에 EEPROM(EEMEM) 가지고 있으며 이와 연결된 가변저항 조정 레지스터(RDAC) 있으며 , 기타 콘트롤 부분이 있습니다. 자세한 사항은 관련 매뉴얼을 참고해주시면 감사하겠습니다.

 

EEMEM 비활성 메모리이기 때문에 이곳에 값을 저장해 두면 파워온 자동으로 RDAC 조정하여 저항을 조절하게 됩니다. 그러므로 초기값 설정을 원한다면 EEMEM 사용하면 됩니다. RDAC 값의 조정에 따라 아래의 그래프와 같이 저항성분이 변하게 되어 있습니다.

 

 

SPI 통신 파형은 가지 방식을 지원 합니다. 그러므로 좀더 사용이 편리합니다.

 

기본회로는 아래와 같습니다. 정확한 회로 해석은 ADUC831 AD5232 매뉴얼을 참고해 주시기 바랍니다.

 

회로는 A-GND , B-GND 가지 저항값을 조절하는 회로이다. P1.0 Chip select 용이며 SCLOCK MOSI ADUC831 원래 기능을 활용합니다.

 

4    AD5232 제어 명령

 

AD5232 COMMAND define

상위 8BIT

하위 8BIT

(DATA)

내용

상위 4BIT

(COMMAND) 

하위 4BIT

(ADDRESS) 

0000

xxxx

xxxxxxxx

NOP

0001

000'A0'

xxxxxxxx

EEMEM(A0)의값->RDAC(A0), 실행 후 nop 실행, power up후 실행     

0010

000'A0'

xxxxxxxx

RDAC(A0)의값->EEMEM(A0)

0011

<<ADDR>>

D7 - D0

DATA의값->EEMEM(ADDR)

0100

000'A0'

xxxxxxxx

RDAC(A0)의값을6db감소,ZERO에서 멈춤

0101

xxxx

xxxxxxxx

모든RDAC의값을6db감소,ZERO에서 멈춤

0110

000'A0'

xxxxxxxx

RDAC(A0)의값을'1'감소,ZERO에서 멈춤

1000

0000

xxxxxxxx

기존의 EEMEM값을 RDAC에 다시 넣기(RESET)

1001

<<ADDR>>

xxxxxxxx

EEMEM<<ADDR> 의 값을 0으로 설정

1010

000'A0'

xxxxxxxx

RDAC(A0)의값을0으로 설정

1011

000'A0'

D7 - D0

DATA의 값->RDAC(A0)

1100

000'A0'

xxxxxxxx

RDAC(A0)의 값을6db추가

1101

xxxx

xxxxxxxx

모든RDAC의 값을6db추가

1110

000'A0'

xxxxxxxx

RDAC(A0)의 값을'1'추가

1111

xxxx

xxxxxxxx

모든RDAC의 값을'1'추가

참고사항

<<ADDR>> 는 아래와 같다.

0000:RDAC1의EEMEM,0001:RDAC2의EEMEM,0010:USER1의EEMEM.....

1111:USER14의EEMEM

 

ZERO값은 50옴 저항 값을 가진다.

 

개인적으로 실험해본 결과 위의 명령 중 가장 적절하게 사용하는 방법은 DATA의 값->RDAC(A0) 을 하는 것이며, 만약 EEMEM에 저장하고자 한다면, DATA의 값->RDAC(A0) 을 한후에 RDAC(A0)의값->EEMEM(A0) 을 하는 것을 추천합니다.

다음 부분에서 실제로 사용한 예를 보여 드리겠습니다.

 

 

5    SPI를 사용한 AD5232 제어 SOURCE

 

Source SPI를 초기화 한다.

void openSPI()
{
    SPICON = 0x33;
}

 

Source AD5232의 RDAC조절하여 저항값을 조정한다.

void ad5232_ch_rdac_set(unsigned char sele, unsigned char ch, unsigned char dat)    
{                                            
    unsigned char ddllyy =0;
    unsigned char chip_sel =0;
    unsigned char chip_data =0;
    unsigned int sel =0;

    sel = ad5232_table[sele];
    chip_sel = HIGH_BYTE(sel);
    chip_data = LOW_BYTE(sel);

    ad5232_cs[chip_sel] = chip_data;

//ext_dvr_update1( (0xB0|ch) , dat );

    //txDat = (0xB0|ch);
    ISPI = 0;                     // Clear ISPI bit
    SPIDAT = (0xB0|ch);
    while(!ISPI);                 // Wait until tx complete

    //txDat = dat;
    ISPI = 0;                     // Clear ISPI bit
    SPIDAT = dat;
    while(!ISPI);                 // Wait until tx complete


    //ad5232_cs[chip_sel] = 0;
    //for(ddllyy =0; ddllyy <=1; ddllyy++);
    //ad5232_cs[chip_sel] = chip_data;
    //for(ddllyy =0; ddllyy <=1; ddllyy++);
    //ad5232_cs[chip_sel] = 0;

    ad5232_cs[chip_sel] = 0;
    //ad5232_cs[chip_sel] = chip_data;
    //ad5232_cs[chip_sel] = chip_data;
    ad5232_cs[chip_sel] = chip_data;
    ad5232_cs[chip_sel] = 0;

}

 

Source AD5232의 RDAC의 값을 EEMEM에 저장한다.

void ad5232_rdac_eemem_mov(unsigned char sele, unsigned char ch)    
{                                            
    unsigned char chip_sel =0;
    unsigned char chip_data =0;
    unsigned int sel =0;

    sel = ad5232_table[sele];
    chip_sel = HIGH_BYTE(sel);
    chip_data = LOW_BYTE(sel);

    ad5232_cs[chip_sel] = chip_data;

    ISPI = 0;                     // Clear ISPI bit
    SPIDAT = (0x20|ch);
    while(!ISPI);                 // Wait until tx complete

    ISPI = 0;                     // Clear ISPI bit
    //SPIDAT = dat;
    SPIDAT = 0;
    while(!ISPI);                 // Wait until tx complete


    ad5232_cs[chip_sel] = 0;
    ad5232_cs[chip_sel] = chip_data;
    ad5232_cs[chip_sel] = chip_data;
    ad5232_cs[chip_sel] = chip_data;
    ad5232_cs[chip_sel] = 0;

}

 

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

ABOV MC9x Code Generator  (0) 2014.06.19
8051 레지스터 자료  (0) 2012.11.15
[ADUC831] ADUC831 간단 매뉴얼 5  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 4  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 3  (0) 2012.11.12

ADC의 사용

 

1    ADC의 기본사항

 

ADUC831은 ADUC812에 비해 ADC기능이 추가 수정되었다. 예를 들어 ADC의 오차를 잡아 주기 위한 Calibration, ADC on/off, 내 외부 레퍼런스의 사용자에 의한 선정 등등.. 그럼 관련 레지스터를 다시 설명 아래에서 다시 설명 드리겠습니다.

 

 

2    ADC의 관련 레지스터

 

ADUC831 ADCCON1 define

BIT7 

MDI 

1:ADC 동작 , 0: ADC 동작정지

BIT6 

EXT_REF 

1:External REF , 0: Internal REF

BIT5 

CK1 

converting clock divider ratio (CK1,CK0 값에따라 adc clk = mclk/x 설정)

x값은-> 00 : 16 ,01 : 2 ,10 : 4 , 11 : 8

BIT4 

CK0 

BIT3 

AQ1 

ADC clk 몇변만에값을추출할것인가? (AQ1,AQ0)

00: 1 ,01: 2 ,10: 3 ,11: 4

BIT2 

AQ0 

BIT1 

TC2 

동작 시작울 timer2 오버플로우 발생으로 한다

BIT0 

EXC 

동작 시작을 외부 convst pin low 되면 한다

 

ADUC831 ADCCON2 define

BIT7 

ADCI

adc 인터럽트발생 bit

BIT6 

DMA

DMA 동작설정

BIT5 

CCONV

continuous conversion 로설정(연속적동작)

BIT4 

SCONV

single conversion으로 설정

BIT3 

CS3

컨버팅체널설정

0000: ch1 ,0001: ch2 ,0010: ch3 ,0011: ch4 ,0100: ch5 ,

0101: ch6 ,0110: ch7 ,0111: ch8 ,1000: 온도 , 1001: DAC1 ,

1010: DAC2 ,1011: AGND, 1100: Vref ,1111: DMA STOP

BIT2 

CS2

BIT1 

CS1

BIT0 

CS0

         :        

ADUC831 ADCCON3 define

BIT7 

BUSY

The ADC Busy Status Bit( 1 = busy)

BIT6 

GNCLD

Gain Calibration Disable Bit ( 1 = Disable)

BIT5 

AVGS1

Averages Selection(평균값 설정)

00 : 15 , 01 : 1, 10 : 31 ,11 : 63

BIT4 

AVGS0

BIT3 

CS3

사용안함

BIT2 

CS2

사용안함

BIT1 

TYPICAL

Calibration Type Select

1 :Gain Calibration(full-scale) , 0: Offset Calibration (zero-scale)

BIT0 

CSCALS0

Start Calibration Cycle( 1 시작 종료시 자동clear)

 

3    ADC의 관련 SOURCE

 

Source ADC오차를 잡아 주기 위해 Calibration 을 실행한다.


void ADC_Calibration()    // open adc
전에사용, only aduc83
{
    ADCCON1 = 0x8C;

    //To calibrate device offset:
    ADCCON2 = 0x0B;             //00001011 -> select internal AGND
    ADCCON3 = 0x25;             //select offset calibration
    while((ADCCON3&0x01));      //
완료확인

    //To calibrate device gain:
    ADCCON2 = 0x0C;             //00001011 -> select internal VREF
    ADCCON3 = 0x27;             //select offset calibration
    while((ADCCON3&0x01));      //
완료확인
}

 

Source ADC초기화를 실행한다.


void OpenADC(int ms) /* LAUNCH ADC CONVERSIONS */ // --> adc
{
    _xuint TM;

EADC = 0; // disable adc -in sfr
    if(ms ==0)        // convst pin ADC on/off .
    {
         ADCCON1 = 0xA1    ;        //1,0,1,0,0,0,1,0
    }
    else
    { //
타이머 인터럽트 활용
         ADCCON1 = 0xA2    ;        //1,0,1,0,0,0,1,0

     TM = 0x10000 - (_uint)((ms * 1000.0) / (OSC_DIVIDE/(OSC/1000000.0)));
     TH2 = HIGH_BYTE(TM); //define.h ((char)(n>>8))
     TL2 = LOW_BYTE(TM); //fefine.h ((char)(n & 0xff))

     RCAP2L = TL2 ; // timer2

     RCAP2H = TH2 ; // - in sfr

     TR2 = 1;             //T2CON = 0x04 ; // run Timer2
    }

ADCCON2 = 0x00 ; // sellect chan = chanal 0
EADC = 1; //enable ADC interrupt -in sfr
}

 

Source ADC값 처리한다..

xdata unsigned int ADC_BUFF[3];

void adc_int() interrupt 6
{
    int add_DA_M;        
    int add_DA_R;
    unsigned char ch_chk;

    if( (ADCCON3 & 0x80) == 0x80 ) return;     //adconverting..
진행중인지 확인

    add_DA_M = (((ADCDATAH & 0x0F) <<8 ) | ADCDATAL);
    ch_chk = (ADCDATAH >> 4) & 0x0F; //
체널만 읽어들인다.
    
    add_DA_R = (int)((0.61*ADMULTIPLE)*add_DA_M) ; // Calculation

 

    switch(ch_chk)
    {
    case 0: ADC_BUFF[0] = add_DA_R;
                 break;
    case 1: ADC_BUFF[1] = add_DA_R;
                 break;
    case 2: ADC_BUFF[2] = add_DA_R;
             break;
        default:
     break;
}

ch_chk++;
if(ch_chk >= ADC_MAX_CH)
{
ch_chk =0;
}

ADCCON2 = ch_chk;     //체널변경

 

 

4    ADC의 관련 기타사항

 

회로 구성 시 주의 해야 할 사항이 있습니다. 노이즈 제거를 위해 다음 그림과 같이 구성하는 것을 추천하며 OPAMP를 연결하기 어렵다면 저항과 케페시터는 꼭 사용하는 것을 추천합니다.

 

레퍼런스 내부 선택 회로

 

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

8051 레지스터 자료  (0) 2012.11.15
[ADUC831] ADUC831 간단 매뉴얼 6  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 4  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 3  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 2  (0) 2012.11.12

 

내부 XRAM과 스텍 포인트 이동

  1. 내부 XRAM 사용

ADUC831은 8052의 기본 RAM 공간외에 외부 메모리처럼 사용 가능한 XRAM이라는 것을 가지고 있다 이를 사용하기 위해서는 레지스터를 설정해 주어야 한다. 레지스터는 CFG831로 이중 BIT0를 설정하여 사용할 수 있다.

주의할것응 CFG831 비트단위 설정이 된다.

Source 사용예

 

    CFG831 |= 0x01;         

 

  1. 스텍 포인터의 이동

ADUC831은 스택은 8052의 기본 RAM 공간에서만 사용 하는 것과는 달리 XRAM도 스택영역으로 사용이 가능하다. 그 외 기능은 ADUC812와 같이 데이터 메모리 공간을 0xFFFFFF 까지 확장할 수 있습니다. 2개의 DPTR의 사용은 ADUC831을 지원하는 컴파일러에서 설정하여 사용하시면 됩니다. 또한 주의할 것은 CFG831 비트단위 설정이 된다는 것입니다. 외에 CFG831 매뉴얼을 참고해 주세요

 

Source 사용예

 

    CFG831 |= 0x10;         

 

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

[ADUC831] ADUC831 간단 매뉴얼 6  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 5  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 3  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 2  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 1  (0) 2012.11.12

 

EEPROM

 

1    EEPROM 기본사항

 

ADUC831은 Flash/EE data memory 라고 하는 EEPROM을 4Kbyte를 가지고 있습니다. 그 처리방법은 ADUC812와 같습니다. 자세한 내용은 매뉴얼을 참고해 주시기 바랍니다. 본 문서에서는 www.keil.com 에서 제공하고 있는 관련 소스를 소개해 드리고 싶습니다. 사용하기에 편리하게 되어 있습니다.

 

2    EEPROM 사용(SOURCE)

 

Define 

#define ADI_EE_READ_PAGE 1
#define ADI_EE_WRITE_PAGE 2
#define ADI_EE_ERASE_PAGE 5
#define ADI_EE_ERASE_ALL 6
//#define ADI_EEMEM_SIZE 640UL //audc812
#define ADI_EEMEM_SIZE 4096UL //audc831

 

char flash_erase_all (void);

unsigned long flash_size (void);

unsigned long flash_read (
void *buffer, /* Buffer to fill */
unsigned long len, /* Bytes to read */
unsigned long address); /* FLASH address to read from */

unsigned long flash_write (
const void *buffer, /* Buffer to save */
unsigned long len, /* Buffer length */
unsigned long address); /* FLASH address to write to */

 

Source #1 플레쉬 전체영역 삭제

char flash_erase_all (void)
{
    ECON = ADI_EE_ERASE_ALL;
    return (0);
}

 

Source #2 플레쉬 전체 사이즈 확인

unsigned long flash_size (void)
{
    return (ADI_EEMEM_SIZE);
}

 

Source #3 플레쉬 에서 DATA 읽기

unsigned long flash_read ( void *buffer, unsigned long len, unsigned long address) /* Buffer to fill, Bytes to ,FLASH address to read from */
{
    unsigned char *s = buffer;
    unsigned long i;
    unsigned int addr;
    
    if (address >= ADI_EEMEM_SIZE) return (0UL);    
    addr = (unsigned int) address;    


    EADRL = addr >> 2;
    ECON = ADI_EE_READ_PAGE;

    for (i = 0; i < len; i++)
    {
         switch (addr & 0x03)
         {
             case 0: s[i] = EDATA1; break;
             case 1: s[i] = EDATA2; break;
             case 2: s[i] = EDATA3; break;
             case 3: s[i] = EDATA4; break;
         }

         if (++addr >= ADI_EEMEM_SIZE) break;

         if ((addr & 0x03) == 0)
         {
             EADRL = addr >> 2;
             ECON = ADI_EE_READ_PAGE;
         }
}
return (i);
}

 

 

 

Source #4 플레쉬 에서 DATA 쓰기

unsigned long flash_write ( const void *buffer, unsigned long len, unsigned long address)/*Buffer to save,Buffer length,FLASH address to write to */
{
    const unsigned char *s = buffer;
    unsigned int i;
    unsigned int addr;

    if (address >= ADI_EEMEM_SIZE)      return (0UL);
    addr = (unsigned int) address;
    for (i = 0; i < len; i++)
     {
     if ((i == 0) || (addr & 0x03) == 0)    //read page
     {
     EADRL = addr >> 2;
     ECON = ADI_EE_READ_PAGE;
     }
    //Update the data.
     switch ((addr++) & 0x03)     //data Àоî¿À±â
     {
     case 0: EDATA1 = s[i];
     break;
     case 1: EDATA2 = s[i];
     break;
     case 2: EDATA3 = s[i];
     break;
     case 3: EDATA4 = s[i];
     WRITE_EEPROM:
     ECON = ADI_EE_ERASE_PAGE;
     ECON = ADI_EE_WRITE_PAGE;
     break;
     }
    //Update the address.
     if (addr >= ADI_EEMEM_SIZE)
     break;
     }
    //Write the final page IFF address is not at the start of a new page.
    
if (addr & 0x03)
     {
         addr = ADI_EEMEM_SIZE;
         goto WRITE_EEPROM;
     }

    return (i);
}

 

Source #5 사용예

    unsigned char buf;

 

//내부flash 메모리에저장 Comm0.RxBuff[1]에 들어있는 값을 Flash/EEPROM 번지로 하고

// buf의 값을 저장한다. 1로 설정되어 1byte 저장된다.

 

    buf = Comm0.RxBuff[1] - 0x20;

    flash_write(&buf, 1, (unsigned long)Comm0.RxBuff[1]);        

 

//일정범위(system_set 사이즈) 만큼 DATA를 읽어 온다.

    flash_read (&system_set, sizeof(system_set), 0);

 

//일정주소에서 data를 한바이트 읽어 온다.

flash_read( &buf, 1, (unsigned long)Comm0.RxBuff[1]);

 

 

 

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

[ADUC831] ADUC831 간단 매뉴얼 5  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 4  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 2  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 1  (0) 2012.11.12
[ADUC812] ADUC812 설명 8  (0) 2012.11.10

 

비교사항

 

ADUC831은 ADUC812의 업그레이드 버전이라고 할 수 있습니다. 그래서 ADUC812와 ADUC831의 다른 부분 중 중요한 부분을 설명 드리고자 합니다.

 

내용

ADUC812 

ADUC831 

ADC 속도

최대 200ksps

최대 247ksps

Flash program memory

8k 

62k 

Flash/EE data memory 

640byte 

4kbyte 

Data ram 

256byte 

2304byte

기본 256byte

내부확장 2048 byte

Stack 이동

불가

가능

PWM 

없음

2개

DPTR 

1개

2개

 

위 표와 같이 메모리 관련하여 양이 많이 증가한 것을 볼 수 있습니다. 그래서 기존에 ADUC812를 사용하면서 메모리가 부족했던 점이 많이 줄어 들었습니다.

 

위 표에서는 설명 드리지 않았지만 ADC기능이 많이 추가 되었습니다. ADC 기능은 추후 다시 설명 드리겠습니다. 그리고 2 체널의 PWM이 추가되었으며 부분적으로 수정된 기능이 많이 있습니다. 예를 들어 Timer3와 같이 UART전용 타이머가 추가되었으며, RTC로 대신 사용 가능한 TIC가 있으며, DPTR이 2개가 되었으며, STACK 포인트도 이동이 가능한 것을 들 수 있습니다. 아래 그림 중 색칠이 되어 있는 블록 부분을 보시면 되겠습니다.

 

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

[ADUC831] ADUC831 간단 매뉴얼 4  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 3  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 1  (0) 2012.11.12
[ADUC812] ADUC812 설명 8  (0) 2012.11.10
[ADUC812] ADUC812 설명 7  (0) 2012.11.10

 

시작 하기 전에

 

8051 core를 사용한 수많은 MCU 중에서 아날로그 디바이스에서 판매되는 ADUCxxx군은 아날로그 기능이 강화된 프로세서 군입니다. 이번에 소개하는 ADUC831은 ADUC812가 업그레이드 된 칩이라고 생각하면 됩니다.

그래서 ADUC812 Manual을 먼저 참고하시길 바랍니다. ADUC831을 사용하거나 공부할 때 좋은 참고 자료가 되었으면 좋겠습니다. 물론 부족하거나 잘못된 부분이 많지 않을까 합니다. 좀더 자세한 내용이 필요하신 분은 아날로그 디바이스사에서 제공하는 문서를 참고해 주시길 바랍니다. 감사합니다.

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

[ADUC831] ADUC831 간단 매뉴얼 3  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 2  (0) 2012.11.12
[ADUC812] ADUC812 설명 8  (0) 2012.11.10
[ADUC812] ADUC812 설명 7  (0) 2012.11.10
[ADUC812] ADUC812 설명 6  (0) 2012.11.10

봄이 되면 궁평항에 전어가 많이 몰려 온다.

 

재미있는 낚시(?) 법이 있어서 소개해 본다.

 

먼저 바다 수면에 등을 설치 한다. 설치된 등 옆으로 여러 먹이 활동을 하는 생물들이 몰려든다.

 

지나가던 전어가 이 먹이를 먹기위해 몰려 든다.

 

몰려든 전어를 뜰채로 잡아 올린다.

 

전등을 만들어 보았다.

 

물이 들어가지 않는 박스에 LED 띠를 넣어서 고정한다.

 

 

12V 건전지를 넣고 스치로폴로 움직이지 않도록 고정한다.

전원를 키고 뚜껑을 닫으면 끝

흘러가지 않도록 끈도 잘 묶어야 한다.

 

 

그럼 몇마리의 전어를 잡을수 있다. 그러나 현지 주민처럼은 잡을수 없었다.

 

 

 

'생활 > 낚시' 카테고리의 다른 글

나의 광어 포인트 1  (0) 2012.11.13
삼길포 도비도 좌대 고찰  (0) 2012.11.13
장고항 좌대 낚시  (0) 2012.11.13
추천 좌대  (0) 2012.11.12
시화 방조제 장어 낚시  (0) 2012.11.12

+ Recent posts