fixed schematics @ canon managing, add initialization for absolute positioning, TODO: add CAN bus management

This commit is contained in:
2023-03-15 17:50:49 +03:00
parent 46c77abaed
commit 681f3253d7
37 changed files with 2535 additions and 1735 deletions

View File

@@ -1,6 +1,6 @@
/*
* This file is part of the canonmanage project.
* Copyright 2022 Edward V. Emelianov <edward.emelianoff@gmail.com>.
* Copyright 2023 Edward V. Emelianov <edward.emelianoff@gmail.com>.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,40 +17,39 @@
*/
#pragma once
#ifndef __HARDWARE_H__
#define __HARDWARE_H__
#include <stm32f1.h>
// LED0 - PC13 (bluepill), blinking each second
#define LED0_port GPIOC
#define LED0_pin (1<<13)
#define LED_blink(x) pin_toggle(x ## _port, x ## _pin)
#define LED_on(x) pin_clear(x ## _port, x ## _pin)
#define LED_off(x) pin_set(x ## _port, x ## _pin)
// USB DP pullup: PA10
#define USBPU_port GPIOA
#define USBPU_pin (1<<15)
#define USBPU_ON() pin_set(USBPU_port, USBPU_pin)
#define USBPU_OFF() pin_clear(USBPU_port, USBPU_pin)
#define USBPU_pin (1<<10)
#define USBPU_ON() pin_clear(USBPU_port, USBPU_pin)
#define USBPU_OFF() pin_set(USBPU_port, USBPU_pin)
// Ven (enable lens voltage) - PA8
#define VEN_port GPIOA
#define VEN_pin (1<<8)
#define LENS_ON() pin_set(VEN_port, VEN_pin)
#define LENS_OFF() pin_clear(VEN_port, VEN_pin)
// CAN-USB switch: PC13, pullup
#define USBCAN_port GPIOC
#define USBCAN_pin (1<<13)
#define ISUSB() (USBCAN_port->IDR & USBCAN_pin)
// Lens detect: PA4, pullup
#define LENSDET_port GPIOA
#define LENSDET_pin (1<<4)
#define LENSCONNECTED() (0 == (LENSDET_port->IDR & LENSDET_pin))
// Overcurrent detect: PA9, pullup
#define OC_port GPIOA
#define OC_pin (1<<9)
#define OVERCURRENT() (0 == (OC_port->IDR & OC_pin))
extern volatile uint32_t Tms;
void hw_setup();
// SPI RX/TX max len
#define SPIBUFSZ (32)
#define DMA_SPI_Rx_IRQ DMA1_Channel2_IRQn
#define SPIx SPI1
#define SPI_APB2 RCC_APB2ENR_SPI1EN
#define DMA_SPI DMA1
#define DMA_SPI_AHBENR RCC_AHBENR_DMA1EN
#define DMA_SPI_TCIF DMA_ISR_TCIF2
#define DMA_SPI_CTCIF DMA_IFCR_CTCIF2
#define DMA_SPI_TxChannel DMA1_Channel3
#define DMA_SPI_RxChannel DMA1_Channel2
#define DMA_SPI_Rx_ISR dma1_channel2_isr
#endif // __HARDWARE_H__