Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Отладочные платы для STM32

Непрочитано 09.11.2011, 23:43  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
Пока что все процедуры возвращают One_Wire_Error_No_Echo
Датчик подключен к РВ1, правильно ли я её прописал?
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
Зачем два раза? Верно будет только последнее значение. А надо так:

Код:
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);[/QUOTE]
One_Wire_Error_No_Echo говорит о том, что либо датчик не возвращает RESPONSE после RESET, либо нарушены временные интервалы.
Реклама:
Easyrider83 вне форума  
Непрочитано 10.11.2011, 08:33  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

А как же IPU? Ведь надо же ногу притягивать к плюсу? Или OUT_PP её сам притянет?
Сообщение от Easyrider83 Посмотреть сообщение
что либо датчик не возвращает RESPONSE после RESET
Это верно и для того случая, когда датчика нет вообще?

Сообщение от Easyrider83 Посмотреть сообщение
либо нарушены временные интервалы.
Какие? Я только одну функцию вызвал грубо говоря в таком виде LCD_WriteNm(Conversation_skip_rom(порт,ног� �));
CMaxx22 вне форума  
Непрочитано 10.11.2011, 10:41  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
А как же IPU? Ведь надо же ногу притягивать к плюсу? Или OUT_PP её сам притянет?
OUP_PP - это логика с двумя определенными состояниями - либо открыт верхний транзистор, либо нижний. Чтобы использовать внутренний PULL UP или PULL DOWN, надо установить порт в режим GPIO_Mode_IPU или GPIO_Mode_IPD и записать в регистр BSRR или BRR единичку соответственно для каждого пина. Например, для включения верхней подтяжки на ноге 5 порта А надо:
Код:
GPIOA-›BSRR=(1‹‹5);
Цитата:
Это верно и для того случая, когда датчика нет вообще?
Да, эта ошибка звучит, как нет ответа 1-Wire устройства. На паузу 480мкс должен быть ответ. Причин может быть много. Одна из них - не правильно отрабатывает процедура delay_us. В header файле программных задержек требуется указать тактовую частоту процессора. Проверьте, возможно проблема в этом. Если программа генерит паузу не 480мкс, а, скажем, 240 - конечно, ответа не будет.
Ну и конечно всякие нюансы типа неисправного датчика, неправильно сконфигурированного порта, соплей на плате...
Сообщение от CMaxx22 Посмотреть сообщение
Какие? Я только одну функцию вызвал грубо говоря в таком виде LCD_WriteNm(Conversation_skip_rom(порт,ног� �));
Не, что там вызывается в реалтайме, до лампочки. Проверьте тактовую частоту, как я сказал.
Замените вашу процедуру 1-Wire reset на эту:
Код:
unsigned int One_Wire_Reset(GPIO_TypeDef* GPIOx, unsigned long PIN)								
{
	unsigned int tmp;
	PIN_FLOAT_INPUT(GPIOx, PIN);
	if (PIN_IN(GPIOx,PIN)==0)	return One_Wire_Bus_Low_Error;
	PIN_OUT_PP(GPIOx,PIN);
	PIN_OFF(GPIOx,PIN);
	if (PIN_IN(GPIOx,PIN)==0)	return One_Wire_Error_No_Low_Level;
	delay_us(Time_Reset_Low);
	PIN_ON(GPIOx,PIN);
	PIN_FLOAT_INPUT(GPIOx,PIN);
	delay_us(Time_Pulse_Delay_High);
	if ((PIN_IN(GPIOx,PIN))==0) tmp=One_Wire_Success;
	else tmp=One_Wire_Error_No_Echo;
	delay_us(Time_After_Reset);
	return tmp;
}
Добавлена выделенная красным строка. В файле 1-Wire.h надо эту ошибку задефайнить:
Код:
#define One_Wire_Error_No_Low_Level	0xFFEF
Это будет проверка, что пин нормально управляется.

Последний раз редактировалось Easyrider83; 10.11.2011 в 10:52.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
CMaxx22 (10.11.2011)
Непрочитано 10.11.2011, 12:51  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от Easyrider83 Посмотреть сообщение
Чтобы использовать внутренний PULL UP или PULL DOWN, надо установить порт в режим GPIO_Mode_IPU или GPIO_Mode_IPD и записать в регистр BSRR или BRR единичку соответственно для каждого пина. Например, для включения верхней подтяжки на ноге 5 порта А надо:
Тоесть если датчик питается отдельно и напрямую подключен через РВ1 то процедура инициализации для этой ноги чтобы датчик пахал будет:

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIOB-›BSRR=(1‹‹1);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

Так?

Сообщение от Easyrider83 Посмотреть сообщение
Да, эта ошибка звучит, как нет ответа 1-Wire устройства.
Когда вызываешь DS1822_Start_Conversion_Skip_Rom из DS1822.c то она возвращает One_Wire_Error_No_Echo. Если вызвать процедуру One_Wire_Reset из 1-Wre.c тогда возвращается One_Wire_Bus_Low_Error...
Такаяже картина при добавлении в код One_Wire_Error_No_Low_Level...

Сообщение от Easyrider83 Посмотреть сообщение
Одна из них - не правильно отрабатывает процедура delay_us. В header файле программных задержек требуется указать тактовую частоту процессора. Проверьте, возможно проблема в этом.
Вроде указано 24мгц (в герцах), а какая частота у STM32? Кварц вроде на 8мгц стоит и ещё на 24, но он помоему к PL2303 относится.
CMaxx22 вне форума  
Непрочитано 10.11.2011, 15:25  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

CMaxx22, а физически на пине единичка висит?
Easyrider83 вне форума  
Непрочитано 10.11.2011, 16:00  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Я не понимаю... Физически ножка никуда не подключена, только к датчику... Ну ещё IPU вроде должно давать чтото.

Последний раз редактировалось CMaxx22; 10.11.2011 в 16:03.
CMaxx22 вне форума  
Непрочитано 10.11.2011, 16:39  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Вы тестером посмотрите.
Easyrider83 вне форума  
Непрочитано 10.11.2011, 20:15  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Тестера нету, но у меня на ногу к которой подключен датчик смотрит ADC1. Это считается? Используя показания ADC с ноги PB1 получаем такую картину:
1) Болтающаяся РВ1 с подтяжкой к питанию, никакие функции 1-Wire не вызываются. Результат замера с ноги: 3.3в
2) Болтающаяся РВ1 с подтяжкой к питанию, в цикле постоянно вызывается функция One_Wire_Reset и читается её результат. Результат замера с ноги: от 1.7 до 2.5в. Результат работы функции One_Wire_Reset: One_Wire_Error_No_Echo
3) Нога РВ1 подключена к Data датчика (датчик запитан от 5в отдельно) и подтянута к питанию, никакие функции 1-Wire не вызываются. Результат замера с ноги: 3.2в
4) Нога РВ1 подключена к Data датчика (датчик запитан от 5в отдельно) и подтянута к питанию, в цикле постоянно вызывается функция One_Wire_Reset и читается её результат. Результат замера с ноги: 0.3в. Результат работы функции One_Wire_Reset: One_Wire_Bus_Low_Error

Что это может означать?
CMaxx22 вне форума  
Непрочитано 11.11.2011, 11:47  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Может ногу дополнительно резистором к плюсу подтянуть?
CMaxx22 вне форума  
Непрочитано 11.11.2011, 12:55  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Нашел где задаётся тактовая частота МК, там установлено 72мгц. В задержках поменял с 24 на 72 мгц и ничего не изменилось. Так и оставил. Если в работе потрогать пальцем за питание датчика то результат работы функции 1-wire reset bus меняется на то, что вы мне посоветовали добавить: One_Wire_Error_No_Low_Level Сейчас попробую сделать подтяжку к питанию физическую.
CMaxx22 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Технология изготовления печатной платы Tungus55 Делимся опытом 1165 06.01.2017 19:19
Книги dosikus Электронная библиотека 11242 29.12.2015 23:45
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 19:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.