|
Выбираю микроконтроллер, есть несколько вопросов про AVR |
|
|
|
Aug 19 2008, 15:29
|
Частый гость
 
Группа: Новичок
Сообщений: 75
Регистрация: 19-08-08
Из: г. Омск
Пользователь №: 39 697

|
Электроника - моё второстепенное увлечение, и иногда я уделяю ему немного времени  Основное увлечение - программирование, и поэтому в электронике меня больше всего привлекают микроконтроллеры. До этого я работал только с готовыми устройствами на микроконтроллерах - сотовыми телефонами Motorola. В них микроконтроллер Neptune LTE на ядре ARM7 Big Endian. Опыт программирования под них у меня достаточный, теперь решил попробовать свои силы в проектировании устройств на микроконтроллерах. В качестве микроконтроллера для начала мой одногруппник мне посоветовал AVR, немного рассказал про их базовые возможности, а в начале сентября даст мне много информации, так что буду учиться. В качестве примера для первого проекта я выбрал электронный регулятор угла опережения зажигания для комбинированного (бензин/газ) карбюраторного двигателя внутреннего сгорания. Принцип действия в том, что импульсы зажигания снимаются с датчика, жёстко связанного с коленвалом (или валом ГРМ, или валом распределителя зажигания, непринципиально), а характеристика "угол от частоты вращения" формируется с помощью микроконтроллера сдвигом импульсов. Для этого нужно измерять время от некоторого условного нуля отсчёта (момента включения зажигания?) до каждого фронта (или спада) сигнала датчика в тактах генератора (f=400 кГц) и выдавать фронт/спад выходного импульса при тактах этого генератора с известным номером. Для изучения поведения двигателя на бензине и на газе требуется, чтобы характеристику "фи от эф" можно было менять без остановки двигателя, давая команды с ноутбука. Сможет ли AVR воспринимать тактовые импульсы, отдавать выходные импульсы и одновременно программно обрабатывать USB? Какая тактовая частота для этого потребуется? (На каждый входной импульс от датчика зажигания - несколько арифметических операций, два чтения GPIO и одно получение данных из таблицы, на каждый тактовый импульс - несколько арифметических операций, несколько сравнений, не более одной выдачи на GPIO). Смогу ли я прошивать микроконтроллер через его встроенный бутлоадер, пользуясь интерфейсом UART? P.S. 1) Под "несколькими арифметическими операциями" я понимаю небольшое, каждый раз постоянное, число операций типа сложения-вычитания. 2) Если кого-то смущает "GPIO", это непосредственно управляемые/считываемые выводы микроконтроллера. Если они обычно называются по-другому, пожалуйста, скажите как.
Сообщение отредактировал motoprogger - Aug 19 2008, 15:38
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 25)
|
Aug 21 2008, 09:12
|
Частый гость
 
Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416

|
Цитата(motoprogger @ Aug 20 2008, 16:06)  Мне кажется, 4 МГц всего в 10 раз больше, чем 400 кГц... Ошибся)) Цитата(motoprogger @ Aug 20 2008, 16:06)  Прошить любой контроллер по USB, UART, SPI для меня не проблема, если знать протокол. Не найду программы - сам запишу. А вообще буду писать бутлоадер под USB, эмулирующий интерфейс Motorola Flash (он уже давно разобран досконально, через него телефоны Motorola прошиваются). Тогда идём сюда и читаем следующие документы: AVR060: JTAG ICE Communication Protocol AVR061: STK500 Communication Protocol AVR109: Самопрограммирование AVR230: DES Bootloader AVR231: AES Bootloader AVR910: In-System Programming AVR911: AVR Open Source Programmer AVR309: Программная реализация универсальной последовательной шины (USB)
|
|
|
|
|
Aug 22 2008, 03:43
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999

