Например TDA7294

Форум РадиоКот • Просмотр темы - Странный баг прошивки контроллера антенного переключателя
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 21:04:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Странный баг прошивки контроллера антенного переключателя
СообщениеДобавлено: Вт мар 30, 2021 21:52:18 
Родился

Зарегистрирован: Ср окт 31, 2012 12:59:57
Сообщений: 15
Откуда: Волгоград
Рейтинг сообщения: 0
Доброго времени суток! Разрабатываю контроллер управления антенным коммутатором на Attiny2313. Пишу на Си, вооружившись Proteus с прикрученным WinAVR. Программа для управления с ПК кое-как написана на C# (да и дело не в ней). Сам не программист, только учусь. Прошивка в основном работает. Описание работы, исходники прошивки положил к себе на сайт https://unlis.ru/?p=1944. Посмотреть как работает:


Но в прошивке есть один баг. Дело в том, что реализован функционал программного отключения антенных портов. То есть заходим в настройки программы, снимаем галки на ненужных нам антеннах, нажимаем Сохранить, и программа отсылает команду в МК - восемь бит, каждый бит соответствует антенне. Галка снята - соответствующий бит сброшен, установлена - установлен. А прошивка при обработке нажатия кнопки проверяет - если бит, соответствующий номеру кнопки, в байте установлен - значит можно включить антенну. А по факту получается....


То есть при включении портов 5-8 они не работают до тех пор, пока я не нажму какую-нибудь кнопку из разрешенных РАНЕЕ портов, а после этого все работает как надо. То есть были включены 1,2,3,4, включаем 5,6,7,8. Сразу после этого при нажатии 5,6,7,8 ничего не происходит пока я не нажму что-нибудь из 1,2,3,4, а потом все начинает работать как и должно быть - все 8 портов. Причем прошивка эти настройки в EEPROM сохраняет, переменной, отвечающей за биты разрешенных/запрещенных антенн, присваивается значение, которое с компа пришло. А вот пока процедура обработки кнопок не выполнится хотя бы раз - только что разрешенные кнопки не работают...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Вт мар 30, 2021 22:01:27 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
нихрена не понял нахуя отключать антены от фидера удалено для этого есть суматоры/филтры сложения это есди RX\TX ну и стандартных дисекоф если толка нам прием хватает выше крыши пилот сигнал 3Ч...

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Вт мар 30, 2021 23:28:21 
Родился

Зарегистрирован: Ср окт 31, 2012 12:59:57
Сообщений: 15
Откуда: Волгоград
Рейтинг сообщения: 0
Я конечно извиняюсь, но вопрос стоял не в том зачем их отключать....

Баг, кстати, выловлен. Если кому интересно: компилятор Си решил при сборке, что переменная enabled в условии
Код:
if ((enabled & (1<<count)) != 0 )
будет храниться в регистре. При вызове прерываний регистры никто естественно не сохраняет, этот же компилятор собрал программу так, что прерывание использует этот же самый регистр. В процессе обработки прерывания регистр напрочь затирается (потом каким-то образом восстанавливается при выполнении другого куска кода программы) - и условие не выполняется, кнопки не работают. Как только я сказал компилятору волшебное слово volatile - храни переменную в оперативке - все стало работать как надо. Молодой еще, неопытный)

Тему можно закрывать.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Чт апр 01, 2021 12:16:53 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 1
blackheart, volatile - это не о "храни переменную в оперативке". Это о том, что значение переменной может измениться "из вне" поэтому при оптимизации нужно это учитывать. Нюанс в том, что с точки зрения компилятора, он не знает когда возникает прерывание. Из кода прямых переходов нет, поэтому с его точки зрения в прерывании обычная переменная не может поменяться, потому что туда нет перехода, поэтому её можно "оптимизировать" соответственно. Вплоть до превращения в константу. Поэтому любая переменная, которая изменяется из прерывания, должна быть помечена как volatile. Также, как и регистры, к примеру, определены.

Еще советы по коду.
Во-первых вы немного изобрели велосипед функциями EEPROM_*(). Все это есть в avr/eeprom.h, сходите по ссылке.
Во-вторых, вы пишете по фиксированному адресу в EEPROM. Если переключения достаточно частые, то в итоге вы "выжжете" ячейку EEPROM. Конечно там много циклов перезаписи, даже больше заявленных 100К по факту. Но всё-таки если запись идет часто и этот ресурс можно за обозримый срок исчерпать. Если конечно переключение ручками, раз-два в день, то это не страшно. Если с компа автоматом часто очень переключается - прикиньте ресурс. И если что, надо делать т.н. wear leveling.
Ну и еще в обмен по UART добавить бы некий контроль целостности пересылки. Если придет битый пакет? Хотя бы банально CRC туда-сюда добавить в конце. Тоже если что, всё уже готовое есть: https://www.nongnu.org/avr-libc/user-ma ... __crc.html


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Чт апр 01, 2021 14:29:07 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Во-вторых, вы пишете по фиксированному адресу в EEPROM. Если переключения достаточно частые, то в итоге вы "выжжете" ячейку EEPROM. Конечно там много циклов перезаписи, даже больше заявленных 100К по факту. Но всё-таки если запись идет часто и этот ресурс можно за обозримый срок исчерпать. Если конечно переключение ручками, раз-два в день, то это не страшно. Если с компа автоматом часто очень переключается - прикиньте ресурс. И если что, надо делать т.н. wear leveling.l

Если так надо часто писать в EEPROM, то FRAM в помощь. Если не хочется иметь два корпуса, то MSP430FRxxx в помощь.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Чт апр 01, 2021 15:20:47 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
parovoZZ, менять контроллер слишком радикально. Можно просто несчастных 2 байта писать по кругу, тем самым увеличив ресурс в 64 раза (т.к. 128 байт имеется) максимум (если не использовать ID записи, а просто скажем затирая до FF прошлое значение после записи и поэтому находя последнюю запись). Ес-но в определенных случаях может и этого не хватить... но скорее всего в данном случае менять МК не придется всё-таки )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Чт апр 01, 2021 15:23:00 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Достаточно ds1307 с ее оперативкой из 64 байт...
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Чт апр 01, 2021 15:25:57 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Просто к примеру, скажем у нас события пишутся раз 500 в день. Это чуть больше чем пол года гарантированной работы МК до выхода из строя при записи в одни и те же ячейки. Если ввести примитивный кольцевой буфер - это уже ~32 года что уже более, чем достаточный срок службы. Ну плюс тут еще есть нюанс - контроль целостности. Можно еще CRC добавить, размер блока вырастет, но будет гарантия достоверности считанных данных.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Чт апр 01, 2021 18:39:04 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
проблема актуалная был какой недотелк где ДЕБИЛЫ сэкономили копечную еромку 24ххх
а писали в память проца... в результате некоторые ячейки выходили из строя через 3-5лет отказывало переключени програм и громкость глючила...

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Сб апр 03, 2021 13:53:04 
Родился

Зарегистрирован: Ср окт 31, 2012 12:59:57
Сообщений: 15
Откуда: Волгоград
Рейтинг сообщения: 0
Во-первых вы немного изобрели велосипед функциями EEPROM_*(). Все это есть в avr/eeprom.h, сходите по ссылке.

Про eeprom.h знаю, но я взял примеры из datasheet микроконтроллера. Так захотелось, для наглядности что ли...

Во-вторых, вы пишете по фиксированному адресу в EEPROM. Если переключения достаточно частые, то в итоге вы "выжжете" ячейку EEPROM.

Над этим я думаю, буду модернизировать прошивку. Эта прошивка - вообще первое, что я написал в жизни на Си под AVR, поэтому ни разу не претендует на правильность.

Ну и еще в обмен по UART добавить бы некий контроль целостности пересылки.

Об этом тоже думал. См. выше)

Ну а в общем - большое спасибо за советы, обязательно учту всё сказанное. Ибо я не программист, и у меня существует такая проблема, что написать-то вроде можно, но как написать - красиво, правильно и компактно или с кучей костылей, но чтоб в конечном итоге работало - спросить лишний раз не у кого (нет таких знакомых поблизости), приходится самому изучать; и порой непонятно - забил ли я тут костыль, либо это не костыль, а правильное решение...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Сб апр 03, 2021 21:54:49 
Открыл глаза

Зарегистрирован: Вт янв 19, 2021 23:28:53
Сообщений: 67
Рейтинг сообщения: 0
Всем привет ! Ребята, подскажите знающие, проблема при прошивке PIC16F648A. Операционка винда7, программатор ic prog 105D. Программатор собрал сам, еще не раз не прошивал с ним, собирал по схеме, проверил, все нормально. Почему я не могу поставить галочку "Вкл. NT/2000/XP драйвер" Фото. https://img.radiokot.ru/files/143475/2hcau1qacj.png Извините что не в ту тему написал.


Вложения:
Комментарий к файлу: https://img.radiokot.ru/files/143475/2hcau1qacj.png
Без названия (4).png [45.33 KiB]
Скачиваний: 96


Последний раз редактировалось toronto76 Сб апр 03, 2021 22:03:59, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Сб апр 03, 2021 21:59:17 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
toronto76, могу толка предположить ее дрова для NT/2000/XP драйвер" несовместимы с 7 -10 и вистой

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Сб апр 03, 2021 22:29:52 
Открыл глаза

Зарегистрирован: Вт янв 19, 2021 23:28:53
Сообщений: 67
Рейтинг сообщения: 0
Но народ на семерке прошивает без проблем. Что то не так делаю, а что, пока не пойму.

Добавлено after 24 minutes 38 seconds:
Re: Странный баг прошивки контроллера антенного переключателя
Вроде справился с драйвером, но теперь такая ошибка. https://img.radiokot.ru/files/143475/2hcbsk2dcc.png https://img.radiokot.ru/files/143475/2hbk7s9bf3.png


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Вс апр 04, 2021 16:53:32 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Попробуйте вот эту оболочку/софтинку:
http://picpgm.picprojects.net
:hunger:
Ежли на компе имеется СОМ порт на материнке можно JDM (в моей модификации) прицепить....
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Вс апр 04, 2021 17:57:17 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
eeprom.h знаю, но я взял примеры из datasheet микроконтроллера. Так захотелось, для наглядности что ли...

Даташит - он о железе. А функции готовой библиотеки - это о компиляторе. Так что еще в мануал на компилятор стоит поглядывать, ссылку я давал. Там много стандартных вещей для периферии уже реализовано просто.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Пн апр 05, 2021 09:58:17 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Во-первых вы немного изобрели велосипед функциями EEPROM_*(). Все это есть в avr/eeprom.h, сходите по ссылке.

Я тоже пишу свои функции. Атмеловские немного тяжёлые. Мои и быстрее, и меньше места занимают.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Пн апр 05, 2021 13:03:15 
Открыл глаза

Зарегистрирован: Вт янв 19, 2021 23:28:53
Сообщений: 67
Рейтинг сообщения: 0
Ребята, подскажите пож! Сюда, на этот программатор еще дополнительное подача напряжение нужно? Это по прошивки pic16F648A. Или же достаточно с ком порта?

Добавлено after 2 minutes 4 seconds:
Re: Странный баг прошивки контроллера антенного переключателя
фото https://img.radiokot.ru/files/143475/2he3lmbuc9.png https://img.radiokot.ru/files/143475/2he3lm9464.png https://img.radiokot.ru/files/143475/2he3lmbuc9.png


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Пн апр 05, 2021 13:06:48 
Родился

Зарегистрирован: Ср окт 31, 2012 12:59:57
Сообщений: 15
Откуда: Волгоград
Рейтинг сообщения: 0
Так а схема программатора какая?? Наверное имеется в виду JDM-программатор? Там питание с COM-порта приходит
Вот какая должна быть схема. Лично собирал, всё работает
Изображение
К себе даже стырил https://unlis.ru/?p=231


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Пн апр 05, 2021 22:59:00 
Открыл глаза

Зарегистрирован: Вт янв 19, 2021 23:28:53
Сообщений: 67
Рейтинг сообщения: 0
Попробуйте вот эту оболочку/софтинку:
http://picpgm.picprojects.net
:hunger:
Ежли на компе имеется СОМ порт на материнке можно JDM (в моей модификации) прицепить....
:roll:

К сожалению не получилось и с этой программой

Добавлено after 4 minutes 1 second:
Так а схема программатора какая?? Наверное имеется в виду JDM-программатор? Там питание с COM-порта приходит
Спасибо! Попробую его собрать. А так, у меня ЖДМ программатор. Даже пробовал питание отдельно подать 5-12в, все без толку

Добавлено after 6 minutes 40 seconds:
К себе даже стырил https://unlis.ru/?p=231

Почему то ссылка не открываеться на печатную плату.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Странный баг прошивки контроллера антенного переключател
СообщениеДобавлено: Вт апр 06, 2021 11:02:17 
Родился

Зарегистрирован: Ср окт 31, 2012 12:59:57
Сообщений: 15
Откуда: Волгоград
Рейтинг сообщения: 0
Ссылка рабочая. Google Chrome выделывается скорее всего, там в ссылке http указано вместо https, а ему такие ссылки не нравятся. В новом окне откройте или "сохранить по ссылке"

Поправил ссылку, должна без танцев с бубном открываться


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y