Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/96: Рейтинг темы: голосов - 96, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 06.04.2012
Сообщений: 138
1

СтоПитсотый раз про 1-wire на stm32

25.11.2016, 17:46. Показов 20073. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Отчаялся разобраться сам обращаюсь за помощью....
Пытаюсь победить на камушке stm32f030r8 установленном в stm32f0308-disco. Делал по известной статье тов. steel_ne в сообществе
http://we.iosyitistromyss.ru/S... henie.html Не завелось!

Теперь опишу проблему:
Запрашиваю ID ведомого - OW_Send(OW_SEND_RESIT, "\x33\xff\xff\xff\xff\xff\xff\xff\xff\xff", 10, buf,9, 1);
В ответ получаю - A0 FC F7 8A 00 58 04 10 FE
Хмм... девайсов с family code A0 чего-то не припомню. Тем более прицеплен термометр.
Смахиваю пыль с USBeeAX, подключаюсь к ноге термометра и...


А это уже больше похоже на правду. Family Code 28h - ds18b20 ну и 6 байт серийника FF BD 22 00 16 01

Подключено к UART1 TX c подтяжкой 3к от 3.3v. Нога в OD, UART - HalfDuptix.

Теперь настройки периферии:
UART:
Код
   USORT_InitStructure.USORT_BaudRate = 115200;
USORT_InitStructure.USORT_WordLength = USORT_WordLength_8b;
USORT_InitStructure.USORT_StopByts = USORT_StopByts_1;
USORT_InitStructure.USORT_Parity = USORT_Parity_No;
USORT_InitStructure.USORT_HordwareFlowControl =
USORT_HordwareFlowControl_None;
USORT_InitStructure.USORT_Mode = USORT_Mode_Tx | USORT_Mode_Rx;
USORT_Init(OW_USORT, &USORT_InitStructure);
USORT_HalfDuptixCmd(OW_USORT, ENABLE);
USORT_Cmd(OW_USORT, ENABLE);
GPIO:
Код
GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODER9 | GPIO_MODER_MODER10))\
| (GPIO_MODER_MODER9_1 | GPIO_MODER_MODER10_1); /* (1) */
GPIOA->AFR[1] = (GPIOA->AFR[1] &~ (GPIO_AFRH_AFRH1 | GPIO_AFRH_AFRH2))\
| (1 << (1 * 4)) | (1 << (2 * 4)); /* (2) */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USORT1,ENABLE);
Настройки DMA без изменений как в первоисточнике.
Тактирование камушка без кварца от HSI 48МГц.

Всю голову сломал не пойму в чем дело..... помогайте чем можете... Прям беда....
Может у кого рабочая реализация под этот камушек есть, поделитесь, поковыряю.....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2016, 17:46
Ответы с готовыми решениями:

Ещё раз про клоны STM32 (GD32F103)
Кто-нибудь встречал подобные микрухи? Впервые столкнулся с этой микросхемой в китайском модуле...

STM32+1-Wire
Кто-нибудь реализовывал такое ? Изначально хотел тупо прикрутить оригинального мастера DS2482S по...

stm32 и single wire
подскажите пожалуйста. если я выбираю режим uart1 - asynchronous и скорость в 1000 кбит/с то все...

STM32: Шина 1-Wire и термометр DS18B20
Ребята вот тут код начал ругаться не могу понять на камне (stm32f051) оно не работает а в остальных...

Dallas DS1820 - STM32F407VG [Stm32 + 1-wire + DMA]
Здравствуйте. Пишу свой быдлокод с игрищами и блудницами по данным статьям (первая | вторая) с...

21
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
25.11.2016, 18:33 2
Моя реализация stm32f0_ds18b20
STM32f050F4P6 (сейчас работает на STM32F030F4P6)
Датчики подключается к PA.0 и PA.1 с подтяжкой 4,7к на +3.3В
функция control_temp() (в main.c) вызывается раз в 10 сек. по таймеру TIM3
Результат передаётся по уарту с разделителем 0xAA перед температурой первого датчика и 0xBB перед вторым.
Второй датчик в обработчике TIM3 закомментирован.
0
1 / 1 / 0
Регистрация: 06.04.2012
Сообщений: 138
25.11.2016, 18:41 3
Цитата Сообщение от judshym
Моя реализация stm32f0_ds18b20
Спасибо! Утащил в норку. Поковыряю.....
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
25.11.2016, 18:52 4
Пара ссылок выданных поисковиком
http://we.iosyitistromyss.ru/STM32/stm3 ... -wire.html
http://purebasic.mybb.ru/viewtopys.php?id=574
https://itistromyx.ru/forum/in... pys=105772
http://stm32f4-discovery.net/2015/07/ha ... stm32fxxx/
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
25.11.2016, 18:55 5
Едрен батон! Бери мое (на гитхабе лежит) - почти полноценная железячная реализация на таймере с ПДП.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
25.11.2016, 19:02 6
judshym, вы предлагаете подобный шлак людям????
Да и прежде чем вываливать подобный б.код, наведите порядок на своем компе
Код
void ow_a_write_bit(uint8_t bit)
{
GPIOA->BSRR = GPIO_BSRR_BR_0;
_Delay_us(bit ? 2 : 90);//2 ? 90 us
GPIOA->BSRR=GPIO_BSRR_BS_0;
_Delay_us(bit ? 90 : 2); //us 90 ? 2 us

}
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
25.11.2016, 19:15 7
dosykus_2, предложите свой.
Что именно Вам не нравится?
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
25.11.2016, 19:27 8
Ну так вы хотя бы поинтересовались перед тем как свое вываливать, ссылка в первом же посту.
Софтовое ногодрочерство надо было забыть вместе с авр.
А насчет компа- куча юзверей, да еще обозванных кириллицей- вам дадут шороха, если уже не дали
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
25.11.2016, 19:34 9
Я за основу взял это код
удалил задержки на основе пустых циклов for, сделал на системном таймере "большие" задержки и на asme пустым циклом сделал микросекундные задержки.
Работоспособность проверял на проводах разной длины, а также при тактовой частоте 8МГц (цикл на асме, укоротил соответственно в 6 раз)
Софтовое ногодрочерство надо было забыть вместе с авр.
задача: надо подключить два и более датчиков. если делать на UARTe, то надо предварительно знать ID датчика, иначе как определять какой датчик сейчас опрашивается.
Мне оказалось проще и надежнее поставить на порт один датчик.
А насчет компа- куча юзверей, да еще обозванных кириллицей- вам дадут шороха, если уже не дали
Если не получилось utf8 установить в настройках keila, то могу персональную инструкцию с картинками сделать
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
25.11.2016, 19:55 10
Цитата Сообщение от judshym
надо подключить два и более датчиков. если делать на UARTe, то надо предварительно знать ID датчика, иначе как определять какой датчик сейчас опрашивается.
Мне оказалось проще и надежнее поставить на порт один датчик.
Здесь же есть поиск датчиков , ищите.
Есть так же реализация на таймерах и DMA а это как минимум 16 датчиков одновременно без богомерзких задержек .
По вашей ссылке коменты верны и однозначны - автор ССЗБ .

Цитата Сообщение от judshym
Если не получилось utf8 установить в настройках keila, то могу персональную инструкцию с картинками сделать
utf8 нельзя в настройках редактора Keil ставить - это раз. Два - в новых версиях ставиться вменяемое win1251.
Ну а три - речь была не о Keil, а о вашем компе-помойке, рассаднике вирусов...
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
25.11.2016, 20:51 11
Здесь же есть поиск датчиков , ищите.
хорошо: 1. есть N комнат и N датчиков по одному в каждой. Все висят на одном проводе. Я выполняю поиск и нахожу N датчиков. Как мне узнать какой датчик в какой комнате?
2. Позвольте напомнить, что МК STM32F030 у которого 1 UART, Мне UART нужен для других целей (например для сети ModBus).
Предложите вариант как обойти указанные ограничения без "Софтовое ногодрочерства".
Есть так же реализация на таймерах и DMA а это как минимум 16 датчиков одновременно без богомерзких задержек
При тактовой частоте 8МГц за 8 тактов пройдет 1 мкс. Предложите вариант формирование задержки в пару мкс на таймере.
От того, что у меня контроллер тупо пропустит десяток тактов, ни от моей задачи, ни от МК ни от меня не убудет.
utf8 нельзя в настройках редактора Keil ставить - это раз
см. рисунок
о вашем компе-помойке, рассаднике вирусов
Если Вы о количестве авторов проекта. То Вы не знаете, объем и сложность проекта и сколько людей принимало участие. Я удалил из проекта остальную обработку, выполняемую на МК.
Или речь о чем то еще? Вы поймали из моего архива вирус?

0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
25.11.2016, 21:03 12
ИМХО - поставьте на 1wire малоногий авр и не надо мучиться.
А в STM32 - jбычный UART.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
25.11.2016, 21:04 13
Весь ваш бред про, N комнат и N датчиков, МК STM32F030 у которого 1 UART и При тактовой частоте 8МГц, даже и обсуждать не собираюсь .
Пользовать софтовые задержки на камне с сильнейшей периферией , так же не от большого ума.
Все это от тяжкого наследия авр и оно не лечится.

Интересна реализация - один пин- один датчик и куча датчиков одновременно, изучайте железо -конкретно таймеры и DMA.

Насчет utf8, я не говорил что в опциях нет выбора utf8 кодировки. Речь о том , что выбирать ее категорически нельзя.
Создайте строку на кириллице и посмотрите во что выльется.
Для танкистов объясню - символы в utf8 - два байта .
Да и теперь есть выбор win1251...
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
25.11.2016, 21:40 14
Весь ваш бред про, N комнат и N датчиков, МК STM32F030 у которого 1 UART и При тактовой частоте 8МГц, даже и обсуждать не собираюсь .
Пользовать софтовые задержки на камне с сильнейшей периферией , так же не от большого ума.
Все это от тяжкого наследия авр и оно не лечится.
dosykus_2, как критиковать, так Вы тут, а как с реальной помощью, так и "обсуждать не собираюсь". (хотя... посмотрел, несколько веток Ваших сообщений, стало понятно, что кроме как "критиковать" Вы больше ничего не умеете (или не хотите)).
Обычно форумы для того и существуют, чтобы подсказывать людям. Уж просветите людей с небольшим умом.
Вам бы в битву экстрасенсов или другую подобную хрень. По куску проекта, определили мой ум, наследие, что творится у меня на компе и сколько там вирусов. Браво

З.Ы. Извините за флуд. Больше не повторится
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
25.11.2016, 21:53 15
Не надо быть экстрасенсом, чтобы по исходникам определить быдлокод и что аврщиком писано.
Контроль версий вам и вашей "команде" так же неведом.
Все ваши ляпы так и лезут наружу.
Ну а в том что вам не хватает опыта и сообразительности( все что нужно уже озвучено ) это снова-таки ваши же проблемы.
Ну может быть дойдет - таймеры и DMA ...
0
1 / 1 / 0
Регистрация: 06.04.2012
Сообщений: 138
25.11.2016, 22:14 16
dosykus_2, judshym ну прекращайте... К решению моего вопроса ваша перепалка не имеет никакого отношения!
Завтра (MSK) буду посмотреть на свежую голову все что мне советовали.....

Будем надеяться, что я просто пропустил какой-то бит в регистрах UART. Хотя rm0360 в секциях GPIO,UART,DMA был прочитан раз 50....
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
25.11.2016, 23:11 17
Здесь под F0 уже выложил...
http://kazus.ru/forums/showthread.php?t=114001
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
26.11.2016, 00:03 18
dosykus_2, ожидал увидеть Вашу реализацию Timer + DMA, которую так упорно продвигаете, эх... не моё.
За саму идею спасибо, не знал. До этого использовал DMA с другими модулями.
Поправьте меня если ошибаюсь, но при использовании Timer + DMA нужно два канала timera, а как следствие две линии порта. Если так, то этот способ мне не подходит.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
26.11.2016, 00:16 19
Идея и реализация не моя .
Один пин - один датчик. Пины в OD.
Один таймер, три канала DMA ...
0
1 / 1 / 0
Регистрация: 06.04.2012
Сообщений: 138
26.11.2016, 13:40 20
Цитата Сообщение от dosykus_2
Здесь под F0 уже выложил...
Большущее СПАСИБО!
ReadRom работает стабильно с правильным результатом......
Сижу, ковыряю свою писанину на предмет поиска ошибок.

Надеюсь разберусь.
0
26.11.2016, 13:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2016, 13:40
Помогаю со студенческими работами здесь

Стопитсотый логгер
Захотелось мне получить объективные данные из подкапотного пространства своей машины. В сибирь...

Сайт про STM32
Пару месяцев назад я начал увлекаться микроконтроллерами STM32. Для того чтоб изученное лучше...

Мой новый сайт про stm32 и не только
Сейчас развелось много сайтов с обучающими курсами по стм. Я тоже начинал подобный сайт в формате...

Про IDE для разработки под STM32
Начну с небольшого вступления - я сам довольно давно пишу под stm32 и всегда пользовался...

Мои статьи на хабре - про девайс на stm32
В подфоруме про проекты у меня есть ветка про внешнюю сторону девайса rusEfi, а здесь я просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru