RTC на STM32F103C8T6

forfrends
Offline
Зарегистрирован: 24.02.2015

Всем привет! Имеется STM32F103C8T6 (Blue Pill). Необходимо запустить часы реального времени, тем более что и кварц часовой стоит. В сети нашел примеры: 

https://github.com/stm32duino/STM32RTC - эта библиотека у меня вообще попала в раздел "не поддерживаемые", хотя ядро STM стоит именно stm32duino.

Пробовал примеры библиотеки RTClock, которая идет вместе с ядром.

Результат во всех случаях одинаковый - "тиканье" секунд происходит нестабильно с разной продолжительностью времени.

Простой пример:

#include <RTClock.h>

RTClock rt (RTCSEL_LSE); // initialise
uint32 tt; 

#define LED_PIN PC13

// This function is called in the attachSecondsInterrpt
void blink () 
{
    digitalWrite(LED_PIN,!digitalRead(LED_PIN));
}

void setup() 
{
  pinMode(LED_PIN, OUTPUT);
  Serial1.begin(115200);

  rt.attachSecondsInterrupt(blink);// Call blink
}



void loop() 
{
  
  if (rt.getTime()!=tt)
  {
    tt = rt.getTime();
    
    Serial1.print("time is: ");
    Serial1.println(tt);
  }
}

Светодиод на PC13 мигает с плавающей частотой 1-3 секунды, а должен менять свое состояние ровно 1 раз в сек.

Примеры от STM32RTC не заработали. Выдает ошибку компиляции:

 

ПРЕДУПРЕЖДЕНИЕ: библиотека STM32RTC-master должна запускаться на архитектурах stm32 и может быть несовместима с вашей платой на архитектуре STM32F1.
In file included from D:\TEMP\arduino_modified_sketch_91395\SimpleRTC.ino:39:0:

C:\Users\�����\Documents\Arduino\libraries\STM32RTC-master\src/STM32RTC.h:46:2: error: #error "RTC configuration is missing. Check flag HAL_RTC_MODULE_ENABLED in variants/board_name/stm32yzxx_hal_conf.h"

 #error "RTC configuration is missing. Check flag HAL_RTC_MODULE_ENABLED in variants/board_name/stm32yzxx_hal_conf.h"

  ^

exit status 1
Ошибка компиляции для платы Generic STM32F103C series.

Что можете посоветовать?

forfrends
Offline
Зарегистрирован: 24.02.2015

Такой еще вопрос, обязательно ли подключать питание на пин VB? Мне не нужно чтобы часы тикали в отключенном состоянии, по этому я не подключал батарейку. Может ли это влиять?

nik182
Offline
Зарегистрирован: 04.05.2015

Вы всё врёте. Ваша программа компилируется без ошибок.

Скетч использует 17212 байт (26%) памяти устройства. Всего доступно 65536 байт.
Глобальные переменные используют 3128 байт (15%) динамической памяти, оставляя 17352 байт для локальных переменных. Максимум: 20480 байт.
 
Посоветовать можно убрать русские буквы из путей и правильно настраивать среду. 
На блюпиле Vbat никуда не подключен. Без напряжения часы работать не будут. На некоторых платах есть диод на +3.3 - там работает при наличии питания.
 
forfrends
Offline
Зарегистрирован: 24.02.2015

nik182, я же не сказал что совсем не работает, работает, но частота гуляет. Ради теста кинул +3.3 на пин VB. Ни к каким результатам это не привело.

Код, который я привел, с библиотекой RTClock.h, у меня нормально компиллируется и прошивается (читайте внимательно). У меня не компиллируется библиотека STM32RTC.

STM-ок у меня больше десятка. Разные партии, куплены в разное время. Даже визуально немного отличаются. На всех проявляется одно и та же проблема.

Заметил еще такой момент: частота может измениться от простого прикосновения к плате....

 

nik182
Offline
Зарегистрирован: 04.05.2015

Супер. А где код который не компилируется? 

forfrends
Offline
Зарегистрирован: 24.02.2015

Да любой из библиотеки STM32RTC. Эта библиотека вообще стоит в "Несовместимых"....

На пример SimpleRTC:

/**
  ******************************************************************************
  * @file    SimpleRTC.ino
  * @author  WI6LABS
  * @version V1.0.0
  * @date    12-December-2017
  * @brief   Simple RTC example.
  *
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  *
  * Redistribution and use in source and binary forms, with or without modification,
  * are permitted provided that the following conditions are met:
  *   1. Redistributions of source code must retain the above copyright notice,
  *      this list of conditions and the following disclaimer.
  *   2. Redistributions in binary form must reproduce the above copyright notice,
  *      this list of conditions and the following disclaimer in the documentation
  *      and/or other materials provided with the distribution.
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
  *      may be used to endorse or promote products derived from this software
  *      without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  ******************************************************************************
  */

#include <STM32RTC.h>

/* Get the rtc object */
STM32RTC& rtc = STM32RTC::getInstance();

/* Change these values to set the current initial time */
const byte seconds = 0;
const byte minutes = 0;
const byte hours = 16;

/* Change these values to set the current initial date */
/* Monday 15th June 2015 */
const byte weekDay = 1;
const byte day = 15;
const byte month = 6;
const byte year = 15;

void setup()
{
  Serial1.begin(9600);

  // Select RTC clock source: LSI_CLOCK, LSE_CLOCK or HSE_CLOCK.
  // By default the LSI is selected as source.
  //rtc.setClockSource(STM32RTC::LSE_CLOCK);

  rtc.begin(); // initialize RTC 24H format

  // Set the time
  rtc.setHours(hours);
  rtc.setMinutes(minutes);
  rtc.setSeconds(seconds);

  // Set the date
  rtc.setWeekDay(weekDay);
  rtc.setDay(day);
  rtc.setMonth(month);
  rtc.setYear(year);

  // you can use also
  //rtc.setTime(hours, minutes, seconds);
  //rtc.setDate(weekDay, day, month, year);
}

void loop()
{
  // Print date...
  print2digits(rtc.getDay());
  Serial1.print("/");
  print2digits(rtc.getMonth());
  Serial1.print("/");
  print2digits(rtc.getYear());
  Serial1.print(" ");

  // ...and time
  print2digits(rtc.getHours());
  Serial1.print(":");
  print2digits(rtc.getMinutes());
  Serial1.print(":");
  print2digits(rtc.getSeconds());

  Serial1.println();

  delay(1000);
}



void print2digits(int number) {
  if (number < 10) {
    Serial.print("0"); // print a 0 before if the number is < than 10
  }
  Serial.print(number);
}

Выдает ошибку:

ПРЕДУПРЕЖДЕНИЕ: библиотека STM32RTC-master должна запускаться на архитектурах stm32 и может быть несовместима с вашей платой на архитектуре STM32F1.
In file included from D:\TEMP\arduino_modified_sketch_91395\SimpleRTC.ino:39:0:

C:\Users\�����\Documents\Arduino\libraries\STM32RTC-master\src/STM32RTC.h:46:2: error: #error "RTC configuration is missing. Check flag HAL_RTC_MODULE_ENABLED in variants/board_name/stm32yzxx_hal_conf.h"

 #error "RTC configuration is missing. Check flag HAL_RTC_MODULE_ENABLED in variants/board_name/stm32yzxx_hal_conf.h"

  ^

exit status 1
Ошибка компиляции для платы Generic STM32F103C series.

Особенно меня порадовала строчка: "ПРЕДУПРЕЖДЕНИЕ: библиотека STM32RTC-master должна запускаться на архитектурах stm32 и может быть несовместима с вашей платой на архитектуре STM32F1."

b707
Offline
Зарегистрирован: 26.05.2017

forfrends - для начала возьмите паяльник и пройдитесь по всем выводам часового кварца. У меня на половине блю-пиллов без пропайки RTС вообще не работает.

вот такой псевдо-код в моем проекте часов работает совершенно устойчиво:


#include <TimeLib.h>
#include <RTClock.h>

RTClock rt (RTCSEL_LSE); // initialise

uint32_t tt;

void setup(void)
{ 
  tt = rt.getTime();
  DisplayTime(tt); // вывод времени на часы - удалено из кода
 }

void loop() { }

forfrends
Offline
Зарегистрирован: 24.02.2015

b707, Спасибо. Сейчас попробую пропаять кварцы. А на пин VB у вас идет питание?

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

 А на пин VB у вас идет питание?

да

nik182
Offline
Зарегистрирован: 04.05.2015

Скетч из #5 нормально откомпилировался на другом ядре. Работу завтра проверю. 

Скетч использует 12216 байт (37%) памяти устройства. Всего доступно 32768 байт.
Глобальные переменные используют 708 байт (6%) динамической памяти, оставляя 9532 байт для локальных переменных. Максимум: 10240 байт.
 
Собственно вывод через USB.
02/04/20 10:50:19
02/04/20 10:50:20
02/04/20 10:50:21
02/04/20 10:50:23
 
 
forfrends
Offline
Зарегистрирован: 24.02.2015

Спасибо, все оказалось и проще. Я питал СТМку от STLink-a, и похоже просто не хватало питания для корректной работы часов. Хотя никакой дополнительной обвязки нет...

Запитал от USB и часы затикали ровно и без сбоев. Так же проверил, подал внешнее питание 3.3 вольта - тоже все отлично работает. Похоже просто оказался слабый китайский STLink, и не выдавал необходимую мощность.

forfrends
Offline
Зарегистрирован: 24.02.2015

b707, еще подскажите, часы точно идут? Или время от времени их нужно подстраивать?

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

b707, еще подскажите, часы точно идут? Или время от времени их нужно подстраивать?

я не помню, вроде порядка 2-3 секунды в сутки уход. Насколько помню, в аддоне Кларка есть метод подстройки точности RTC, так что этот показатель можно улучшить.

Но я не заморачивался. у меня все равно каждые 6 часов идет обновление времени по NTP - заодно это избавляет от необходимости начальной установки времени.

forfrends
Offline
Зарегистрирован: 24.02.2015

А как вы устанавливаете часы? У вас отдельные переменные для часов, минут, секунд, или все хранится в регистрах RTC?

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

А как вы устанавливаете часы? У вас отдельные переменные для часов, минут, секунд, или все хранится в регистрах RTC?

Сервер NTP отдает время в т.н. UnixTime - одном числе типа uint32_t. Точно в таком же формате работает внутренний RTC на STM32, так что я время не храню и не преобразовываю, а сразу загружаю в RTC строчкой:

rt.setTime(tt);

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Вопрос почти в тему : поскольку только собираюсь к stm32 начать работать, правильно я понимаю, достаточно батарейку ~3 вольта подцепить к stm и при отключении питания общего мы получаем относительно вечный RTC?

nik182
Offline
Зарегистрирован: 04.05.2015

Судя по паспорту ток RTC в нормальных условиях 1.4 мкА. Батарейка 2032 240 мА*ч . Срок службы батареи 10 лет. За это время f103 выест батарею только на половину. Это если будет всё время спать , а не показом времени заниматься.  

forfrends
Offline
Зарегистрирован: 24.02.2015

Хм. Столкнулся со странностью: часы останавливаются если отключить внешнее питание. Батарейка CR2032 (3.02 вольта) подключена к минусу и к VB. Подключен i2c дисплей SSD1306. При подключении питания все тикает, время на дисплее отображается. Если отключить питание то время в RTC останавливается. То есть при повторной подаче питания время пойдет с того же момента, на котором питание отключилось. На пример, время было: 21:15:45, отключаю питание, батарейка при этом остается подключенной, жду несколько минут, подключаю питание, и часы продолжают идти с 21:15:45 ....

Что это может быть? Вот скетч:

#include <RTClock.h>
#include <Wire.h>
#include <Adafruit_SSD1306_STM32.h>

RTClock rt (RTCSEL_LSI); // initialise
uint32 tt; 

#define OLED_RESET PC13
Adafruit_SSD1306 display(OLED_RESET);

#define LED_PIN PC13

byte S_hour = 22;    // hours
byte S_minute = 11;  // minutes
byte S_second = 10;  // sec.
byte Update = true;
byte DotBlinck = true;
char Buffer1[] = "Hello String";
char Buffer2[] = "Hello String";

// This function is called in the attachSecondsInterrpt
void blink () 
{
    DotBlinck = !DotBlinck;             // мигаем светодиодом в такт секундам
    digitalWrite(LED_PIN, DotBlinck);   
    Update = true;                      // разрешаем обновление дисплея
}

void setup() 
{
    tt = rt.getTime();      // получаем время с RTC
    if (tt < 100){          // если время не было установлено устанавливаем время
        tt = (S_hour * 3600) + (S_minute * 60) + S_second;
        rt.setTime(tt);
    }
    pinMode(LED_PIN, OUTPUT);
    //Serial1.begin(115200);
    rt.attachSecondsInterrupt(blink);           // Прерывание 1 раз в секунду вызывается таймером RTC
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // стартуем дисплей
    display.display();
    delay(2000);
    display.clearDisplay();
    
    display.setTextColor(WHITE);
}



void loop() 
{
    if (Update){                // если разрешено обновление дисплея
        int temp=0;     
        Update = false;         // запрещаем обновление
        tt = rt.getTime();      // получаем время с RTC
        //Serial1.println(tt);  // переводим в часы/минуты/секунды 
        S_hour = tt / 3600;     // hours
        temp = tt % 3600;
        S_minute = temp / 60;   // minutes
        S_second = temp % 60;;  // sec.
        sprintf(Buffer1,"%02d:%02d", S_hour, S_minute); // формируем в переменные для вывода на дисплей
        sprintf(Buffer2,"%02d", S_second);
        //Serial1.println(Buffer);
        display.clearDisplay();                         // выводим на дисплей
        display.setTextSize(4);
        display.setCursor(5,20);
        display.println(Buffer1);
        display.setTextSize(2);
        display.setCursor(100,0);
        display.println(Buffer2);
        display.display();
    }
}

 

forfrends
Offline
Зарегистрирован: 24.02.2015

Заметил отличие:
у меня стоит настройка: RTClock rt (RTCSEL_LSI);
Хотя в посте #6 в примере стит другая настройка: RTCSEL_LSE

но с RTCSEL_LSE у меня часы вообще не тикают...

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

forfrends пишет:

но с RTCSEL_LSE у меня часы вообще не тикают...

Значит проблема с внешним часовым кварцем.
LSI - low speed internal - внутренний (встроенный в МК) низкочастотный осциллятор
LSE - low speed external - внешний низкочастотный кварц

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

но с RTCSEL_LSE у меня часы вообще не тикают...

так вы кварц пропаяли, как я советовал? Возьмите припоя на паяльник, приложите к ножке кварца и держите, пока нога хорошо не прогреется и припой не растечется на ножке ровным слоем и не затекет под ножку.

и так с каждой ногой кварца.

Я не знаю, почему брак именно тут - но блюпилы просто пачками идут с али с не припаянным кварцем

nik182
Offline
Зарегистрирован: 04.05.2015

Мне пришло 5 штук с припаянным, но не работающим. Пришлось прямо поверх ног припаять свой в виде трубочки. Работает нормально через ноги оригинального.

forfrends
Offline
Зарегистрирован: 24.02.2015

Кварц я пропаял. Потыкал осциллографом - на пине PC15 (питание кварца) вместо стабильного напряжения идет какой-то синосоподобный сигнал с частотой 50 000 Гц, и амплитудой до 0,35 - 0,4 вольта. Соответственно кварц не работает. На PC14 нет тактирующего сигнала от кварца.

И так на всех платах... Либо все платы бракованные, либо кварцевые генераторы, либо код. Сейчас попробую выпаять кварц и посмотрю что происходит на PC15. Надо еще по схеме посмотреть, может конденсатор пробит (на всех платах???) и садит питание...

 

Результат: без кварца на PC15 и PC14 присутствует непонятный сигнал с частотой 50 000 Гц... и теперь как узнать, это МК бракованный или код кривой?...

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

и теперь как узнать, это МК бракованный или код кривой?...

код из примера #6 - это буквально одна строка, что там может быть кривого?:) - он рабочий

forfrends
Offline
Зарегистрирован: 24.02.2015

Я имею в виду не сам скетч, а то что находится внутри библиотеки. Может там где-то ошибка.

Вот как выглядит сигнал. Он очень сильно реагирует на наводки (изменяется амплитуда)

forfrends
Offline
Зарегистрирован: 24.02.2015

Ошибка, был плохой контакт на щупе осцила.

Сигнал выглядит вот так:

Частота 50 000 Гц, амплитуда 0,18 - 0,38 вольт...

Это без подключенного кварца на PC15. Скетч пустой:

#include <RTClock.h>

RTClock rt (RTCSEL_LSE); // initialise

void setup(void){ }

void loop() { }

 

b707
Offline
Зарегистрирован: 26.05.2017

это не 50 000 Гц (50 КГц), а просто 50 Гц - самая обычная наводка от квартирной электропроводки... или от плохого блока питания

forfrends
Offline
Зарегистрирован: 24.02.2015

Получается на PC15 просто не подымается питание кварца? Надо ковырять библиотеку...

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Получается на PC15 просто не подымается питание кварца? Надо ковырять библиотеку...

хотите, ковыряйте. Я уже устал повторять. что у меня эта библиотека - работает.

я больше склоняюсь к предположению niк182 - кварц мертвый

forfrends
Offline
Зарегистрирован: 24.02.2015

Это все без кварца. Так или иначе, для его работы должно подыматься питание на PC15 , (или я ошибаюсь?) а этого нет.

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Это все без кварца. Так или иначе, для его работы должно подыматься питание на PC15 , (или я ошибаюсь?) а этого нет.

во-первых. если правильно помню - не на pc15(OSC32_OUT), а на PC14 (OSC32_In)

А во вторых - вы на Vb не забываете 3.3в подавать при этих измерениях?

b707
Offline
Зарегистрирован: 26.05.2017

хотя нет, не должно на рс14 и рс15 ничего подаваться, это самые обычные GPIO и ими можно пользоваться независимо от RTC

короче. если до вечера не разберетесь и желание не пропадет - могу взять заведомо рабочую блю-пилл и померять. что там появляется на этих ножках

forfrends
Offline
Зарегистрирован: 24.02.2015

Да, питание на Vb подается.

Только что поставил кварц с заведомо рабочего устройства. Результат абсолютно тот же

Буду очень признателен если посмотрите.

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Буду очень признателен если посмотрите.

ок, где-нить после 21 час по Мск

forfrends
Offline
Зарегистрирован: 24.02.2015

На всякий случай выкладываю проект, созданный Ардуино при компиллировании:

https://drive.google.com/open?id=1MMi_umWEKQxa1bvNzdgOZtnZ8Lx3HEM2

Попробуйте его прошить в свою STM, так можно будет проверить проблему с Ядром или библиотекой.

Сам скетч минимальный:

#include <RTClock.h>

RTClock rt (RTCSEL_LSE); // initialise

uint32_t tt;

void setup(void)
{ 
   tt = rt.getTime();
 }

void loop() { }

 

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Сам скетч минимальный:

какой-то он уж слишком минимальный, хотя бы добавьте вывод времени в Сериал. иначе как понять, что RTC "тикает" ?

forfrends
Offline
Зарегистрирован: 24.02.2015

После очередной перепрошивки, часы заработали... Прошивал стандартный скетч:

#include <RTClock.h>

RTClock rt (RTCSEL_LSE); // initialise
uint32 tt; 

#define LED_PIN PC13

// This function is called in the attachSecondsInterrpt
void blink () 
{
    digitalWrite(LED_PIN,!digitalRead(LED_PIN));
}

void setup() 
{
    pinMode(LED_PIN, OUTPUT);
    Serial1.begin(115200);
    rt.attachSecondsInterrupt(blink);// Call blink
}



void loop() 
{
  
  if (rt.getTime()!=tt)
  {
    tt = rt.getTime();
    
    Serial1.print("time is: ");
    Serial1.println(tt);
  }
}

Плата с батарейкой. Перепаивал на ней все вдоль и поперек + поменял кварц, и после прошивки часы пошли и продолжают идти даже с отключенным питанием (от батарейки)... ХЗ что с платой было. Но все остальные платы все так же отказываются работать.

Попробую вернуть на место старый кварц и посмотрю на результат.

Еще нюанс: стоит щупом дотронуться до любого контакта кварца, как часы сразу останавливаются. На осциллографе пусто. Нет никакого сигнала. Такое чувство, будто у STM не хватает мощности. но я питаю сразу от 2-х источников, от STLink-а и от USB-TTL конвертера.

