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

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

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

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

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

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


 
Опции темы
Непрочитано 09.11.2011, 23:43  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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, время: 22:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot