Супер простой RTC

NEO2121
Пн 22 августа 2016 г., 21:28
Я строю умные часы на основе STM32F1, и я добрался до RTC Part. Для этого мне нужно использовать RTC, встроенный в STM. Прочитав здесь темы, я решил собрать супер упрощенный пример, который (я надеюсь), кто -нибудь поймет, даже относительные новички в Arduino. Надеюсь, это поможет кому -то. Пример библиотеки достаточно прост, но я почувствовал, что другой подход не повредит.
#include //this is where we will store the unix time uint32_t tt = 0; //these will store your hours, minutes, seconds for display //we will update these variables whenever we read the RTC so we can use them over and over wherever we need byte currentHours = 0; byte currentMinutes = 0; byte currentSeconds = 0; // initialise the RTC library. // NOTE: 'RTCSEL_LSE' assumes you have a 32.768Mhz crystal setup physically attached to the appropriate pins // on the microcontroller. Pins PC15 and PC14 are the RTC crystal pins. RTClock rtc (RTCSEL_LSE); void setup() { Serial.begin(9600); //you can also SET the rtc time with rtc.setTime(unixTimestamp) where unixTimestamp is a unix timestamp } void loop() { //get the RTC time (returns unix time, a 32bit integer representing seconds elapsed from Jan 01, 1970) tt = rtc.getTime(); breakTime(tt); if(currentHours < 10) { Serial.print(0); } //leading zeroes to look nice Serial.print( currentHours ); Serial.print( ":" ); if(currentMinutes < 10) { Serial.print(0); } //leading zeroes to look nice Serial.print( currentMinutes ); Serial.print(":"); if(currentSeconds < 10) { Serial.print(0); } //leading zeroes to look nice Serial.println( currentSeconds ); delay(1000);//or whatever } //stolen and simplified from the time library by Paul Stoffregen //just derives the hours, minutes, seconds from the unix timestamp and sets the global variables we use for display to those values void breakTime(uint32_t timeInput){ currentSeconds = timeInput % 60; timeInput /= 60; // now it is minutes currentMinutes = timeInput % 60; timeInput /= 60; // now it is hours currentHours = timeInput % 24; }

Пито
Пн 22 августа 2016 г. 22:11
У «синей таблетки» его нет, но вы можете добавить сами на макет. Это так :)
Кстати, errata рекомендует для внешнего генератора LSE: Рекомендуется установить дополнительный резистор параллельной обратной связи (от 16 МОм до 22 МОм) на борту, чтобы помочь запуск колебаний во всех случаях (см. Рисунок 1). Для получения более подробной информации о совместимых кристаллах и аппаратных методах на печатной плате см. В примечании AN2867.

NEO2121
Вторник 23 августа 2016 г. 5:58 утра
Так вот что этот пакет рядом с кристаллом 8 МГц? Я не мог найти код на нем нигде, и понятия не имел, что кристаллы тоже пришли в не блестящие пакеты :)) Я отредактировал свой пост, спасибо за Heads Up.

Кроме того, в таблице данных для STM32F103X8 говорится, что в сам чип встроен резистор обратной связи 5 м (стр. 54), вот почему я сказал, что это необязательно.

Kurt_r
Солнце 18 сентября 2016 г. 12:46 утра
Спасибо за это, вы узнаете, какие подразделения RTC это должно работать с?
У меня есть DS1302, DS1307 и DS3231, надеюсь, один из них вписывается в эту сборку.

Курт

Rogerclark
Солнце 18 сентября 2016 г. 3:34
@neo2121

Немного не по теме, но если вам нужны умные часы, может быть легче повторно проникать в NRF51822 Smart Watch / Fitness Tracker Tracker.

Вы можете получить их менее чем за 20 долларов США, с NRF51822 с 256K Flash и 32K ОЗУ, 64 x 32 пиксельным дисплеем, 3 акселерометром 3 оси, 1 кнопкой, 1 вибрационным двигателем, а также датчиком сердечного ритма

У меня есть один на скамейке, когда я схватываюсь с
Id100hr_front_smart_watch1.jpg
Id100hr_front_smart_watch1.JPG (112.52 киб) просмотрено 3475 раз

Just4fun
Солнце 18 сентября 2016 г. 11:32 утра
Пито написал: Кстати, errata рекомендует для внешнего генератора LSE: Рекомендуется установить дополнительный резистор параллельной обратной связи (от 16 МОм до 22 МОм) на борту, чтобы помочь запуск колебаний во всех случаях (см. Рисунок 1). Для получения более подробной информации о совместимых кристаллах и аппаратных методах на печатной плате см. В примечании AN2867.

Ахулл
Солнце 18 сентября 2016 г. 11:44
Kurt_r написал:Спасибо за это, вы узнаете, какие подразделения RTC это должно работать с?
У меня есть DS1302, DS1307 и DS3231, надеюсь, один из них вписывается в эту сборку.

Курт

Kurt_r
Пн 19 сентября 2016 г. 12:01
О, хорошо. Так что это похоже на Teensy, когда они включали кристалл и аккумулятор.

Пито
Вторник 20 сентября 2016 г., 16:51
Самая низкая энергия принимает PCF8563 - 200NA. Нужен резонатор и 1 конденсатор. Точность зависит от резонатора и конденсатора (и T и VCC), и обычно несколько секунд в месяц, когда конденсатор устанавливается должным образом.

Средний ток с DS1307, нуждается в резонаторе и конденсаторе, точность, такая же, как W/ PCF.

Самый высокий ток с DS3231 - 1.5UA. Он не требует внешних компонентов, он компенсируется температурой и обладает настройкой старения, а точность - вторая в месяц (шахты делали 2 секунды/6 месяцев, при комнатной температуре, после того, как он возился со стареющей настройкой).

RTCS внутри MCU иногда даже более голодны, нуждаются в резонаторе и конденсаторах, иногда имеют простую настройку через манипулирование регистрацией секунд. Точность, аналогичная DS1307..

PS: мой ETA2824-2-ELABOR.. : P

NEO2121
Пн 26 сентября 2016 г., 16:13
@Роджер

Я видел, как вы разместили эту ссылку eBay в какой -то другой ветке. Но какая точная модель это? Я бы хотел получить один и поиграть, но в ссылке, которую вы разместили, были различные продукты по разным ценам, и я хотел спросить, какой из них это.

Что касается моего умного наблюдения, у меня есть схема, и ядро ​​ее работает на моем макете. Я хочу сделать пользовательскую печатную плату и все такое джаз не потому, что это легко, а потому, что это сложно :)) Я выложу ветку в разделе «Проекты», когда он будет выглядеть немного интереснее. План состоит в том, чтобы иметь часы с женским заголовком GPIO с одной стороны, в который вы можете засохнуть, и осциллограф.

Rogerclark
Пн 26 сентября 2016 г., 21:23
Видеть https: // www.YouTube.com/watch?V = SBHYQ1OSM-4

Я рекомендую ID107HR, так как у него есть кнопка на спереди, а также реальная кнопка сбоку. Я заплатил около 18 долларов США, включая почтовые расходы (на Aliexpress)

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


У меня все работает, кроме обнаружения сердечного ритма

Mrburnette
Сб, 01 октября 2016 г. 18:08
NEO2121 написал:Не требуется дополнительных библиотек, только библиотека RTClock, которая поставляется с STM32Duino.

Simonliu009
Солнце 26 марта 2017 г. 2:57
вау, большое спасибо за это.
: D

STM32 Duino *Loop *