first commit
This commit is contained in:
91
inc/gpib_defs.h
Normal file
91
inc/gpib_defs.h
Normal file
@@ -0,0 +1,91 @@
|
||||
#ifndef GPIB_DEFS_H
|
||||
#define GPIB_DEFS_H
|
||||
|
||||
#include "ch32fun.h"
|
||||
|
||||
// #define GPIB_DEBUG 1
|
||||
|
||||
// Control Lines (Active LOW)
|
||||
#define PIN_EOI PB3
|
||||
#define PIN_REN PB11
|
||||
#define PIN_ATN PA8
|
||||
#define PIN_SRQ PA9
|
||||
#define PIN_IFC PA10
|
||||
#define PIN_NDAC PA11 // Handshake: Not Data Accepted
|
||||
#define PIN_NRFD PA12 // Handshake: Not Ready For Data
|
||||
#define PIN_DAV PA15 // Handshake: Data Valid
|
||||
|
||||
// GPIB Commands
|
||||
|
||||
// enum cmd_byte {
|
||||
// GTL = 0x1, /* go to local */
|
||||
// SDC = 0x4, /* selected device clear */
|
||||
// PP_CONFIG = 0x5,
|
||||
// GET = 0x8, /* group execute trigger */
|
||||
// TCT = 0x9, /* take control */
|
||||
// LLO = 0x11, /* local lockout */
|
||||
// DCL = 0x14, /* device clear */
|
||||
// PPU = 0x15, /* parallel poll unconfigure */
|
||||
// SPE = 0x18, /* serial poll enable */
|
||||
// SPD = 0x19, /* serial poll disable */
|
||||
// CFE = 0x1f, /* configure enable */
|
||||
// LAD = 0x20, /* value to be 'ored' in to obtain listen address */
|
||||
// UNL = 0x3F, /* unlisten */
|
||||
// TAD = 0x40, /* value to be 'ored' in to obtain talk address */
|
||||
// UNT = 0x5F, /* untalk */
|
||||
// SAD = 0x60, /* my secondary address (base) */
|
||||
// PPE = 0x60, /* parallel poll enable (base) */
|
||||
// PPD = 0x70 /* parallel poll disable */
|
||||
// };
|
||||
|
||||
#define GPIB_CMD_GTL 0x01 /* go to local */
|
||||
#define GPIB_CMD_SDC 0x04 /* selected device clear */
|
||||
#define GPIB_CMD_PP_CONFIG 0x05 /* parallel poll configure */
|
||||
#define GPIB_CMD_GET 0x08 /* group execute trigger */
|
||||
#define GPIB_CMD_TCT 0x09 /* take control */
|
||||
#define GPIB_CMD_LLO 0x11 /* local lockout */
|
||||
#define GPIB_CMD_DCL 0x14 /* device clear */
|
||||
#define GPIB_CMD_PPU 0x15 /* parallel poll unconfigure */
|
||||
#define GPIB_CMD_SPE 0x18 /* serial poll enable */
|
||||
#define GPIB_CMD_SPD 0x19 /* serial poll disable */
|
||||
#define GPIB_CMD_CFE 0x1F /* configure enable */
|
||||
#define GPIB_CMD_LAD 0x20 /* listen address (OR with addr) */
|
||||
#define GPIB_CMD_UNL 0x3F /* unlisten */
|
||||
#define GPIB_CMD_TAD 0x40 /* talk address (OR with addr) */
|
||||
#define GPIB_CMD_UNT 0x5F /* untalk */
|
||||
#define GPIB_CMD_SAD 0x60 /* secondary address base */
|
||||
#define GPIB_CMD_PPE 0x60 /* parallel poll enable */
|
||||
#define GPIB_CMD_PPD 0x70 /* parallel poll disable */
|
||||
|
||||
// Address Groups
|
||||
#define GPIB_LAG_BASE 0x20 // Listen Address Group base
|
||||
#define GPIB_TAG_BASE 0x40 // Talk Address Group base
|
||||
#define GPIB_SCG_BASE 0x60 // Secondary Command Group base
|
||||
|
||||
#define GPIB_ASSERT(pin) funDigitalWrite(pin, 0)
|
||||
#define GPIB_RELEASE(pin) funDigitalWrite(pin, 1)
|
||||
#define GPIB_READ(pin) funDigitalRead(pin)
|
||||
|
||||
// Data Lines (DIO1-DIO8)
|
||||
#define PIN_DIO1 PB9
|
||||
#define PIN_DIO2 PB8
|
||||
#define PIN_DIO3 PB5
|
||||
#define PIN_DIO4 PB4
|
||||
#define PIN_DIO5 PB15
|
||||
#define PIN_DIO6 PB14
|
||||
#define PIN_DIO7 PB13
|
||||
#define PIN_DIO8 PB12
|
||||
|
||||
#define MASK_DIO1 (1U << 9)
|
||||
#define MASK_DIO2 (1U << 8)
|
||||
#define MASK_DIO3 (1U << 5)
|
||||
#define MASK_DIO4 (1U << 4)
|
||||
#define MASK_DIO5 (1U << 15)
|
||||
#define MASK_DIO6 (1U << 14)
|
||||
#define MASK_DIO7 (1U << 13)
|
||||
#define MASK_DIO8 (1U << 12)
|
||||
|
||||
static const int DIO_PINS[] = {PIN_DIO1, PIN_DIO2, PIN_DIO3, PIN_DIO4,
|
||||
PIN_DIO5, PIN_DIO6, PIN_DIO7, PIN_DIO8};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user