Jump to content

    
Sign in to follow this  
Danis

STM32 – вопросы – проблемы - решения.

Recommended Posts

Проверил: если проц перевести в STOP при включенном IWDG, то последний сбросит МК. Т.е. надо вачдог как-то обновлять во время спячки

Посмотри DBGMCU тему: если в регистре DBGMCU->CR установить бит DBGMCU_IWDG_STOP (0x100) где-нибудь в процессе инициализации системы, то при отладке IWDG тоже будет стоять. Это имеется ввиду?

 

 

Кто-нибудь пробовал применить встроенный CEC интерфейс для чего-нибудь полезного? Например, в качестве дополнительного UART или I-wire (если это вообще возможно) ?

CEC интерфейса как отдельного железа нет: это библиотечная реализации протокола управления бытовой аппаратурой с использованием существующей "обычной" периферии.

Edited by KnightIgor

Share this post


Link to post
Share on other sites
Посмотри DBGMCU тему: если в регистре DBGMCU->CR установить бит DBGMCU_IWDG_STOP (0x100) где-нибудь в процессе инициализации системы, то при отладке IWDG тоже будет стоять. Это имеется ввиду?

 

 

 

CEC интерфейса как отдельного железа нет: это библиотечная реализации протокола управления бытовой аппаратурой с использованием существующей "обычной" периферии.

А за что отвечает пин "CEC" (PB8 в stm32f100xx) ?

Share this post


Link to post
Share on other sites

А кто- нибудь заморачивался написанием собственного софта (под PC) для прошивки STM32 через его штатный бутлоадер на производстве?

Сейчас использую ST-шный flash loader demonstrator, но он слишком универсальный по интерфейсу...

 

Хочется окно с одной кнопкой- прошить- он стирает чип и заливает новую прошивку из hex- файла например..

 

Есть ли открытые подобные проекты? А то из programing manual не все понятно :)

Share this post


Link to post
Share on other sites

Спасибо! Пока не разобрался как скачать, "This project currently has no downloads."

Share this post


Link to post
Share on other sites

Качать там нужно исходники:)

 

Share this post


Link to post
Share on other sites

Кто-нибудь разбирался с изохронным USB?

В документации для STM32F103C8 написано, что максимальный размер пакета для изохронного эндпоинта 512 байт.

Но не понятно, в случае эндпоинта с двумя буферами, получается максимальный размер пакета 256 байт ?

 

Использую библиотеку STM32_USB-FS-Device_Driver V3.2.1.

При передаче пакетов размером 192 байта с интервалом 1мс работает, а 384 - уже нет...

 

Еще не совсем понятно, как устанавливать значения ENDP1_BUF0Addr и ENDP1_BUF1Addr в файле usb_conf.h.

Share this post


Link to post
Share on other sites
Но не понятно, в случае эндпоинта с двумя буферами, получается максимальный размер пакета 256 байт ?

 

Вот из даташита.

22.2 USB main features

● USB specification version 2.0 full-speed compliant

● Configurable number of endpoints from 1 to 8

● Cyclic redundancy check (CRC) generation/checking, Non-return-to-zero Inverted

(NRZI) encoding/decoding and bit-stuffing

● Isochronous transfers support

● Double-buffered bulk/isochronous endpoint support

● USB Suspend/Resume operations

● Frame locked clock pulse generation

Note: The USB uses a dedicated 512-byte SRAM memory for data transmission and reception

(only the USB accesses this SRAM).

 

У меня так и получилось. MAx размер пакета 256 байт.

 

 

 

Share this post


Link to post
Share on other sites

Подскажите - как правильно организовать работу DMA с группой введеных каналов ADC1 и ADC2, или введеные каналы только в прерывании надо обслуживать?

Share this post


Link to post
Share on other sites

Цитата из даташита

Only the end of conversion of a regular channel generates a DMA request ...

 

 

Share this post


Link to post
Share on other sites
Подскажите - как правильно организовать работу DMA с группой введеных каналов ADC1 и ADC2, или введеные каналы только в прерывании надо обслуживать?

 

Чето вопрос не совсем понял. Переформулируйте. А вообще разве ADC2 можно на DMA посадить?

 

Reference manual STM32_rev11

Note: Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be transferred in

dual ADC mode using DMA thanks to master ADC1.

Share this post


Link to post
Share on other sites
Цитата из даташита: Only the end of conversion of a regular channel generates a DMA request ...

Ясно, спасибо.

 

Чето вопрос не совсем понял. Переформулируйте. А вообще разве ADC2 можно на DMA посадить?

 

Reference manual STM32_rev11

Note: Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be transferred in

dual ADC mode using DMA thanks to master ADC1.

Да, да - я знаю. Я имел ввиду работу ADC1&2 в Dual режиме.

Просто есть восемь входных аналоговых сигналов, я подумал сформировать введеные группы на первом и втором АЦП. Хотелось использовать смещение, для регулярных каналов оно не поддерживается.

Edited by Fry__

Share this post


Link to post
Share on other sites

Возникло затруднение при выборе в IAR языка С++. Хочу часть программы перенести с «большой машины» на контроллер STM32, там она ООП вся, на Си переписывать нет времени.

Все компилиться и зашивается как и при использовании языка Си, но программа не отлаживается J-Link-ом, вернее начинает отлаживаться и затыкается. Использую периферийную библиотеку STM32 version V3.4.0.

Все нормально инициализируется, но после инициализации NVIC, программа затыкается так (см. скриншот). В чем косяк? Предполагаю, что не видит обработчик прерывания?

post-44990-1300795853_thumb.jpg

Share this post


Link to post
Share on other sites
extern "C" TIM2_IRQHandler()

...

СПАСИБО, так работает!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this