From fce484eef6f1e9a00fec4bded1fe17914e35c432 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Mon, 27 Apr 2020 16:36:41 +0200 Subject: [PATCH] Add a warning about duplicate USB pullup for STM32F4 boards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is suboptimal hardware design, which might need some special care on the software side. This noticed in the Arduino_Core_STM32, see https://github.com/stm32duino/Arduino_Core_STM32/issues/1029 For these boards, a schematic is available to confirm the resistor: - STM32F407VET6-STM32-F4VE-V2.0 - STM32F407ZGT6-VCC-GND-Large - STM32F407VET6-VCC-GND-Small These boards have not schematic, but there is a 1.5kΩ resistor clearly visible in the USB data path that is almost certainly a fixed pullup: - STM32F407VET6-Euse-M4-DEMO-Medium - STM32F407VGT6-SR-Board These boards have a pullup, but it is switched by a transistor. Since there are also internal pullups, a warning is still in order, but using slightly different wording: - STM32F401RCT6-STM32F-Core-Board - STM32F407ZGT6-STM32F-Core-Board All other F4 boards have no such resistor in the schematic or visible in the images. Other series might also have this problem, but were not checked. --- _data/boards/STM32F401RCT6-STM32F-Core-Board.json | 3 ++- _data/boards/STM32F407VET6-Euse-M4-DEMO-Medium.json | 3 ++- _data/boards/STM32F407VET6-STM32-F4VE-V2.0.json | 3 ++- _data/boards/STM32F407VET6-VCC-GND-Small.json | 3 ++- _data/boards/STM32F407VGT6-SR-Board.json | 3 ++- _data/boards/STM32F407ZGT6-STM32F-Core-Board.json | 3 ++- _data/boards/STM32F407ZGT6-VCC-GND-Large.json | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/_data/boards/STM32F401RCT6-STM32F-Core-Board.json b/_data/boards/STM32F401RCT6-STM32F-Core-Board.json index 52c4cad..8b4a120 100644 --- a/_data/boards/STM32F401RCT6-STM32F-Core-Board.json +++ b/_data/boards/STM32F401RCT6-STM32F-Core-Board.json @@ -38,7 +38,8 @@ "mounting": "None" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional switchable pull-up resistor on D+ (R11, controlled by PD2), which is disabled by default. This resistor is not needed and violates the USB specification when used at the same time as the internal pull-up resistors. This may cause errors while using USB on this board." } ], "resources": [ { diff --git a/_data/boards/STM32F407VET6-Euse-M4-DEMO-Medium.json b/_data/boards/STM32F407VET6-Euse-M4-DEMO-Medium.json index 260ec05..c461c18 100644 --- a/_data/boards/STM32F407VET6-Euse-M4-DEMO-Medium.json +++ b/_data/boards/STM32F407VET6-Euse-M4-DEMO-Medium.json @@ -41,7 +41,8 @@ "mounting": "4x mounting hole (M2)" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional pull-up resistor on D+. This resistor is not needed and violates the USB specification when the internal pull-up resistors are also used. This may cause errors while using USB on this board." } ], "resources": [ { diff --git a/_data/boards/STM32F407VET6-STM32-F4VE-V2.0.json b/_data/boards/STM32F407VET6-STM32-F4VE-V2.0.json index 6c30c0b..c8aefc6 100644 --- a/_data/boards/STM32F407VET6-STM32-F4VE-V2.0.json +++ b/_data/boards/STM32F407VET6-STM32-F4VE-V2.0.json @@ -38,7 +38,8 @@ "mounting": "4x mounting hole (M3)" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional pull-up resistor on D+ (R21). This resistor is not needed and violates the USB specification when the internal pull-up resistors are also used. This may cause errors while using USB on this board." } ], "resources": [ { diff --git a/_data/boards/STM32F407VET6-VCC-GND-Small.json b/_data/boards/STM32F407VET6-VCC-GND-Small.json index d6c99a4..a205848 100644 --- a/_data/boards/STM32F407VET6-VCC-GND-Small.json +++ b/_data/boards/STM32F407VET6-VCC-GND-Small.json @@ -38,7 +38,8 @@ "mounting": "None" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional pull-up resistor on D+ (R21). This resistors is not needed and violates the USB specification when the internal pull-up resistors are also used. This may cause errors while using USB on this board." } ], "resources": [ { diff --git a/_data/boards/STM32F407VGT6-SR-Board.json b/_data/boards/STM32F407VGT6-SR-Board.json index d612ffc..d4a760c 100644 --- a/_data/boards/STM32F407VGT6-SR-Board.json +++ b/_data/boards/STM32F407VGT6-SR-Board.json @@ -35,7 +35,8 @@ "mounting": "None" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional pull-up resistor on D+ (R8). This resistor is not needed and violates the USB specification when the internal pull-up resistors are also used. This may cause errors while using USB on this board." } ], "resources": [ { diff --git a/_data/boards/STM32F407ZGT6-STM32F-Core-Board.json b/_data/boards/STM32F407ZGT6-STM32F-Core-Board.json index 4ee0c75..92d0b4f 100644 --- a/_data/boards/STM32F407ZGT6-STM32F-Core-Board.json +++ b/_data/boards/STM32F407ZGT6-STM32F-Core-Board.json @@ -38,7 +38,8 @@ "mounting": "None" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional switchable pull-up resistor on D+ (R14, controlled by PA8), which is disabled by default. This resistor is not needed and violates the USB specification when used at the same time as the internal pull-up resistors. This may cause errors while using USB on this board." } ], "resources": [ { diff --git a/_data/boards/STM32F407ZGT6-VCC-GND-Large.json b/_data/boards/STM32F407ZGT6-VCC-GND-Large.json index 5265733..016ea51 100644 --- a/_data/boards/STM32F407ZGT6-VCC-GND-Large.json +++ b/_data/boards/STM32F407ZGT6-VCC-GND-Large.json @@ -38,7 +38,8 @@ "mounting": "None" }, "remarks": [ - { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." } + { "type": "warning", "content": "The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time." }, + { "type": "warning", "content": "The microcontroller on this board features internal pull-up resistors for the USB data lines. However, this board has an additional pull-up resistor on D+ (R8). This resistor is not needed and violates the USB specification when the internal pull-up resistors are also used. This may cause errors while using USB on this board." } ], "resources": [ {