b707
Offline
Зарегистрирован: 26.05.2017

я так понял, проверять подачу питания на рс14 рс15 уже не надо?

nik182
Offline
Зарегистрирован: 04.05.2015

Осциллографом можно подключаться только на PC15 для LSE. Желательно не тыкать, а на пределе 1:10 на щупе подключить щуп до инициализации. Тыкая щупом Вы вносите емкость в кварцевый генератор и сбиваете генерацию. Особенно если это РС14. 

forfrends
Offline
Зарегистрирован: 24.02.2015

Интернет заглючил, только сегодня смог зайти.

Да, проблема была не программная, а физическая. Так как в библиотеке я ничего не успел изменить, и плата заработала после перепаиваний. Но! Через некоторое время опять перестала работать. 5 плат, и все не работают... Распечатал 6-ю. Сразу прошил тестовым скетчем (где светодиод мигает по прерыванию секунд). Работает! Запаял гребенки. Прошелся щеткой со спиртом. Включаю... Не работает!

Проблема оказалась во флюсе, который нарушал работу кварца. Плата вновь заработала только после 3-х циклов поочередной промывке Вода - Спирт.

Вот и вся беда. А проблем мне создало на несколько вечеров.

Перепроверил и другие платы. После тщательной промывки они тоже заработали. 

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Проблема оказалась во флюсе,

кислотный наверно? - я пользуюсь обычным ЛТИ. он берет все и совершенно безопасен для контактов и элементов. Если бы не визуально "грязный" вид - его можно было бы даже не смывать.

А вот у заказчиков уже несколько раз сталкивался с тем. что люди по неграмотности купят какой-то агрессивный флюс - и потом мучаются с постоянными глюками оборудования.

forfrends
Offline
Зарегистрирован: 24.02.2015

Я пользуюсь вот этим припоем: https://www.proline-tools.com.pl/ru/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/olovo-payalnoe-60320

Больше ничем платы не обрабатываю (кроме спирта). С подобной ситуацией столкнулся впервые. 

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Я пользуюсь вот этим припоем...

Больше ничем платы не обрабатываю (кроме спирта).

посмотрел - припой без флюса. Если ничем больше не пользоваться - как же вы паяете? У вас же сплошной непропай будет

nik182
Offline
Зарегистрирован: 04.05.2015

Вот и я наступил на эти грабли. Воткнул в первую попавшуюся плату из стола - не работает. Во второй работает. У меня в программе стоит проверка на правильный запуск LSE - через неё программа не перепрыгивает. Соответственно сразу диагностика. 

forfrends
Offline
Зарегистрирован: 24.02.2015

b707, Там не только олово но и флюс внутри. А какой - не известно. Паяется очень хорошо. Контакты лудятся быстро.

nik182, вы через отладчик проверяли, или просто в скетче поставили условие? Если через отладчик, то в какой среде его включаете?

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

b707, Там не только олово но и флюс внутри. А какой - не известно. Паяется очень хорошо. Контакты лудятся быстро.

в описании флюса нет...

forfrends
Offline
Зарегистрирован: 24.02.2015

Припой Sn60 Pb40 2.5%

2.5% - количество припоя. Хотя его состав нигде не прописан.

b707
Offline
Зарегистрирован: 26.05.2017

forfrends пишет:

Припой Sn60 Pb40 2.5%

2.5% - количество припоя. Хотя его состав нигде не прописан.

ага олово - 60%, свинец - 40... я наверно что-то в школе недоучил. но 60+40 =100, куды ж еще 2.5% девать? :))))

forfrends
Offline
Зарегистрирован: 24.02.2015

:))))

Там все проще: флюс + припой = 100%, из которых 2.5% - припой. Остается 97,5% флюса. А флюс состоит: олово - 60%, свинец - 40%

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

forfrends пишет:

:))))

Там все проще: флюс + припой = 100%, из которых 2.5% - припой. Остается 97,5% флюса. А флюс состоит: олово - 60%, свинец - 40%

ты ничо не попутал?  Флюс - это, наабарот, канифоль, а не олово+свинец (это как раз - припой). 

forfrends
Offline
Зарегистрирован: 24.02.2015

Может и перепутал :)