multiplexer working

This commit is contained in:
mikelam 2021-12-31 10:57:11 +08:00
parent 259ec7e7ec
commit 32098c89ae
13 changed files with 4723 additions and 4524 deletions

View File

@ -4,6 +4,7 @@
#include "user_main.h"
void flash_fpga();
void read_fsmc( uint16_t address, uint8_t *fsmc_dat);
void fsmc_read( uint16_t address, uint8_t *dat);
void fsmc_write( uint16_t address, uint8_t dat);
#endif

File diff suppressed because it is too large Load Diff

View File

@ -87,8 +87,16 @@ void Error_Handler(void);
#define FPGA_CRESET_GPIO_Port GPIOA
#define SPI_FPGA_CS_Pin GPIO_PIN_15
#define SPI_FPGA_CS_GPIO_Port GPIOA
#define DIO_IO_Pin GPIO_PIN_3
#define DIO_IO_GPIO_Port GPIOD
#define DIO_CH_SEL2_Pin GPIO_PIN_6
#define DIO_CH_SEL2_GPIO_Port GPIOD
#define EEM_POWER_SW_Pin GPIO_PIN_6
#define EEM_POWER_SW_GPIO_Port GPIOB
#define DIO_CH_SEL0_Pin GPIO_PIN_0
#define DIO_CH_SEL0_GPIO_Port GPIOE
#define DIO_CH_SEL1_Pin GPIO_PIN_1
#define DIO_CH_SEL1_GPIO_Port GPIOE
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */

View File

@ -61,10 +61,21 @@ void flash_fpga()
HAL_SPI_Transmit(&hspi1, dummy_bytes, 13, 1000);
}
void read_fsmc( uint16_t address, uint8_t *fsmc_dat)
void fsmc_read(uint16_t address, uint8_t *dat)
{
uint32_t fsmc_add = 0x60000000 + address;
uint32_t fsmc_add = 0x60000000 | (address << 8);
*fsmc_dat = (*(__IO uint16_t *)(fsmc_add));
// HAL_SRAM_Read_8b(&hsram1, (uint32_t*)&fsmc_add, fsmc_dat, 1);
*dat = (*(__IO uint8_t *)(fsmc_add));
// HAL_GPIO_WritePin(FSMC_NRE_GPIO_Port, FSMC_NRE_Pin, GPIO_PIN_RESET);
// HAL_GPIO_WritePin(FSMC_NRE_GPIO_Port, FSMC_NRE_Pin, GPIO_PIN_SET);
// HAL_SRAM_Read_8b(&hsram1, (uint32_t*)&fsmc_add, dat, 1);
}
void fsmc_write(uint16_t address, uint8_t dat)
{
// HAL_GPIO_WritePin(FSMC_NWE_GPIO_Port, FSMC_NWE_Pin, GPIO_PIN_RESET);
uint32_t fsmc_add = 0x60000000 | (address << 8);
// HAL_GPIO_WritePin(FSMC_NWE_GPIO_Port, FSMC_NWE_Pin, GPIO_PIN_SET);
(*(__IO uint8_t *)(fsmc_add)) = dat;
}

View File

@ -1,6 +1,7 @@
#include "user_main.h"
int8_t fsmc_buf;
uint8_t gpio_buf[16];
void user_setup()
{
@ -13,17 +14,28 @@ void user_setup()
HAL_UART_Transmit(&huart4, str, 5, 100);
}
uint8_t dio_ch = 0;
uint8_t dio_io = 0;
void user_loop()
{
read_fsmc(0, (uint8_t*)&fsmc_buf);
// for (uint16_t i = 0; i < 65536; i++)
// {
// read_fsmc(i, fsmc_buf);
// HAL_Delay(1000);
// }
// fsmc_buf[0] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_14);
// fsmc_buf[1] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_15);
// fsmc_buf[2] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_0);
// fsmc_buf[3] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_1);
// fsmc_read(0, (uint8_t*)&fsmc_buf);
// gpio_buf[0] = HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_11);
// gpio_buf[1] = HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_12);
// gpio_buf[2] = HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_13);
// gpio_buf[3] = HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_14);
// gpio_buf[4] = HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_15);
static uint16_t i = 0;
i++;
fsmc_read(i, (uint8_t*)&fsmc_buf);
HAL_Delay(1000);
// fsmc_write(i, 0b00001111);
// HAL_Delay(1000);
key_events();
HAL_GPIO_WritePin(DIO_CH_SEL0_GPIO_Port, DIO_CH_SEL0_Pin, (dio_ch >> 0) & 0x01);
HAL_GPIO_WritePin(DIO_CH_SEL1_GPIO_Port, DIO_CH_SEL1_Pin, (dio_ch >> 1) & 0x01);
HAL_GPIO_WritePin(DIO_CH_SEL2_GPIO_Port, DIO_CH_SEL2_Pin, (dio_ch >> 2) & 0x01);
HAL_GPIO_WritePin(DIO_IO_GPIO_Port, DIO_IO_Pin, dio_io);
}

View File

@ -72,6 +72,11 @@ void MX_FSMC_Init(void)
Error_Handler( );
}
/** Disconnect NADV
*/
__HAL_AFIO_FSMCNADV_DISCONNECTED();
/* USER CODE BEGIN FSMC_Init 2 */
/* USER CODE END FSMC_Init 2 */
@ -120,7 +125,6 @@ static void HAL_FSMC_MspInit(void){
PD4 ------> FSMC_NOE
PD5 ------> FSMC_NWE
PD7 ------> FSMC_NE1
PB7 ------> FSMC_NL
*/
/* GPIO_InitStruct */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
@ -142,13 +146,6 @@ static void HAL_FSMC_MspInit(void){
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* GPIO_InitStruct */
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN FSMC_MspInit 1 */
/* USER CODE END FSMC_MspInit 1 */
@ -205,7 +202,6 @@ static void HAL_FSMC_MspDeInit(void){
PD4 ------> FSMC_NOE
PD5 ------> FSMC_NWE
PD7 ------> FSMC_NE1
PB7 ------> FSMC_NL
*/
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
@ -218,8 +214,6 @@ static void HAL_FSMC_MspDeInit(void){
|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
|GPIO_PIN_7);
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
/* USER CODE BEGIN FSMC_MspDeInit 1 */
/* USER CODE END FSMC_MspDeInit 1 */

View File

@ -62,9 +62,18 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, FPGA_CRESET_Pin|SPI_FPGA_CS_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(DIO_IO_GPIO_Port, DIO_IO_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(DIO_CH_SEL2_GPIO_Port, DIO_CH_SEL2_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(EEM_POWER_SW_GPIO_Port, EEM_POWER_SW_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, DIO_CH_SEL0_Pin|DIO_CH_SEL1_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = SPI_ENC_CS_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@ -126,6 +135,20 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(SPI_FPGA_CS_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = DIO_IO_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(DIO_IO_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = DIO_CH_SEL2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(DIO_CH_SEL2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = EEM_POWER_SW_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@ -133,6 +156,13 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(EEM_POWER_SW_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PEPin PEPin */
GPIO_InitStruct.Pin = DIO_CH_SEL0_Pin|DIO_CH_SEL1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI2_IRQn);

92
FPGA/lvds.py Normal file
View File

@ -0,0 +1,92 @@
# Import built in I/O, Connectors & Platform template for Humpback
from migen.build.platforms.sinara import humpback
# Import migen pin record structure
from migen.build.generic_platform import *
from migen.fhdl.module import Module
from migen.fhdl.specials import Instance
from migen.genlib.io import *
class UrukulConnector(Module):
def __init__(self, platform):
# Include extension
spi_mosi = [
("spi_mosi", 0, Pins("B16"), IOStandard("LVCMOS33"))
]
spi_cs = [
("spi_cs", 0, Pins("B13 B14 B15"), IOStandard("LVCMOS33"))
]
io_update = [
("io_update", 0, Pins("A11"), IOStandard("LVCMOS33"))
]
# Add extensions
platform.add_extension(spi_cs)
platform.add_extension(io_update)
platform.add_extension(spi_mosi)
# Request EEM I/O & SPI
eem0 = [
platform.request("eem0", 0),
platform.request("eem0", 1),
# Supply EEM pin with negative polarity
# See issue/PR: https://github.com/m-labs/migen/pull/181
platform.request("eem0_n", 2),
platform.request("eem0", 3),
platform.request("eem0", 4),
platform.request("eem0", 5),
platform.request("eem0", 6)
]
spi = platform.request("spi")
spi_mosi = platform.request("spi_mosi")
spi_cs = platform.request("spi_cs")
led = platform.request("user_led")
io_update = platform.request("io_update")
assert len(spi.clk) == 1
assert len(spi_mosi) == 1
assert len(spi.miso) == 1
assert len(spi_cs) == 3
assert len(io_update) == 1
# Flip negative input to positive output
self.miso_n = Signal()
# Very similar setup to Diff setup for iCE40 suggested, but gave B pin instead
self.specials += Instance("SB_IO",
p_PIN_TYPE=C(0b000001, 6),
p_IO_STANDARD="SB_LVDS_INPUT",
io_PACKAGE_PIN=eem0[2],
o_D_IN_0=self.miso_n
)
# Link EEM to SPI
self.comb += [
eem0[0].p.eq(spi.clk),
eem0[0].n.eq(~spi.clk),
eem0[1].p.eq(spi_mosi),
eem0[1].n.eq(~spi_mosi),
spi.miso.eq(~self.miso_n),
eem0[3].p.eq(spi_cs[0]),
eem0[3].n.eq(~spi_cs[0]),
eem0[4].p.eq(spi_cs[1]),
eem0[4].n.eq(~spi_cs[1]),
eem0[5].p.eq(spi_cs[2]),
eem0[5].n.eq(~spi_cs[2]),
eem0[6].p.eq(io_update),
eem0[6].n.eq(~io_update),
led.eq(1)
]
if __name__ == "__main__":
platform = humpback.Platform()
platform.build(UrukulConnector(platform))

View File

@ -22,6 +22,13 @@ set_io --warn-no-port KEY T16
# set_io --warn-no-port io15 T14
set_io --warn-no-port DIO_OUT T10
set_io --warn-no-port DIO_IO_SEL R10
set_io --warn-no-port DIO_CH_SEL[0] T14
set_io --warn-no-port DIO_CH_SEL[1] T13
set_io --warn-no-port DIO_CH_SEL[2] T11
set_io --warn-no-port ADC_DAT[7] J15
set_io --warn-no-port ADC_DAT[6] K16
set_io --warn-no-port ADC_DAT[5] K15

View File

@ -2,6 +2,9 @@ module top (
HW_CLK,
LED,
KEY,
DIO_OUT,
DIO_IO_SEL,
DIO_CH_SEL,
ADC_CLK,
ADC_DAT,
FSMC_CLK,
@ -33,7 +36,10 @@ module top (
output ADC_CLK;
input [7:0]ADC_DAT;
reg [7:0] adc_result = 8'b0;
output DIO_OUT;
output DIO_IO_SEL;
output [2:0]DIO_CH_SEL;
/* Counter register */
reg [31:0] counter = 32'b0;
@ -47,19 +53,36 @@ module top (
end
assign ADC_CLK = HW_CLK;
reg [7:0] adc_buf = 8'b0;
always @ (posedge ADC_CLK) begin
adc_result = ADC_DAT;
adc_result[7] = ~adc_result[7];
FSMC_DAT = adc_result;
adc_buf = ADC_DAT;
adc_buf[7] = ~adc_buf[7];
FSMC_DAT = adc_buf;
end
always @ (posedge (NE1 & NWE & NOE)) begin
// case (FSMC_ADD)
// 0: FSMC_DAT = 8'd0;
// 1: FSMC_DAT = 8'd1;
// 1: FSMC_DAT = 8'd1;
// default: FSMC_DAT = 8'd122;
// endcase
end
// wire FSMC_RE = ~NOE;
// always @ (posedge FSMC_RE) begin
// // FSMC_DAT <= FSMC_ADD[7:0];
// // case (FSMC_ADD)
// // 0: FSMC_DAT = 8'd0;
// // 1: FSMC_DAT = 8'd1;
// // 2: FSMC_DAT = 8'd2;
// // 63: FSMC_DAT = 8'd123;
// // default: FSMC_DAT = 8'd122;
// // endcase
// end
// wire FSMC_WE = ~NWE & ~NOE;
// always @ (posedge FSMC_WE) begin
// //4 bits for LVDS; 3 bits for channel select; 1 bit for IO direction control
// // DIO_IO_SEL <= FSMC_DAT[0];
// // DIO_CH_SEL <= FSMC_DAT[3:1];
// // if (DIO_CH_SEL == 3'b111)
// end
assign DIO_IO_SEL = FSMC_CLK;
assign DIO_CH_SEL[1:0] = FSMC_NBL[1:0];
assign DIO_CH_SEL[2] = FSMC_NWAIT;
endmodule

View File

@ -1,5 +1,5 @@
##########################################################################################################################
# File automatically-generated by tool: [projectgenerator] version: [3.15.2] date: [Sun Dec 26 15:51:44 HKT 2021]
# File automatically-generated by tool: [projectgenerator] version: [3.15.2] date: [Fri Dec 31 10:30:11 HKT 2021]
##########################################################################################################################
# ------------------------------------------------

View File

@ -1,13 +1,15 @@
OpenDocument="main.c", FilePath="/home/geekzjk/Desktop/Syrostan-MCU-C/Core/Src/main.c", Line=68
OpenDocument="stm32f1xx_hal.c", FilePath="/home/geekzjk/Desktop/Syrostan-MCU-C/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c", Line=372
OpenDocument="stm32f1xx_it.c", FilePath="/home/geekzjk/Desktop/Syrostan-MCU-C/Core/Src/stm32f1xx_it.c", Line=79
OpenDocument="main.c", FilePath="/home/geekzjk/Desktop/Syrostan-MCU-C/Core/Src/main.c", Line=64
OpenToolbar="Debug", Floating=0, x=0, y=0
OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=2, w=300, h=228, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1
OpenWindow="Source Files", DockArea=LEFT, x=0, y=1, w=499, h=141, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=2, w=300, h=226, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1
OpenWindow="Source Files", DockArea=LEFT, x=0, y=1, w=499, h=147, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=0, w=300, h=203, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Memory 1", DockArea=BOTTOM, x=3, y=0, w=307, h=318, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0xFC
OpenWindow="Global Data", DockArea=RIGHT, x=0, y=1, w=300, h=191, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Watched Data 1", DockArea=LEFT, x=0, y=2, w=499, h=307, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Functions", DockArea=LEFT, x=0, y=0, w=499, h=174, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Global Data", DockArea=RIGHT, x=0, y=1, w=300, h=193, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Watched Data 1", DockArea=LEFT, x=0, y=2, w=499, h=299, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Functions", DockArea=LEFT, x=0, y=0, w=499, h=176, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Data Sampling", DockArea=BOTTOM, x=1, y=0, w=493, h=318, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0
OpenWindow="Timeline", DockArea=BOTTOM, x=2, y=0, w=718, h=318, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=1, CodePaneShown=1, PinCursor="Cursor Movable", TimePerDiv="1 ns / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="501;0", PowerGraphDrawAsPoints=0, PowerGraphLegendShown=1, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="528;1", CodeGraphLegendShown=1, CodeGraphLegendPosition="544;0"
OpenWindow="Console", DockArea=BOTTOM, x=0, y=0, w=399, h=318, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
@ -20,10 +22,11 @@ TableHeader="Power Sampling", SortCol="Index", SortOrder="ASCENDING", VisibleCol
TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[100;105;259]
TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[133;144;100;122]
TableHeader="RegisterSelectionDialog", SortCol="None", SortOrder="ASCENDING", VisibleCols=[], ColWidths=[]
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[26;26;26;26]
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[200;100;100;358]
WatchedExpression="spi_test_data", RefreshRate=5, DisplayFormat=DISPLAY_FORMAT_HEX, Window=Watched Data 1
WatchedExpression="enc_mac_address", RefreshRate=5, DisplayFormat=DISPLAY_FORMAT_HEX, Window=Watched Data 1
WatchedExpression="voltages", RefreshRate=5, Window=Watched Data 1
WatchedExpression="eem_current", RefreshRate=5, Window=Watched Data 1
WatchedExpression="fsmc_buf", RefreshRate=5, Window=Watched Data 1
WatchedExpression="fsmc_buf", RefreshRate=5, DisplayFormat=DISPLAY_FORMAT_BINARY, Window=Watched Data 1
WatchedExpression="hsram1", RefreshRate=5, Window=Watched Data 1
WatchedExpression="i", RefreshRate=5, DisplayFormat=DISPLAY_FORMAT_BINARY, Window=Watched Data 1

View File

@ -50,7 +50,7 @@ FSMC.IPParameters=NSMemoryDataWidth1,WriteOperation1
FSMC.NSMemoryDataWidth1=FSMC_NORSRAM_MEM_BUS_WIDTH_8
FSMC.WriteOperation1=FSMC_WRITE_OPERATION_ENABLE
File.Version=6
GPIO.groupedBy=
GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
Mcu.Family=STM32F1
Mcu.IP0=ADC1
@ -126,23 +126,26 @@ Mcu.Pin57=PC11
Mcu.Pin58=PD0
Mcu.Pin59=PD1
Mcu.Pin6=OSC_IN
Mcu.Pin60=PD4
Mcu.Pin61=PD5
Mcu.Pin62=PD7
Mcu.Pin63=PB3
Mcu.Pin64=PB4
Mcu.Pin65=PB5
Mcu.Pin66=PB6
Mcu.Pin67=PB7
Mcu.Pin68=PB8
Mcu.Pin69=PB9
Mcu.Pin60=PD3
Mcu.Pin61=PD4
Mcu.Pin62=PD5
Mcu.Pin63=PD6
Mcu.Pin64=PD7
Mcu.Pin65=PB3
Mcu.Pin66=PB4
Mcu.Pin67=PB5
Mcu.Pin68=PB6
Mcu.Pin69=PB8
Mcu.Pin7=OSC_OUT
Mcu.Pin70=VP_SYS_VS_Systick
Mcu.Pin71=VP_TIM3_VS_ClockSourceINT
Mcu.Pin72=VP_TIM4_VS_ClockSourceINT
Mcu.Pin70=PB9
Mcu.Pin71=PE0
Mcu.Pin72=PE1
Mcu.Pin73=VP_SYS_VS_Systick
Mcu.Pin74=VP_TIM3_VS_ClockSourceINT
Mcu.Pin75=VP_TIM4_VS_ClockSourceINT
Mcu.Pin8=PC0
Mcu.Pin9=PC1
Mcu.PinsNb=73
Mcu.PinsNb=76
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103VFTx
@ -230,7 +233,6 @@ PB6.GPIOParameters=PinState,GPIO_Label
PB6.GPIO_Label=EEM_POWER_SW
PB6.PinState=GPIO_PIN_SET
PB6.Signal=GPIO_Output
PB7.Signal=FSMC_NL
PB8.Mode=I2C
PB8.Signal=I2C1_SCL
PB9.Mode=I2C
@ -290,16 +292,34 @@ PD14.Mode=24b-da1
PD14.Signal=FSMC_DA0
PD15.Mode=24b-da1
PD15.Signal=FSMC_DA1
PD3.GPIOParameters=GPIO_Label
PD3.GPIO_Label=DIO_IO
PD3.Locked=true
PD3.Signal=GPIO_Output
PD4.Mode=MuxedPsram1
PD4.Signal=FSMC_NOE
PD5.Mode=MuxedPsram1
PD5.Signal=FSMC_NWE
PD6.GPIOParameters=GPIO_Speed,PinState,GPIO_Label
PD6.GPIO_Label=DIO_CH_SEL2
PD6.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PD6.Locked=true
PD6.PinState=GPIO_PIN_SET
PD6.Signal=GPIO_Output
PD7.Mode=NorPsramChipSelect1_1
PD7.Signal=FSMC_NE1
PD8.Mode=24b-da1
PD8.Signal=FSMC_DA13
PD9.Mode=24b-da1
PD9.Signal=FSMC_DA14
PE0.GPIOParameters=GPIO_Label
PE0.GPIO_Label=DIO_CH_SEL0
PE0.Locked=true
PE0.Signal=GPIO_Output
PE1.GPIOParameters=GPIO_Label
PE1.GPIO_Label=DIO_CH_SEL1
PE1.Locked=true
PE1.Signal=GPIO_Output
PE10.Mode=24b-da1
PE10.Signal=FSMC_DA7
PE11.Mode=24b-da1
@ -410,8 +430,6 @@ SH.COMP_DAC1_group.0=DAC_OUT1,DAC_OUT1
SH.COMP_DAC1_group.ConfNb=1
SH.COMP_DAC2_group.0=DAC_OUT2,DAC_OUT2
SH.COMP_DAC2_group.ConfNb=1
SH.FSMC_NL.0=FSMC_NL,AddressValid1
SH.FSMC_NL.ConfNb=1
SH.GPXTI2.0=GPIO_EXTI2
SH.GPXTI2.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8