|
Цитата(motoprogger @ Aug 19 2008, 18:29)  В качестве примера для первого проекта я выбрал электронный регулятор угла опережения зажигания для комбинированного (бензин/газ) карбюраторного двигателя внутреннего сгорания. О! Молодец, земляк! Какая машина? Я собирал такую бодягу. С индикатором и клавиатурой для управления. Очень долго мучился с помехами: мега слетала после включения любого потребителя. Принцип управления в том, чтобы менять задержку подачи импульса на катушку в зависимости от частоты вращения КВ. Опорным датчиком импульсов служит ДХ на трамблере в положении 0град (или ДПКВ, что сложнее). Для точного регулирования угла нужна неплохая тактовая. Используй Mega88. Для связи с компом м/сх MAX232. Управление - на "тазиковский" коммутатор. 0 - накачка, 1-искра, длительность импульса мин. 3 мс. Генератор тактов внешний 20 МГц. по ВСЕМ задействованным входам меги и RESET конденсаторы 0.1 мкф на землю и резисторы 100 Ом последовательно Для графика УОЗ я использовал 6 опорных точек с интерполяцией между ними. Отдельных вход от газового клапана для переключения таблиц. Задержка делается так: INT0 - прерывание от ДХ. Вычисляется частота между интами, и из таблицы берется задержка и записывается в OCR1А со сбросом TCNT1. Включается накачка катушки зажигания. Второе прерывание на Timer1Compare - Включает искру. Все операции с компом можно делать в главном цикле.
|
|
|
|
|
Aug 22 2008, 06:16
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(uriy @ Aug 20 2008, 13:00)  Может быть вам стоить посмотерть на AT91SAM7S64. ... Уже с завода есть бут, заливающий прошивку через USB. Причем этот бут невозможно повредить. Повредить загрузчик невозможно, зато в какой-то момент начинает отваливаться процедура восстановления загрузчика на некоторых кристаллах. Цитата(uriy @ Aug 20 2008, 13:00)  Многи из читателей вам сразу скажут что ARM от атмел г**но берите LPC. Серия S именно это. X получше.
|
|
|
|
|
Aug 22 2008, 06:22
|

Частый гость
 
Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168

|
Цитата(aaarrr @ Aug 22 2008, 09:16)  Повредить загрузчик невозможно, зато в какой-то момент начинает отваливаться процедура восстановления загрузчика на некоторых кристаллах. Вот у меня такое произошло с SAM7S128 (SAMBA перестала нормально восстанавливаться и при этом еще перестал нормально работать J-TAG - постоянные сбои, которые лечатся только выключением). Это как-то лечится ?
|
|
|
|
|
Aug 22 2008, 06:45
|

Частый гость
 
Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168

|
Цитата(aaarrr @ Aug 22 2008, 09:34)  Нет. Разве что можно попробовать стереть кристалл через пин ERASE и увеличить время подачи TST. Если не поможет - в морг. Да, именно так и пробовал. Иногда самба восстанавливается... но j-tag-у это не помогает. Придется видимо покупать другой и перепаивать...
|
|
|
|
|
Aug 22 2008, 12:56
|
Частый гость
 
Группа: Новичок
Сообщений: 75
Регистрация: 19-08-08
Из: г. Омск
Пользователь №: 39 697

|
Цитата О! Молодец, земляк! Какая машина? Читай выше. ВАЗ-21011. Цитата Опорным датчиком импульсов служит ДХ на трамблере в положении 0град Не знаешь, на пусковых (0-800) оборотах какой УОЗ лучше всего? Установочный, нулевой или между ними? Если делать установочный, то ставить на него ДХ и уже от установочного формировать характеристику. Цитата Для точного регулирования угла нужна неплохая тактовая. Я выше написал: f=400 кГц, что на частоте 6000 об/мин даёт погрешность 0,09 градуса. Плюс прочие факторы - не думаю, что больше 0,2 градуса. Тактовая процессора - выше я прикидывал, сколько операций надо. Цитата Используй Mega88. Для связи с компом м/сх MAX232. Контроллер себе как-нибудь подберу, а для связи с компом придётся юзать PL2303, т. к. на ноутбуках нет COM-портов. Цитата Для графика УОЗ я использовал 6 опорных точек с интерполяцией между ними. Отдельных вход от газового клапана для переключения таблиц. Насчёт графика УОЗ - информацию беру из "Радиоежегодника" за 1990-й год, там, кроме наброска характеристики из 5 точек с квадратичной интерполяцией, ещё довольно интересный коммутатор и принцип управления энергией искры. Только аналоговый блок управления заменю на микроконтроллер. Цитата Управление - на "тазиковский" коммутатор. 0 - накачка, 1-искра, длительность импульса мин. 3 мс. Хотел оставить прежний, ВАЗовский, на перспективу - собрать и поставить вышеупомянутый Вход - намерен брать с обоих клапанов, если оба закрыты - выдавать характеристику для последнего открытого. Если при включении оба были закрыты - вообще не давать искру.
Сообщение отредактировал motoprogger - Aug 22 2008, 13:01
|
|
|
|
|
Aug 25 2008, 04:10
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999

|
Цитата(AHTOXA @ Aug 22 2008, 16:00)  куча характеристик УОЗ под разные авто. Вот именно, что такая куча...  поди найди под свой Я делал по вот такой штуке:
|
|
|
|
|
Aug 25 2008, 05:02
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(Syberian @ Aug 25 2008, 10:10)  Вот именно, что такая куча...  поди найди под свой Надо просто знать, как называется твоя машина  Цитата Я делал по вот такой штуке: А где зависимость от нагрузки (разрежения)?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|