← All posts tagged stm32l-discovery

Kim
STM8 Короче, жуйк, я начал писать либу на STM8 платку (ориентируюсь на STM8L-Discovery), которая очень похожа по API на libopencm32. Ориентируюсь на SDCC компилятор (у которого вы сейчас не можете выставить прерывание TRAP).

Планирую на этой неделе провести минально необходимый набор работ: прописать адреса портов, маски управляющих битов и всё это. Спрашиваю ваши предложения по реализации по тому в чём писать документацию API этого.
Kim
stm32l-discovery аппаратный lcd заработал (led экран на прошлой платке я обрабатывал руками софтверно по таймеру, сейчас использую родной lcd экран и работаю с ним через аппаратную поддержку lcd).

В принципе это тот код, которого в libopencm3 нет. Стоит ли заморочиться и дописать его в библиотеку?
Kim
ЖЖ code fail stm32l-discovery lp-run
В общем не осилил перевести эту железяку в low power run mode. Фигачу такой код:

#include <libopencm3/stm32/rcc.h> 
#include <libopencm3/stm32/pwr.h> 
#include <libopencm3/stm32/flash.h> 

int main()
{
  clock_scale_t myclock_config = {
    .hpre = RCC_CFGR_HPRE_SYSCLK_DIV2,
    .ppre1 = RCC_CFGR_PPRE1_HCLK_NODIV,
    .ppre2 = RCC_CFGR_PPRE2_HCLK_NODIV,
    .voltage_scale = RANGE2, // Документация требует Range2 для low power run mode
    .flash_config = FLASH_ACR_LATENCY_0WS,
    .apb1_frequency = 65536,
    .apb2_frequency = 65536,
    .msi_range = RCC_ICSCR_MSIRANGE_65KHZ, // Для работы требуется MSIRANGE не больше первого. Ставим нулевой.
  };
  rcc_clock_setup_msi(&myclock_config);
  rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_PWREN);
  PWR_CR |= PWR_CR_LPSDSR;
  PWR_CR |= PWR_CR_LPRUN;
  while(1) {
      __asm__("nop");
    }
}

А в результате, хоть делай "PWR_CR |= PWR_CR_LPRUN;" хоть не делай -- жрёт оно под 1 милиампер, вместо ожидаемых 40 микроампер.
Kim
ЖЖ ? battery stm32l-discovery А какой русский термин используется для "solder bridge"?

Убрал с платки два этих моста оформленных резистрами на 0 Ом, припаял держатель для батарейки и впаял вилку для джампиков между, чтобы переключаться между внешним питанием и батарейкой.

Ну то есть теперь моя платка умеет работать от батарейки.
Kim
ЖЖ BL USART stm32l жуйц, всё же я идиот: поверил интернетам, а не элементарной логике. Начал вслед за we.easyelectronics.ru выставлять пин в GPIO_Mode_IN_FLOATING, вместо того, чтобы поставить его в GPIO_Mode_AF_PP и выставить правильную альтернативную функцию в соседнем регистре. И в результате USART'у не через что было получать данные, а я долго удивлялся почему мне датчик температуры на Reset ничего не отвечает.

Когда я сдался под напором логики — всё заработало >_<
Kim
детство В жопе stm32l-discovery в общем-то всё работает и программируется, но ничего ценного пока не сделал. Разве что сломал ногу жк-дисплею когда вынимал его (28 ног это слишком много, свободных пинов не остаётся, так что вывод будет на 11 ног светодиодного экрана) и припаял вместо неё кусок проволоки, с которым жк-экран отлично заработал.