Перейти к содержанию
    

Регистры калибровки STM32F4

Потерял доку, где были описаны регистры и их адреса с колибровочными зоводскими значениями для VREF и температуры. Однодневный поиск по ST почему то ничего не дал.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потерял доку, где были описаны регистры и их адреса с колибровочными зоводскими значениями для VREF и температуры. Однодневный поиск по ST почему то ничего не дал.

Может, поискать в семействе STM32F3?...

DS на STM32F372/373

6.3.20 Temperature sensor characteristics

6.3.21 VBAT monitoring characteristics

6.3.22 Timer characteristics

The parameters given in Table 68 are guaranteed by design.

Refer to Section 6.3.14: I/O port characteristics for details on the input/output alternate

function characteristics (output compare, input capture, external clock, PWM output).

Table 65. Temperature sensor calibration values

Calibration value name Description Memory address

TS_CAL1 TS ADC raw data acquired at temperature of 30 °C, VDDA= 3.3 V 0x1FFF F7B8 - 0x1FFF F7B9

TS_CAL2 TS ADC raw data acquired at temperature of 110 °C VDDA= 3.3 V 0x1FFF F7C2 - 0x1FFF F7C3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На STM32F4 То же было. Похоже они новый мэнуал выложили и тут же убрали. Я оттуда успел только калибровку Vref выдрать.

0x1FFF7A2A - значение short при 3,3V и температуре в 30С.

 

 

Проверил. Не совпадает F3 и F4:(

 

Нашел. Для F4 в электрических параметрах на STM32F427xx-STM32F429xx, хотя во всех F4xx присутствует :)

 

VREFIN_CAL Raw data acquired at temperature of 30 °C VDDA = 3.3 V 0x1FFF 7A2A - 0x1FFF 7A2B

TS_CAL1 TS ADC raw data acquired at temperature of 30 °C, VDDA= 3.3 V 0x1FFF 7A2C - 0x1FFF 7A2D

TS_CAL2 TS ADC raw data acquired at temperature of 110 °C, VDDA= 3.3 V 0x1FFF 7A2E - 0x1FFF 7A2F

 

Изменено пользователем vlad_new

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На STM32F4 То же было. Похоже они новый мэнуал выложили и тут же убрали.

 

 

Погугли RM0090 reference manual там все должно быть. Сам его долго искал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Погугли RM0090 reference manual там все должно быть. Сам его долго искал...

Обычно такое (конкретные значения) указывают в DS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/14/2013 at 10:07 PM, vlad_new said:

На STM32F4 То же было. Похоже они новый мэнуал выложили и тут же убрали. Я оттуда успел только калибровку Vref выдрать.

0x1FFF7A2A - значение short при 3,3V и температуре в 30С.

 

 

Проверил. Не совпадает F3 и F4:(

 

Нашел. Для F4 в электрических параметрах на STM32F427xx-STM32F429xx, хотя во всех F4xx присутствует :)

 

VREFIN_CAL Raw data acquired at temperature of 30 °C VDDA = 3.3 V 0x1FFF 7A2A - 0x1FFF 7A2B

TS_CAL1 TS ADC raw data acquired at temperature of 30 °C, VDDA= 3.3 V 0x1FFF 7A2C - 0x1FFF 7A2D

TS_CAL2 TS ADC raw data acquired at temperature of 110 °C, VDDA= 3.3 V 0x1FFF 7A2E - 0x1FFF 7A2F

 

 

Кто знает, почему для хранения калибровочных данных используется диапазон адресов 0x1FFF 7A2C - 0x1FFF 7A2D, в двух регистрах это значение хранится что-ли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 минуту назад, izolenta сказал:

Кто знает, почему для хранения калибровочных данных используется диапазон адресов 0x1FFF 7A2C - 0x1FFF 7A2D, в двух регистрах это значение хранится что-ли?

А сколько разрядов в АЦП и сколько в байте? :clapping:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, ViKo said:

А сколько разрядов в АЦП и сколько в байте? :clapping:

Я, по крайней мере, использую в АЦП 12 разрядов, ну а в байте их, конечно же, 8)) Хотите сказать, что это как-то связано с организацией памяти в STM32 ?, правда не читал об этом еще. Я представляю, что раз 32 разрядные МК, то и по адресу располагается 32-разрядный регистр, включая, зарезервированный системой биты. В примерах, которые находил в инете, хоть и используют 12 разрядный АЦП, но ссылаются по младшему адресу из двух, зачем нужен тогда второй? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, izolenta сказал:

Хотите сказать, что это как-то связано с организацией памяти в STM32

Во всех микроконтроллерах, памяти и вообще адресуются именно байты.

P.S. Если не во всех, то в большинстве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, ViKo said:

Во всех микроконтроллерах, памяти и вообще адресуются именно байты.

P.S. Если не во всех, то в большинстве.

Попробовал с разными типами данных и выводил по UART

1) #define TS_cal_110 ((uint8_t*) 0x1FF800FE)

   sprintf (txt_buf, "TS_cal_110=%d ",  *TS_cal_110);

    в терминалку вывелось значение 87 (согласен)

2)    #define TS_cal_110 ((uint16_t*) 0x1FF800FE)

   sprintf (txt_buf, "TS_cal_110=%d ",  *TS_cal_110);

    в терминалку вывелось значение 855 ( как такое может быть, если по адресу может храниться только 1 байт, десятичное число до 255)

3) 

#define TS_cal_110 ((uint32_t*) 0x1FF800FE)

   sprintf (txt_buf, "TS_cal_110=%d ",  *TS_cal_110);

    в терминалку ничего не вывелось ( ???)

 

Чего я не понимаю? Объясните, пожалуйста, если знаете. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 минуту назад, izolenta сказал:

как такое может быть, если по адресу может храниться только 1 байт

А вы читаете и выводите не байт, а 16 битовое число, начинающееся с указанного адреса (uint16_t*) 0x1FF800FE.

В третьем случае, скорее всего, невозможно прочитать 4-байтовое слово. А так: (uint32_t) 0x1FF800FC  ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в ST для хранения калибровочных данных используются разные адреса в зависимости от чипа

 

Chip CAL1 CAL2
L15+[CRUV]C 0x1FF800FA 0x1FF800FE
L162[RV]C 0x1FF800FA 0x1FF800FE
L15[12]+[68B] 0x1FF8007A 0x1FF8007E

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, ViKo said:

А вы читаете и выводите не байт, а 16 битовое число, начинающееся с указанного адреса (uint16_t*) 0x1FF800FE.

В третьем случае, скорее всего, невозможно прочитать 4-байтовое слово. А так: (uint32_t) 0x1FF800FC  ?

 

 

Да вроде нет, вывожу только то, что передал в массив uint8_t txt_buf[200], то есть значение, которое содержится по адресу 0x1FF800FE.  Или не так?

Вот моя функция передачи строки:

void SendUSART (uint8_t *text)
{
    while(*text)
    {
        while(!(USART2->SR & USART_SR_TC)); //Transmission is complete
        USART2->DR = *text;    //write data
        text++;        
    }
}

 

Если пробовать так (uint32_t) 0x1FF800FC, то выдаст TS_cal_110=56033280 ( в принципе подходит под тип uint32_t).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

36 minutes ago, dsl2640free said:

в ST для хранения калибровочных данных используются разные адреса в зависимости от чипа

 

Chip CAL1 CAL2
L15+[CRUV]C 0x1FF800FA 0x1FF800FE
L162[RV]C 0x1FF800FA 0x1FF800FE
L15[12]+[68B] 0x1FF8007A 0x1FF8007E

Хотите сказать, что все-таки для хранения каллибровочных констант используется один адрес, а не диапазон из двух соседних,

например для cal2 0x1FF8 00FE - 0x1FF8 00FF. И,мол, производители указали диапазон для целого семейства МК? Тогда почему нигде в даташите или рефмане об этом не сказано и не указано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

56033280 dec = 00000011 01010111 00000000 00000000 bin

Посмотрите, не находите здесь чисел 855 и 87?

9 минут назад, izolenta сказал:

Да вроде нет

Точно "да"!

10 минут назад, izolenta сказал:

Если пробовать так (uint32_t) 0x1FF800FC

Не так. А так:

(uint32_t *) 0x1FF800FC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...