Defines

# board_stk541.h File Reference

This board is describes the STK541 that comes with Atmels ATAVRRZ541 Packet Sniffer Kit. More...

Go to the source code of this file.

## Defines
#define | DBG_DDR DDRD
#define | DBG_PIN (1<<PD0)
#define | DBG_PORT PORTD
#define | DDR_KEY DDRE
#define | DEFAULT_SPI_RATE (SPI_RATE_1_2)
#define | FT245_DDR DDRE
#define | FT245_INIT()
#define | FT245_PIN PINE
#define | FT245_PORT PORTE
#define | FT245_RX_DATA() ((FT245_PIN & FT245_RXF))
#define | FT245_RXF _BV(7)
#define | FT245_TX_DATA() ((FT245_PIN & FT245_TXE))
#define | FT245_TXE _BV(6)
#define | HIF_IO_ENABLE XRAM_ENABLE
#define | HIF_NO_DATA (0x0100)
#define | HIF_TYPE (HIF_FT245)
#define | HIF_USB_READ() (*(volatile uint8_t*)(USB_FIFO_AD))
#define | HIF_USB_WRITE(x) do { (*(volatile uint8_t*)(USB_FIFO_AD)) = (x); }while(0)
#define | HWTIMER_REG (TCNT1)
#define | HWTIMER_TICK ((1.0*HWTMR_PRESCALE)/F_CPU)
#define | HWTIMER_TICK_NB (0xFFFFUL+1)
#define | HWTMR_PRESCALE (1)
#define | INVERSE_KEYS (1)
#define | LED_DDR DDRE
#define | LED_MASK (0x1c)
#define | LED_NUMBER (3)
#define | LED_PORT PORTE
#define | LED_SHIFT (2)
#define | LEDS_INVERSE (1)
#define | MASK_KEY (0x20)
#define | PIN_KEY PINE
#define | PORT_KEY PORTE
#define | PULLUP_KEYS (1)
#define | RX_HAS_DATA (0)
#define | RX_HAS_NO_DATA (FT245_RXF)
#define | SHIFT_KEY (5)
#define | TIMER_INIT()
#define | TIMER_IRQ_vect TIMER1_OVF_vect
#define | TIMER_POOL_SIZE (4)
#define | TIMER_TICK (HWTIMER_TICK_NB * HWTIMER_TICK)
#define | TX_IS_BLOCKED (FT245_TXE)
#define | TX_IS_READY (0)
#define | USB_FIFO_AD 0xF000
#define | XRAM_ENABLE()

## Detailed Description

This board is describes the STK541 that comes with Atmels ATAVRRZ541 Packet Sniffer Kit.

The Packet Sniffer Kit STK541 is a carrier board, which fits on top of a STK500 and is used for the radio controller board family. The transceiver wiring fits the common RCBs. The wiring of the radio and the ATmega is shown below:

         AVR      RF230
         ---      -----
         PB4  -->  SLPTR
         P??  <--  MCLK
         PD4  <--  IRQ (ICP1)
         PB5  -->  RSTN
         PB0  -->  SS
         PB2  -->  MOSI
         PB3  <--  MISO
         PB1  -->  SCK

        The STK541 has no LEDS and Keys, so we define the ressources
        from the  RCB230 here.

        KEY: PE5
        LEDS: PE2:PE4

        DBG: PD0 - connector X20:2 (ground X20:1)

    Fuses/Locks:
         LF: 0xe2 - 8MHz internal RC Osc.
         HF: 0x11 - without boot loader
         HF: 0x10 - with boot loader
         EF: 0xff
         LOCK: 0xef - protection of boot section

    Bootloader:
        Start at byte=0x1e000, address=0xf000, size = 4096 instructions/ 8192 bytes

    Atmel STK541 and Radio Controller Board

Build Options

- psk230 : STK541 + RCB230 prior V3.2 / V3.3.1 (AT86RF230A)
- psk230b : STK541 + RCB230 V3.2 / RCB230 V3.3.1 (AT86RF230B)
- psk231 : STK541 * RCB231 V4.0.2 / RCB231ED V4.1.1
- psk212 : STK541 + RCB212SMA V5.3.2

## Define Documentation

#define FT245_INIT | ( |  | ) |

Value:

    do { \
               XMCRA |= (1 << SRE); \
               XMCRB = (1 << XMBK);\
               FT245_DDR &= ~(FT245_TXE|FT245_RXF);\
               FT245_PORT |= (FT245_TXE|FT245_RXF);\
            } while(0)

#define TIMER_INIT | ( |  | ) |

Value:

    do{ \
            TCCR1B |= (_BV(CS10));\
            TIMSK1 |= _BV(TOIE1); \
        }while(0)

Intialization of the hardware timer T1 (16bit)

- CS1[2:0] = 1 : Prescaler = 1
- WGM1[3:0] = 0 : Mode = 4 : CTC operation

Timer is clocked at F_CPU, and TIMER_IRQ_vect is called every 65535 ticks.

#define TIMER_IRQ_vect TIMER1_OVF_vect

Vector for Timer IRQ routine

#define XRAM_ENABLE | ( |  | ) |

Value:

    do {\
        DDRC = 0xFF;\
        PORTC = 0x00;\
        XMCRA |= (1 << SRE);\
        XMCRB = (1 << XMBK);\
        } while(0)