15.07.2010, 00:41 | #1 (permalink) |
Member
Регистрация: 23.11.2008
Сообщений: 1,084
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 460
|
Микроконтроллеры PIC
А необходимость в заюзывании именно PIC большая. AVR пока ещё не дотягивается до периферии и разнообразия микрочиповских МК. Заюзав PIC18F26J53 вместо AT90USB82 я упрощу схему и габариты раза в два, за себистоимость уже молчу... Последний раз редактировалось INFERION; 15.07.2010 в 02:31 |
15.07.2010, 05:47 | #3 (permalink) |
Member
Регистрация: 23.11.2008
Сообщений: 1,084
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 460
|
Многим они ненравятся, а для меня это находка. Перед AVR у них и преимуществ куча. Например скорость работы портов ввода/вывода, из-за гораздо бОльшей тактовой частоты МК. Довольно точный встроеный генератор тактовой, позволяющий заюзать USB интерфейс без кварцевого резонатора. Встроеный детектор напряжения, можно заюзать компаратор как супервизор, и вовремя начинать писать в EEPROM. 12 бит АЦП, который мне какраз очень нужен. Довольно быстрый ШИМ без всяких там PLL, без которых AVR не обойдётся из-за низкой тактовой частоты (8МГц против 48МГц, на 2,7V питания), корпус в самый раз (у Атмель всё USB-шное в огромных корпусах, с кучей ненужных мне лап), команды работы с константами там все есть. Ненужно сначала записывать константу в регистр, чтоб провести с её участием какую-нибудь логическую или арефмитическую операцию, ну и т.д.
В общем я собираю умный компактный преобразователь. Готовый конвертер рулится через ЦАП по I2C шине. По этой же шине рулится и ещё куча периферии. Контроллер заряда Li-ion, термодатчики и т.п. Выходное и входное напряжения и токи снимаются встроеным в МК АЦП (4 канала заюзано). Есть ещё ШИМ модуляция выходного напряжения. Тактовая 48МГц, глубина 8 бит. Связь с компом через USB, и с панелью управления (и индикации) через UART. При снижении напряжения питания ниже допустимого (если кто аккумулятор отключит) МК должен быстро бросать все свои дела, отрубать всё жрущее энергию, и записывать в EEPROM данные с ОЗУ, пока остатков энергии достаточно. Благо для этого внутри у него всё необходимое есть (в отличии от AVR, требующего внешнего супервизора). Более детальное описание прошивки займёт тут всю страницу. Я её всё равно сам буду писать. Мне просто нужен человек, которого я смогу по мере необходимости подоставать в аське своими тупыми вопросами типа "а как мне настроить этот модуль?" Последний раз редактировалось INFERION; 15.07.2010 в 06:00 |
15.07.2010, 06:03 | #4 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
"Вы просто не умеете их готовить".
AVR может работать и на 20 МГц (с кварцем, естественно). При этом, большинство инструкций выполняются за один такт, в отличии от PIC, требующего 4 такта на инструкцию. 48/4=12. Встроенный супервизор питания есть, в даташите есть целая глава о работе с ним и правильной работе с EEPROM, как в программном, так и в схемотехническом аспектах. Встроенный источник напряжения для АЦП тоже есть, как ни странно. Вопрос с USB можно решить установкой FT232R. Сразу решается вопрос с перепрограммированием контроллера, никакой BootLoader не нужен, освобождается место во FLASH. Для индикации можно использовать ЖКИ на 4 строчки. Как ни странно, у меня в планах почти такой же преобразователь на Atmega8. В целом, идея устройства понятна. Но для написания прошивки этой информации недостаточно. |
15.07.2010, 06:12 | #5 (permalink) |
Member
Регистрация: 23.11.2008
Сообщений: 1,084
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 460
|
Встроеный супервизор питания разве умеет не только сбрасывать, но и запускать процесс записи в EEPROM?
FT232R серьёзно поднимает себистоимость и занимает место. С таким же успехом я могу заюзать AT90USB82 и внешний АЦП, с 25-й тинькой (шустрый ШИМ то всёрано нужен). А при чём тут встроеный ИОН для АЦП? он везде есть, но я буду юзать ИОН с ЦАП, так стабильнее. ЖКИ некуда лепить. Устройство компактное и там планируется использовать 3 RGB светодиода и простую кнопку. Да и ненужна там такая информативность, начнут прикалыватся что тачскрина и игр нехватает... По поводу быстродействия - сомневаюсь что AVR даст 20МГц на 2,7V питания. А PIC 48 уже на 2,35V. У меня 3,3V по плану. Даже если не обращать внимание на более высокое быстродействие PIC, в данной ситуации, я ещё избавлюссь от ATtiny25 и получу возможность шустро дёргать лапами и возится с константами. И кварц лепить я не хочу... Я же не прошу писать прошивку. Я прошу научить меня её писать. Базовые представления есть, писал уже, только для других МК ... Последний раз редактировалось INFERION; 15.07.2010 в 06:18 |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
15.07.2010, 06:20 | #6 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Супервизор питания должен только сбрасывать контроллер. Работа контроллера при "плохом" питании запрещена - в таких условиях, контроллер может сам себя прошить неизвестно чем, а также испортить данные в EEPROM.
Я не вижу причин в экстренной записи данных при снижении напряжения питания. Все параметры можно сохранить до того, как все поломалось. Кроме этого, как гарантировать, что запаса энергии хватит на запись данных в EEPROM? Это одна из самых энергоемких операций. |
15.07.2010, 06:25 | #7 (permalink) |
Member
Регистрация: 23.11.2008
Сообщений: 1,084
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 460
|
И часть данных тогда потеряется, если питание вдруг вырубится, т.к. последние записаные данные на тот момент будут устаревшими. А ещё это здорово изнашивает EEPROM, т.к. писать прийдётся постоянно, а не только в моменты отключения аккумулятора, которые происходить будут крайне редко. У меня предполагается вести лог времени наработки, израсходованой энергии и т.п. И часы реального времени там есть для этого.
Народ ведь с EEPROM так и поступает. Пишет туда только когда питание начинает падать после отключения. Прерывание генерит внешний супервизор. Да и я считал требуемую мощность. У меня единицы микрофарад получались. Этого достаточно чтоб питать чип миллисекунды. Влепить тантал на 100 микрофарад не проблема... А встроный супервизор способен только удерживать МК в сброшеном состоянии, чтоб он дел не натворил при экстримально низком напряжении питания. Но ведь есть некоторый запас. Например у меня 3,3V питания, а проседать может до 2,35V. На 3,2V можно запускать запись в EEPROM и ещё остаётся 0,85V! Последний раз редактировалось INFERION; 15.07.2010 в 06:30 |
15.07.2010, 06:35 | #9 (permalink) |
Member
Регистрация: 23.11.2008
Сообщений: 1,084
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 460
|
Секунду, плиз. Валерий проснулся . Я чуть позже схему выложу. Там всё сразу станет ясно. Но она недорисована. Не придумал ещё какой туда преобразователь влепить, для питания самой периферии. Нужно держать 3,3V во всём диапазоне напряжений аккумулятора (4,2...2,9V). Но самое противное - в спящем режиме периферия тоже должна питатся, и преобразователь нельзя глушить, а он жрёт дофига на холостом ходу. Даже простые ULDO стабилизаторы миллиампер едят...
|
15.07.2010, 06:43 | #10 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Как насчет идеи реализовать USB программно?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|