#define LED_1 GPIOA->BSRR |= GPIO_ODR_0 // stm32f030 Управление LED #define LED_0 GPIOA->BRR |= GPIO_ODR_0 // stm32f030
#define PC13_0 GPIOC->BSRR |= GPIO_ODR_ODR13 // PC13 OUT LED OFF (stm32f103) Управление LED1 #define PC13_1 GPIOC->BRR |= GPIO_ODR_ODR13 // PC13 OUT LED ON (stm32f103) #define PC13_N GPIOC->ODR ^= GPIO_ODR_ODR13 // PC13 OUT LED INVERT (stm32f103)
union un_dataword { // 5 Байт, объединение содержит данные для передачи AD9850 uint32_t dataword_freq; // 32 бит слово, для управления частотой uint8_t dataword_byte[5]; // массив для побайтного доступа }un;
// Обработчик прерываний от SPI1 (for spi slave) void SPI1_IRQHandler(void) { SPIData=0; if ((SPI1->SR & SPI_SR_RXNE) == 1) { // Прерывание вызвано приемом байта? SPIData = SPI1->DR; // Читаем то что пришло, clear flag if (led_st == 1) {LED_0; led_st=0;} else {LED_1; led_st=1;} // Инвертируем состояние светодиода SPI1->DR = SPIData; // Отправляем обратно то что приняли } }
// Обработчик прерывани¤ системного таймера, прерывани¤ каждую 1 ms void SysTick_Handler() { if (TimingDelay != 0) TimingDelay--; }
// Функция временной задержки в милисекундах void Delay_ms(uint32_t nTime) { TimingDelay = nTime; while (TimingDelay != 0) {} }
/* while (1) { // for spi slace CS_ON(); // Подаем сигнал CS слейву SPISendByte(data); // Передаем байт через SPI1 CS_OFF(); // Снимаем сигнал CS if ((data-1) == SPIData) LED_1; // Пришли правильные данные? // Возможно тут есть неочевидный момент. Отправляем data, а ожидаем (data-1). // Это связано с тем, что слейв не может передавать данные пока мастер не // инициирует обмен данными. Таким образом если мастер сейчас передает // число 123, то оно ему вернется когда он будет передавать следующий байт (124). data++; Delay_ms(10); LED_0; Delay_ms(200); } */ }
Заголовок сообщения: Re: STM32F030 (STM32F103) и генератор до 40 МГц AD9850
Добавлено: Пт июл 24, 2015 09:54:10
Друг Кота
Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18805 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:2 Медали: 1
ичо?
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Заголовок сообщения: Re: STM32F030 (STM32F103) и генератор до 40 МГц AD9850
Добавлено: Вс июл 26, 2015 23:05:42
Электрический кот
Зарегистрирован: Вт май 05, 2009 10:43:42 Сообщений: 1087 Откуда: Россия
Рейтинг сообщения:1
ТС решил похвалиться. Собсна наверно все.
Если по теме, то спасибо, слизал в копилку, и отдельная благодарность за нормальную инициализацию путем обращения к регистрам, а не всякие там CMSIS-овские initStructure
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
И собственно - на кой здесь прерывания да еще и слейва ?
Реально.
Все, что закомментировано, относится к созданию связи по SPI между двумя контроллерами. Прием осуществляется в прерывании. Этот код шпаргалка для разных случаев.
Дабы не плодить новую тему, спрошу у уважаемых знатоков здесь... Ситуация такова. По какой-то невыясненной причине недавно приобретённый ST-Link V.2 не "видит" камень STM32F030P4. При том, что он отлично "видит" STM32F100C4, STM32F100RB, STM32F103C8. Это из ST_Link утилиты и из Кейла и из Кокоса. Но в то же время Jet Link 8 прекрасно "видит" все перечисленные выше камни из J_Flash и Кейла. Как такое может быть? Вывод BOOT F030 подключал и на землю и на питание - ничего не меняется. Осциллографом наличие, что SWCLK, что SWDIO подтверждается. Можно было бы погрешить на партию F030, но ведь J_Link-ом программируется и работает нормально. ST-Link проапгрейдил до последней версии. Подскажите, пожалуйста, в какую сторону копать? Спасибо.
Заголовок сообщения: Re: STM32F030 (STM32F103) и генератор до 40 МГц AD9850
Добавлено: Вс июн 05, 2016 08:08:18
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Тему Вы конечно "удачную" выбрали для своего вопроса. Попробуйте стереть камень прогой STM32 ST-LINK Utility. Я как-то что такое залил в 103 и кокос перестал его видеть , когда стер этой утилиткой то все опять заработало.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Конечно подключен! Вот я прямо на месте вытыкаю шлейф из ST-Link-а и втыкаю его в J-Link ничего не меняя на макетке. В итоге J-Link прекрасно всё читает, пишет и пр. Даже не знаю, что и думать (((
Огрызок потому что у него нет транслятора уровней. Пробовать обновить STlink utility , затем обновить прошивку STLink. Но возможен печальный исход- придется перекатывать чип и шить ...
s_black, нет этот полноценный. Здесь есть транслятор уровней. И вот здесь нужно обязательно подавать на Vtarget ( Если не ошибаюсь PIN1 разъма) напряжение питание с отлаживаемой платы. Так же как и на JLink8. Сие сделано? Ну и как выше писал - поставить STlink utility свежую и проапгрейдить прошивку STLink.
Да, всё так и делаю: и питание, и свежая утилита, и апгрейд. Говорю же - остальные камни отлично определяются, читаются и пишутся, только 030, как заколдованный. Попробую завтра с другим камнем из этой же партии.
s_black . а что куда подсоединяем? Было неоднократно что соединяли длинным шлейфом, коннекта не было. У меня что JLink и V8 и 072 что STLINK подсоединяю одиночными проводами 15см - полет норамльный. И что пишет в лог STLink?
Я ж Вам говорю - работаю с 030 через J-Link Кейле - всё шьёт и читает. Отсоединяю шлейф ТОЛЬКО от программатора, ничего не меняя на макетке и перестыковую его на СТ-линк, а на выходе болт. Утилита пишет, что не может законнектить таржет и просит выбрать коннект анде ресет. После такового выбора всё равно ни фига.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения