|
STM32F100C6T6 и 1-wire, не отладить в IAR EWARM v6.30.4 |
|
|
|
Jan 21 2012, 19:58
|

Профессионал
    
Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807

|
К STM32F100C6T6 подключен DS18B20. Со времен AVR есть отлаженные исходники для 1-wire bus. Думалось, что все будет просто при наладке портированных исходников, но затык случился конкретный: отладить и проверить работу подключенного DS18B20 практически не удалось. Разбор полетов указал на... странную работу портов и решения или ошибки что-то никак не увидел. Пришлось упростить до одного файла main.c, в котором приведены два упражнения (примера). Как вывести из IAR (Win7 64) с русскими комментами вместо крякозябр - не знаю, потому см. аттач.
main.pdf ( 26.04 килобайт )
Кол-во скачиваний: 603Разочарований в STM32F100 два: 1. При частоте HCLK 24MHz максимальная частота ногодрыгания ~1.78Mhz. При макс оптимизации! Это катастрофа! Возможно, что-то сделано не так в системе тактирования? Неужели STM32 такие медленные? 2. Отладить простую процедуру сброса 1-wire не смог! Осциллом смотрю - все очень безоблачно: сначала вижу отриц импульс на 500us, потом проц освобождает шину, датчик ждет 35us и удерживает ее в нуле еще на 60-120us, т. е. с момента окончания отриц импульса до момента получения значения состояния шины я заложил 80us - вполне достаточно. Каково же было мое удивление, когда выяснилось, что проц читает это состояние как 1, хотя судя по осциллу явно должен быть 0. Проверил отладкой в EWARM через J-Link Ultra, что если вручную перед чтением установить на шине 0, то это состояние софтом читается правильно. Все дело в скорости чтения... Проц почему-то не может получить значение пина за несколько us. Стало ясно, почему и прочие процедуры чтения ключа и т. п. не работали... Попытки отключить USE_FULL_ASSERT, манипуляции оптимизацией ни к чему не привели, библиотечные функции проверены. Система тактирования проверена частично через вывод на пин MCO - Fhclk=24MHz. Нужна помощь...
|
|
|
|
|
 |
Ответов
|
Jan 22 2012, 00:30
|

Профессионал
    
Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807

|
Цитата(Aner @ Jan 22 2012, 03:53)  1-wire bus довольно жесткий к времянке, не каждый ARM проц его потянет. Вспомнив преждний опыт, отказался его реализовывать в лоб. Реализация сделана на F107, через RS порт. Для новичка в ARM звучит как приговор... Какой-то AVR тянет запросто, а сверхмощный (относительно AVR) STM32F100 вообще не может... Хотелось бы разобраться в границах применимости STM32, а то я тут сгоряча 4 девайса спаял для 1-wire на STM32F100C6 и теперь в полной растерянности. Возникает пара вопросов: 1. Как рассчитать частоту ногодрыганья при HCLK = 24MHz? Порылся в доках, но времен выполнения команд проца не нашел, только описание. Эксперимент показал, что Fgpio ~ Fhclk/14. 2. Что же со временем ввода через пин? В доках написано, что частота сэмплов ввода с портов равна Fapb2=24MHz. Все указывает как бы на то, что ядро медленное, или Fhclk низкая. Последнее вроде проверил - там 24MHz... В сети мало инфы по 1-wire на STM32, но вроде есть. Только для какого проца - не упоминается... Щас гляну на F107...
|
|
|
|
Сообщений в этой теме
ivainc1789 STM32F100C6T6 и 1-wire Jan 21 2012, 19:58 Aner 1-wire bus довольно жесткий к времянке, не каждый ... Jan 21 2012, 23:53 Aner Без опыта преждних разработок и внимательного пони... Jan 22 2012, 14:42 sparcmaster Цитата(Aner @ Jan 22 2012, 18:42) Все из ... Jan 23 2012, 04:35 zoddy не знаю, что у Вас там не получается... но у меня ... Jan 22 2012, 15:56 skripach ЦитатаВсе из себя 32 битные. Но вот как только дел... Jan 22 2012, 16:44 ivainc1789 Цитата(Aner @ Jan 22 2012, 18:42) Без опы... Jan 22 2012, 17:28 maksimp Цитата(ivainc1789 @ Jan 22 2012, 21:28) п... Jan 23 2012, 05:54 lexanet Я тоже так и не смог подключить DS18B20 к дисковер... Jan 23 2012, 03:17 ivainc1789 ЦитатаЭто вы программно делаете 1-wire?Ну да. А чт... Jan 23 2012, 05:33 lexanet Цитата(ivainc1789 @ Jan 23 2012, 08:33) И... Jan 23 2012, 06:12 ivainc1789 ЦитатаМожно, дёргая какую-нибудь ногу до и после, ... Jan 23 2012, 08:05 maksimp Цитата(ivainc1789 @ Jan 23 2012, 12:05) И... Jan 23 2012, 08:45 lexanet Для проверки живости датчика и работоспособности п... Jan 23 2012, 08:19 ivainc1789 ЦитатаДостаточно на глаз настроить...а если частот... Jan 23 2012, 08:32 lexanet Цитата(ivainc1789 @ Jan 23 2012, 11:32) а... Jan 23 2012, 10:06  maksimp Цитата(lexanet @ Jan 23 2012, 14:06) то ж... Jan 23 2012, 13:04   lexanet Цитата(maksimp @ Jan 23 2012, 16:04) Такт... Jan 23 2012, 13:33    maksimp Цитата(lexanet @ Jan 23 2012, 17:33) Такт... Jan 23 2012, 18:33     lexanet Цитата(maksimp @ Jan 23 2012, 21:33) Убер... Jan 24 2012, 02:59      maksimp Цитата(lexanet @ Jan 24 2012, 06:59) Подт... Jan 24 2012, 05:32 ivainc1789 Провел серию экспериментов как вы советовали... В ... Jan 23 2012, 19:26 ivainc1789 Уже здесь возникают вопросы... Такой цикл выдает н... Jan 24 2012, 08:19 maksimp Цитата(ivainc1789 @ Jan 24 2012, 12:19) Т... Jan 24 2012, 09:00 ivainc1789 ЦитатаПрерывания разрешены или запрещены? Если раз... Jan 24 2012, 11:14 maksimp Цитата(ivainc1789 @ Jan 24 2012, 15:14) т... Jan 24 2012, 12:34 shista Почитал дискусиию и решил проверить действительно ... Jan 24 2012, 17:39 lexanet Цитата(shista @ Jan 24 2012, 20:39) Кому ... Jan 25 2012, 04:55 ivainc1789 КодПочитал дискусиию и решил проверить действитель... Jan 25 2012, 07:05 maksimp Цитата(ivainc1789 @ Jan 25 2012, 11:05) П... Jan 26 2012, 05:28  ivainc1789 Цитата(maksimp @ Jan 26 2012, 09:28) Заме... Jan 26 2012, 07:17 shista ЦитатаМое неудачное портирование исходников 1-wire... Jan 25 2012, 13:52 ivainc1789 ЦитатаА можно весь проект?
Конечно. Все подготовил... Jan 25 2012, 17:27 shista Посмотреть смогу не раньше пятницы, в четверг в ко... Jan 25 2012, 19:01 ivainc1789 Цитата(shista @ Jan 25 2012, 23:01) Посмо... Jan 25 2012, 23:30 ivainc1789 Ну и наконец, из-за особенностей регистра VAL SysT... Jan 26 2012, 13:26 Сергей Борщ QUOTE (ivainc1789 @ Jan 26 2012, 15:26) Н... Jan 31 2012, 11:01  maksimp Цитата(Сергей Борщ @ Jan 31 2012, 14:01) ... Jan 31 2012, 11:39   Сергей Борщ QUOTE (maksimp @ Jan 31 2012, 13:39) Непр... Jan 31 2012, 12:05 EugenyAM Когда-то делал на AVR асинхронный обмен по 1-wire ... Jan 31 2012, 09:06 iPKM При копировании функции _delay_loop из архива Bli... Feb 2 2012, 10:15 shista Замените
Кодasm("BNE loop \n"... Feb 2 2012, 14:47 toweroff Я делал 1-wire на lpc2103 через SSP с длиной, помн... Feb 2 2012, 17:01 smk У STM есть особенность настройки выводов портов, о... Feb 3 2012, 06:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|