Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add STM32F103C8T6TR and STM32F103CBT6TR #11

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

fruchti
Copy link
Contributor

@fruchti fruchti commented Jan 10, 2018

No description provided.

@carrotIndustries
Copy link
Member

LGTM overall, some minor nitpicks:

  • It'd be nicer to have power supply pins at the top/bottom edge
  • One pin in the symbol can be connected to more than one pad, so only add one VDD pin in the unit and map all required pads to this pin
  • silkscreen clearance is a bit marginal, 0.2mm clearance to exposed copper seems like a reasonable clearance.

@fruchti
Copy link
Contributor Author

fruchti commented Jan 10, 2018

I extended the silkscreen clearance to both package outline and copper to 0.2 mm. Looks best when it's symmetric IMHO.

I combined the power pins, but did not shift them to top and bottom of the symbol for a number of optical reasons:

  • The pin names of vertical pins always get in the way of other pin names inside the symbol outline and I have yet to find a part where this looks pretty. As far as I see, Horizon doesn't have the capabilities to rotate pin names, so the symbol would have to be much larger just so the pin names could “dodge” each other.
  • In my opinion, the placement of, especially if there are multiple, bypass capacitors looks much cleaner if the power pin's on the side of the symbol.
  • For microcontrollers, I like all the supplementary passive components to be on the left side, so the right one is free for all I/O. That's why NRST and the pins for the crystals are on the left side in my symbol as well.

Of course, all of this is personal preference and I don't have a problem with leaving this pull request open until there exists a clear convention on where supply pins should go in every case.

@carrotIndustries
Copy link
Member

Regarding the symbol: The only "guide" on how schematic symbols I've found so far is the kicad library convention which specifies power pins to be top/bottom: http://kicad-pcb.org/libraries/klc/S4.2/ Are you aware of any recognized standard documents covering this? The only ones I found so far deal with the basic stuff like diodes and capacitors but don't give any recommendations on how to draw nonstandard symbols. I'd like to avoid coming up with a new convention for the horizon pool if there are existing conventions to use.

@fruchti
Copy link
Contributor Author

fruchti commented Jan 14, 2018

I didn't find anything apart from the KLC either. I think it would would be pretty hard to have a general convention which would look good and lead to neat schematics in every case. A convention is clearly needed, but I don't know if a rule anymore concrete than the KLC's “group similar pins together” is really beneficial because it will always look odd with some types of parts and thus lead to ambiguity.

Maybe a more abstract, yet measurable rule like “The pin configuration, where the part's recommended configuration with all supporting passives needs the least space on the schematic” would be an option, too.

A few days ago, I wanted to set up a library for simple pin headers and I noticed unsure I was without a convention. I'd prefer to set up a rough convention and refine it whenever some ambiguity is noticed, maybe with a poll on the different options. I could start a rough draft based on the KLC and IPC footprint rules in the next few days because that would help a lot in getting the process going.

@fruchti
Copy link
Contributor Author

fruchti commented Jan 14, 2018

Don't get me wrong, I absolutely think that the established conventions are good in that they make mostly sensible decisions and because people are used to them, of course. But when designing a all-new library there's a huge potential of rethinking the design assumptions for the convention, because there are no legacy parts which have to somehow fit into the convention. I like to keep that in mind and rather discuss a bit longer on the convention than having to retro-fit some rules which turn out to be non-optimal.

@carrotIndustries
Copy link
Member

I could start a rough draft based on the KLC and IPC footprint rules in the next few days because that would help a lot in getting the process going.

Go ahead! That's what I thought of in #8 as well. Having a clear convention in place makes it much easier for everyone to contribute parts to the pool.

Having power/ground on top/bottom is the way I've always done it and seen it done in most places. Being able to rotate pin names shouldn't be that hard to implement, let's see..

@fruchti
Copy link
Contributor Author

fruchti commented Jan 15, 2018

Another way would be to almost always split the power pins into a separate unit. The only exception would be parts where the supply pins fulfill more of an analog purpose, like switching regulators or supply monitor ICs.

In this particular case the controller would have two supply units for the digital and the analog supply. That would be nice, too, because you can put a inductor or ferrite bead or whatever you like neatly between them.

@carrotIndustries
Copy link
Member

IMO, splitting out the power supply pins doesn't make much sense for most devices with much less than 100 pins since it leads to more complex schematics.

@fruchti
Copy link
Contributor Author

fruchti commented Jul 29, 2019

I rebased this PR since it wasn't able to merge without conflicts any more.

@pwnorbitals
Copy link

This would be useful, is merging still an option @carrotIndustries ? Thanks :)

@rroohhh
Copy link

rroohhh commented Jan 13, 2021

Bot!

@github-actions
Copy link

github-actions bot commented Jan 13, 2021

This review has been superseded. Scroll down to find the latest one.

@carrotIndustries
Copy link
Member

  • Power pins should go on top/bottom
  • Symbol orientations don't really make sense for large symbols like this one

@fruchti
Copy link
Contributor Author

fruchti commented Jan 13, 2021

Bot!

@github-actions
Copy link

github-actions bot commented Jan 13, 2021

This review has been superseded. Scroll down to find the latest one.

@fruchti
Copy link
Contributor Author

fruchti commented Jan 13, 2021

  • Power pins should go on top/bottom

I’ll add this to the convention as well (and to horizon-eda/horizon-pool-convention#7). Unless you have objections, I would also add a rule to prefer the ‘perpendicular’ name orientation unless this makes the symbol unreasonably wide.

Fixed everything the bot complained about and redid the symbol. I don’t really know why the multiple symbol orientations popped up since I didn’t see the as set in the symbol editor. Let me know if you have additional comments!

@fruchti
Copy link
Contributor Author

fruchti commented Jan 13, 2021

Bot!

@github-actions
Copy link

This review is brought to you by the Horizon EDA Poolbot commit bec8764.

Items in this PR

State Type Name Filename
New 3D Model 3d_models/ic/lqfp/LQFP-48_7x7mm_P0.5mm.step
New Entity STM32F103C entities/ic/mcu/stm/STM32F103C.json
New Package LQFP48 packages/ic/smd/qfp/lqfp-48/package.json
New Part STM32F103C8T6TR parts/ic/mcu/stm/STM32F103C8T6TR.json
New Part STM32F103CBT6TR parts/ic/mcu/stm/STM32F103CBT6TR.json
New Symbol STM32F103C symbols/ic/mcu/stm/STM32F103C.json
New Unit STM32F103C units/ic/mcu/stm/STM32F103C.json

Parts overview (excluding derived)

Bold items are from this PR

  • Part STM32F103C8T6TR
    • Package LQFP48
      • Padstack SMD rectangular
      • 3D Model 3d_models/ic/lqfp/LQFP-48_7x7mm_P0.5mm.step
    • Entity STM32F103C
      • Unit STM32F103C
        • Symbol STM32F103C

Derived parts

Bold items are from this PR

  • STM32F103C8T6TR
    • STM32F103CBT6TR

Parts table

Values in italic are inherited

MPN Value Manufacturer Datasheet Description Tags
STM32F103C8T6TR STM32F103C8T6 ST http://www.st.com/resource/en/datasheet/stm32f103c8.pdf Mainstream Performance line, ARM Cortex-M3 MCU with 64 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN arm ic mcu stm32
STM32F103CBT6TR STM32F103CBT6 ST http://www.st.com/resource/en/datasheet/stm32f103cb.pdf Mainstream Performance line, ARM Cortex-M3 MCU with 128 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN arm ic mcu stm32

Details

Parts

STM32F103C8T6TR

✔️ Checks passed

Attribute Value
MPN STM32F103C8T6TR
Value STM32F103C8T6
Manufacturer ST (10 other parts)
Datasheet http://www.st.com/resource/en/datasheet/stm32f103c8.pdf
Description Mainstream Performance line, ARM Cortex-M3 MCU with 64 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN
Tags arm ic mcu stm32
Pad Gate Pin
1 Main VBAT
2 Main PC13
3 Main PC14
4 Main PC15
5 Main PD0
6 Main PD1
7 Main NRST
8 Main VSSA
9 Main VDDA
10 Main PA0
11 Main PA1
12 Main PA2
13 Main PA3
14 Main PA4
15 Main PA5
16 Main PA6
17 Main PA7
18 Main PB0
19 Main PB1
20 Main PB2
21 Main PB10
22 Main PB11
23 Main VSS
24 Main VDD
25 Main PB12
26 Main PB13
27 Main PB14
28 Main PB15
29 Main PA8
30 Main PA9
31 Main PA10
32 Main PA11
33 Main PA12
34 Main PA13
35 Main VSS
36 Main VDD
37 Main PA14
38 Main PA15
39 Main PB3
40 Main PB4
41 Main PB5
42 Main PB6
43 Main PB7
44 Main BOOT0
45 Main PB8
46 Main PB9
47 Main VSS
48 Main VDD

STM32F103CBT6TR

Inerhits from STM32F103C8T6TR

✔️ Checks passed

Attribute Value
MPN STM32F103CBT6TR
Value STM32F103CBT6
Manufacturer ST (10 other parts) (inherited)
Datasheet http://www.st.com/resource/en/datasheet/stm32f103cb.pdf
Description Mainstream Performance line, ARM Cortex-M3 MCU with 128 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN
Tags arm ic mcu stm32

Entities

STM32F103C

✔️ Checks passed

Attribute Value
Manufacturer ST (10 other parts)
Prefix U
Tags arm ic mcu stm32
Gate Suffix Swap group Unit
Main 0 STM32F103C

Units

STM32F103C

✔️ Checks passed

Attribute Value
Manufacturer ST (10 other parts)
Pin Direction Alternate names
BOOT0 Input
NRST Input
PA0 Bidirectional WKUP, USART2_CTS, ADC12_IN0, TIM2_CH1_ETR
PA1 Bidirectional USART2_RTS, ADC12_IN1, TIM2_CH2
PA2 Bidirectional USART2_TX, ADC12_IN2, TIM2_CH3
PA3 Bidirectional USART2_RX, ADC12_IN3, TIM2_CH4
PA4 Bidirectional SPI1_NSS, USART2_CK, ADC12_IN4
PA5 Bidirectional SPI1_SCK, ADC12_IN5
PA6 Bidirectional SPI1_MISO, ADC12_IN6, TIM3_CH1, TIM1_BKIN
PA7 Bidirectional SPI1_MOSI, ADC12_IN7, TIM3_CH2, TIM1_CH1N
PA8 Bidirectional USART1_CK, TIM1_CH1, MCO
PA9 Bidirectional USART1_TX, TIM1_CH2
PA10 Bidirectional USART1_RX, TIM1_CH3
PA11 Bidirectional USART1_CTS, CANRX, USBDM, TIM1_CH4
PA12 Bidirectional USART1_RTS, CANTX, USBDP, TIM1_ETR
PA13 Bidirectional JTMS, SWDIO
PA14 Bidirectional JTCK, SWCLK
PA15 Bidirectional JTDI, TIM2_CH1_ETR, SPI1_NSS
PB0 Bidirectional ADC12_IN8, TIM3_CH3, TIM1_CH2N
PB1 Bidirectional ADC12_IN9, TIM3_CH4, TIM1_CH3N
PB2 Bidirectional BOOT1
PB3 Bidirectional JTDO, TIM2_CH2, TRACESWO, SPI1_SCK
PB4 Bidirectional JNTRST, TIM3_CH1, SPI1_MISO
PB5 Bidirectional I2C1_SMBAI, TIM3_CH2, SPI1_MOSI
PB6 Bidirectional I2C1_SCL, TIM4_CH1, USART1_TX
PB7 Bidirectional I2C1_SDA, TIM4_CH2, USART1_RX
PB8 Bidirectional TIM4_CH3, I2C1_SCL, CANRX
PB9 Bidirectional TIM4_CH4, I2C1_SDA, CANTX
PB10 Bidirectional I2C2_SCL, USART3_TX, TIM2_CH3
PB11 Bidirectional I2C2_SDA, USART3_RX, TIM2_CH4
PB12 Bidirectional SPI2_NSS, I2C2_SMBAl, USART3_CK, TIM1_BKIN
PB13 Bidirectional SPI2_SCK, USART3_CTS, TIM1_CH1N
PB14 Bidirectional SPI2_MISO, USART3_RTS, TIM1_CH2N
PB15 Bidirectional SPI2_MOSI, TIM1_CH3N
PC13 Bidirectional TAMPER-RTC
PC14 Bidirectional OSC32_IN
PC15 Bidirectional OSC32_OUT
PD0 Bidirectional OSC_IN
PD1 Bidirectional OSC_OUT
VBAT Power Input SPI2_MOSI, TIM1_CH3N
VDD Power Input
VDDA Power Input
VSS Power Input
VSSA Power Input

Symbol: STM32F103C

Is expandable

✔️ Checks passed

  • Is box symbol

Symbol

Packages

LQFP48

Attribute Value
Manufacturer (122 other parts)
Tags generic ic lqfp qfp smd

✔️ Package checks passed

✔️ Clearance checks passed

Package

Parameters
Parameter Value
Courtyard expansion 000.250 mm
get-parameter [ courtyard_expansion ]
expand-polygon [ courtyard
-4850000
2900000

-3500000
2900000

-3500000
3500000

-2900000
3500000

-2900000
4850000

2900000
4850000

2900000
3500000

3500000
3500000

3500000
2900000

4850000
2900000

4850000
-2900000

3500000
-2900000

3500000
-3500000

2900000
-3500000

2900000
-4850000

-2900000
-4850000

-2900000
-3500000

-3500000
-3500000

-3500000
-2900000

-4850000
-2900000
]
3D views (one model)

Without model

Top Bottom
3D 3D

LQFP-48_7x7mm_P0.5mm.step

Top Bottom
3D 3D
South East North West
3D 3D 3D 3D
Pitch analysis
X Y Count
000.000 mm 000.500 mm 22
000.500 mm 000.000 mm 22
001.500 mm 001.500 mm 4

@fruchti fruchti mentioned this pull request Jan 18, 2021
@LHSmicius LHSmicius mentioned this pull request Aug 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants