Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 13.09.2017, 08:53   #226
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от masterok999 Посмотреть сообщение
Руслан, на Вашем месте я бы перебирался на STM32.
А они надежные? Кто с ними работал и имеет статистику?
Цитата:
Сообщение от masterok999 Посмотреть сообщение
Я не знаю на какой стадии Ваш проект, но если он закончен, то нет проблем и с 18F46K22.
Проект закончен на PIC18F4620. Проблемы две для перехода на 18F46K22:
1) под мой PIC18F4620 у меня компилятор Си крекнутый и с оптимизацией.
Под новый проц на сайте микрочип предлагается компилятор без оптимизации - могу не влезть в память программ.
2)у нового проца 18F46K22 отличаются настройки таймеров другой переферии от моего пика PIC18F4620 - много переделывать надо - но этого я не боюсь, важнее проблема 1.
Цитата:
Сообщение от masterok999 Посмотреть сообщение
Если платы еще не разведены, то лучше использовать PIC18F67K22, у него 128К памяти.
Памяти то больше, но опять же - у меня нет нормального компилятора с оптимизацией, а тот что предлагает микрочип БЕЗ ОПТИМИЗАЦИИ может прогу раздуть так, что она и в эту память не влезет...
Руслан вне форума   Ответить с цитированием
Старый 13.09.2017, 09:12   #227
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 57
Сообщений: 2,831
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
у нового проца 18F46K22 отличаются настройки таймеров другой переферии от моего пика PIC18F4620 - много переделывать надо
Вот и повод перейти сразу на СТМ32...
Цитата:
Сообщение от Руслан Посмотреть сообщение
А они надежные?
Если не гнобить по питанию... то вполне...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 13.09.2017, 11:17   #228
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
Вот и повод перейти сразу на СТМ32...
а как со средой разработки и компилятором? Они бесплатные, особенно компилятор Си интересует...
Руслан вне форума   Ответить с цитированием
Старый 22.09.2017, 10:50   #229
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

Всем привет! Чтоб не плодить новую тему решил написать сюда. Проблема работы с USART на который подключен GSM модуль следующая:
1) пока модуль подключен к порту - данные читаются нормально
2) отключаю модуль (просто разъем вытаскиваю и разрываю линию связи по USART) - при чтении пустой массив (прекращаю чтение по таймауту если флаг RCIF не установился)
3) ПОДКЛЮЧАЮ модуль - должно теперь читать - а НЕТ! Теперь пока ПИК не перегружу работать не начнет...
Руслан вне форума   Ответить с цитированием
Старый 22.09.2017, 10:58   #230
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 55
Сообщений: 247
Вес репутации: 1001/28
masterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud of
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
3) ПОДКЛЮЧАЮ модуль - должно теперь читать - а НЕТ! Теперь пока ПИК не перегружу работать не начнет...
Достаточно прочитать буфер и сбросить флаги UART контроллера, там скорее всего и буфер полный и ошибка переполнения и прерывание встают. При выдергивании дребезг на разьеме воспринимается как данные.
masterok999 вне форума   Ответить с цитированием
Старый 22.09.2017, 11:03   #231
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от masterok999 Посмотреть сообщение
сбросить флаги UART контроллера
какие именно флаги (пытался переинициализировать USART - не помогло, видимо нужный флаг не сбрасываю какой-то)? RCIF я ведь не управляю...
Руслан вне форума   Ответить с цитированием
Старый 22.09.2017, 11:42   #232
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 48
Сообщений: 1,808
Вес репутации: 2170/83
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
какие именно флаги (пытался переинициализировать USART - не помогло, видимо нужный флаг не сбрасываю какой-то)? RCIF я ведь не управляю...
Хотя Ваш вопрос мало относится к теме топика.
Есть биты ошибок приемника UART, FERR и OERR. Флаг FERR убирается чтением RCREG, флаг OERR не убирается ничем кроме выкл/вкл приемника - бит CREN.
Код:
 if (RCIF_bit) {
      if(OERR_bit || FERR_bit){

       if(FERR_bit){
        tmp = RCREG;
       }

       if(OERR_bit){
         CREN_bit = 0;
         CREN_bit = 1;
        }
      }
      else{
       RS485Slave_Receive(dat_in);
      }
  }
}
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 22.09.2017, 12:42   #233
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от petrd Посмотреть сообщение
Хотя Ваш вопрос мало относится к теме топика.
Есть биты ошибок приемника UART, FERR и OERR. Флаг FERR убирается чтением RCREG, флаг OERR не убирается ничем кроме выкл/вкл приемника - бит CREN.
Код:
 if (RCIF_bit) {
      if(OERR_bit || FERR_bit){

       if(FERR_bit){
        tmp = RCREG;
       }

       if(OERR_bit){
         CREN_bit = 0;
         CREN_bit = 1;
        }
      }
      else{
       RS485Slave_Receive(dat_in);
      }
  }
}
спасибо, вечером попробую. Только не совсем понятно с чтением RCREG для снятия флага FERR - должны ли быть данные для этого чтения ( tmp = RCREG), или даже если ничего не прочитает, т.е. данные не были переданы в USART от модема флаг FERR снимет? Или достаточно прочитать "пустой байт" ?
Руслан вне форума   Ответить с цитированием
Старый 22.09.2017, 13:06   #234
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 48
Сообщений: 1,808
Вес репутации: 2170/83
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
Только не совсем понятно с чтением RCREG для снятия флага FERR - должны ли быть данные для этого чтения ( tmp = RCREG), или даже если ничего не прочитает, т.е. данные не были переданы в USART от модема флаг FERR снимет? Или достаточно прочитать "пустой байт" ?
Достаточно просто прочитать RCREG. Почитайте AN774 станет понятней.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 22.09.2017, 13:52   #235
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 55
Сообщений: 247
Вес репутации: 1001/28
masterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud of
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от petrd Посмотреть сообщение
Достаточно просто прочитать RCREG. Почитайте AN774 станет понятней.
А еще лучше 2 раза для гарантии.

"Receive Overrun Error:
The receive FIFO buffer can hold two characters.
An overrun error will be generated if a third character, in its
entirety, is received before the FIFO is accessed. When
this happens the OERR bit of the RCSTAx register is
set."......

После длительных пауз в приеме всегда лучше полностью очищать любой мусор из UARTa
masterok999 вне форума   Ответить с цитированием
Старый 22.09.2017, 14:18   #236
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 48
Сообщений: 1,808
Вес репутации: 2170/83
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от masterok999 Посмотреть сообщение
А еще лучше 2 раза для гарантии.
Для гарантии чего? Это если сделано неправильно, то конечно все может быть.

Цитата:
После длительных пауз в приеме всегда лучше полностью очищать любой мусор из UARTa
Снова повторюсь - это если сделано неправильно.
Чтобы нормально было надо выполнить несколько условий:
1. Сделать прерывание по приему байта.
2. Сделать кольцевой буфер на прием и в прерывании складывать в него принятые данные.
3. Прежде чем положить в кольцевой буфер данные обработать все флаги и ошибки UART.
3. Выбирать из кольцевого буфера данные быстрей, чем он успевает переполниться.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 22.09.2017, 14:34   #237
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 55
Сообщений: 247
Вес репутации: 1001/28
masterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud ofmasterok999 has much to be proud of
По умолчанию Re: датчик ds18b20

Отсутствие кольцевого буфера не неправильный случай.
Если ожидаемое время прихода данных и их размерность известны (как в случае вопрошающего), то вовсе не обязательно городить кольцевой буфер с прерываниями.
Гораздо проще после длинной паузы и когда контроллер физически отключен от девайса просто "прочистить ему мозги".
Да кстати забить мусором при дребезге можно и кольцевой буфер, особенно если UART сконфигурирован на большую скорость.
masterok999 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
датчик ds18b20 IE14 Общетехнические вопросы 10 24.02.2012 15:30
Цифровой датчик температуры DS18B20 JimmiKorn Общетехнические вопросы 70 29.05.2011 04:45
Датчик влажности на DS18B20 Vovka Общетехнические вопросы 23 23.03.2011 19:47
DS18B20, вроде бы такой проблемы еще не обсуждали Berkytxt Общетехнические вопросы 12 08.10.2010 22:45
Проблема с DS18B20 на си Den_GF5 Вопросы начинающих 6 07.05.2010 00:36


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


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