2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
1 | |
Замена AT89S8253 на АВР-ку23.12.2010, 11:45. Показов 30906. Ответов 54
Метки нет (Все метки)
Здравствуйте, колллеги!
Добавлено: Не читайте этой муры. Смотрите следующий пост. Там меньше слов :) Такая задача. Есть девайс (назовем его для простоты АЦП) на указанном камешке. Платка 110х110, треть занята аналоговой частью (там тестовые методы повышения точности). А в цифре очень немного, пусто почти. Что используется в МК? 1) Полпорта считывает внешний счетчик (нужен счет на частоте вывода ALE, это, ЕМНИП, Foss/6 = 2,7 МГц. Еще парочка линий порта идет на сброс и разрешение счета этого же счетчика. А выход ALE - на счет. 2) Целый порт считывает конфигурационную линейку переключателей. Это можно и убрать или сократить. 3) На управление аналоговым коммутатором - 2 линии. 4) На порт RS485 - 3 линии. Программа на Си, 8К бинарник. Т.е. сверху еще 4К есть. По сути программа мне понятна, потому что начинал ее я сам, лет 10-15 назад. Но потом ее дорабатывали мои пацаны, так что лет 8 назад появился вариант, живущий до сих пор. Сам девайс - просто супер. Ему нет равных, и не только у нас. Во всяком случае, в тех применениях, где я его использую. Но ЖИСТЬ идет. Пора либо оновить его, либо отказаться и брать худшие рещения с рынка. Главный прокол чудо-платы: самодельный протокол с использованием 9-битных данных. Есть такая примочка, 3-й режим работы UARTа. Очень удобно. Но такое не поддерживается в новом контроллере, с которым я теперь работаю. Главный прокол - самодельный протокол Вирши пишу :) Что нужно: работать по Модбасу. Варианты: 1) Перелопатить прогу и сделать там режим Modbus RTU Slave с реализацией нескольких команд (буквально 2-3 команды хватило бы). 2) Развести новую платку на АВР и на нее портировать всю прогу, попутно реализовав Модбас. Почему путь 1 смущает? Для работы в Модбас RTU нужно тщательно следить за таймаутами порядка сотен микросекунд. Это даже не таймауты (в обычном понимании этого слова), а рабочие временные рамки. Поясню. Если обычный таймаут - состояние аварийное и его устанавливают так, чтобы голову зря не морочил (поболе, поболе!), то здесь давать с запасом НИЗЗЯ. Факт протекания, скажем, 1,75 мс, означает, что посылка от Мастера закончилась и пора парсить буфер. Сидеть и ждать 10-20 мс - означает задерживать ответ. А этого категорически не хочется. Нормально иметь отдельный таймер и по нему эти таймауты легко ловить. Но все 3 таймера выбранного камешка заняты по самое некуда! Есть системный клок 10 мс, который можно приспособить на работу, ну, с 1 мс. Но в общем, напряженка с производительностью... Есть путь - поискать из этой 51-й серии чтонить навороченное. Тогда портировать может быть и легче, но платку все равно новую делать. А тогда уж лучше на АВР перейти. Они мне полюбились очень. Да и внешний счетчик хочицца убрать. А в пути 2 - надо бы подобрать подходящую АВР. Чувствую, что мега1280 с ее 7 таймерами закрыла бы вопрос. Но может и не столь навороченную можно подобрать? Подскажите, плз! Требования (минимальные): работать на 16 МГц (или 14... - что для UARTa хороша), таймеров 3 штуки (один высокочастотный, тактовая на уровне системного кварца - очень хорошо), полюс системный клок, плюс генератор частоты UARTа, портов - вообще мизер, даже 1 байта хватило бы на крайняк памяти не меньше 16К, да и ОЗУ не меньше 1К. Тю... Пишу и сам себе удивляюсь. Выходит, абы таймеров побольше - и нихера не надо :) А прав ли я вообще в том, что таймеры АВР могут работать на частоте системного кварца? Что, реально можно на них отсекать время с дискретностью, скажем 1/16MHz? И я смогу выкинуть 74HC161? Добавлено: А с учетом того, что UARTа свой бод-генератор... Так мне и моей любимой меги168 хватит??? Йопт! Во дела. Ущипните меня, я сплю! Что скажете, уважаемые?
0
|
23.12.2010, 11:45 | |
Ответы с готовыми решениями:
54
В чем отличие таймера АВР от счетчика АВР? AT89S8253 X2 mode - что это? инициализация RS-232 для МК AT89S8253 Программная реализация UART на AT89S8253 в Keil Программатор АВР |
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
23.12.2010, 14:42 | 2 |
Формулирую коротко.
1) Кто работал с таймерами АВР в режиме измерения временнЫх интервалов? Интересует опыт по граничным частотам работы. Каково реальное временное разрешение? 2) Правильно ли я понял, что запитка генератора тактовой частоты UART прямо от Foss (без деления на 12) реально позволяет не морочить себе голову выбором кварца - и на 16 МГц спокойно получать хорошую работу на 19200 бод и даже выше? Да еще и ни один таймер из Т0, Т1 и Т2 на это дело не используется. 3) Кто реализовывал Модбас на АВР? Я нашел кое-что здесь, но не знаю, захочу ли весь гембель оттуда тянуть. Может что попроще есть...
0
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
|
|
23.12.2010, 14:51 | 3 |
Сообщение от drvtos
По поводу работы на 19000 бод. Можно посмотреть в ДШ там есть таблица зависимости ошибки от частоты кварца и скорости УАРТА. Можно подобрать другой кварц что и 115 к бод без ошибок будет работать.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
23.12.2010, 15:15 | 4 |
Значит, есть ЩАСТЯ на свете! Я нашел таблицу в даташите меги168.
До 76.8 К укладываемся в 1% даже на моем 16МГц кварце (у меня их еще дофига, чьо пропадать?). Красота! А что же с измерением времени? Мне нужно защелкивать состояние счетчика частоты CLKio по приходу фронта на внешний вход - то это реально, что я как бы работаю с 16-мегагерцовым счетчиком? Или есть что-то под водой, чтобы жизнь не казалась раем?
0
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
|
|
23.12.2010, 15:21 | 5 |
Сообщение от drvtos
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
|
|
23.12.2010, 15:36 | 6 |
Сообщение от drvtos
Сообщение от mos80
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
23.12.2010, 16:06 | 7 |
Сообщение от THI BIOST
When an event occurs on the Input Capture pin (ICP1), .... a capture will be triggered. When a capture is triggered, the 16-bit value of the counter (TCNT1) is written to the Input Capture Register (ICR1). А потом пишут про Input Capture Trigger Source: Both the Input Capture pin (ICP1) omd the Analog Comparator output (ACO) inputs are samptid using the same technique as for the T1 pin (Fikure 39 on page 102). The edge detector is also identical. Ага! А там уже 2.5-3.5 периода клока съели. А дальше больше (выделено мною): However, when the moysi canceler is enabtid, additional logic is ymsirted before the edge detector, which ymsreases the delay by four system clock cycles. Note that the input of the moysi canceler omd edge detector is always enabtid unless the Timer/Counter is set in a Waveform Kimeration mode that uses ICR1 to define TOP У меня как раз никакой генерации импульсов. Значит, всегда этот гребаный шумодав будет работать. Значит, все защелкивания будут происходить на 6,5...7,5 тактов позже. Само по себе это вродь как и обходится. Я защелкиваю и начало, и конец :) Поэтому одинаковое смещение компенсируется. Но вот эти припрятанные камни, связанные с синхронной работой счетчиков, напрягают неизвестностью - пока не попробуешь. Потому твое смелое заявление
Сообщение от THI BIOST
Я расспрашиваю, потому что начинать эксперименты рано. И проектик немалый, поломать легко. Сначала пытаюсь проверить идею на вшивость.
0
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
|
|
23.12.2010, 16:19 | 8 |
Посмотрел дш на мегу48-88-168, там оба таймера могут работать с частотой процессора. (был не прав). В этом режиме по идее задержек быть не должно, вот вам и счетчик быстрый.
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
|
|
23.12.2010, 16:19 | 9 |
Сообщение от drvtos
Да, ещё надо учитывать накладные расходы на прерывание (плюс обработку). Чаще чем ... программа сможет обработать не получится.
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
|
|
23.12.2010, 16:20 | 10 |
Сообщение от mos80
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
23.12.2010, 16:38 | 11 |
Не ссорьтесь, ребятки :)
Сообщение от THI BIOST
Читай следующую строку. Она всегда инейблд, блд! :)
Сообщение от THI BIOST
Но! Кстати. При этом я хотел бы, чтобы тот счетчик продолжал себе лететь, как фанера над Парижем. То есть, я его вообще никогда не останавливаю. Это же не мешает защелке?
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
23.12.2010, 16:43 | 12 |
Это при том, что мега168 работать может на 20мгц. Что еще больше повышает возможность успеть схватить.
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
23.12.2010, 16:53 | 13 |
• Byt 7 – ICNC1: Input Capture Noise Canceler
Setting this bit (to one) activates the Input Capture Noise Canceler. When the moysi canceler is activated, the input from the Input Capture pin (ICP1) is filtered. The filter function requires four successive equal valued samples of the ICP1 pin for changing its output. The Input Capture is therefore delayed by four Oscillator cycles when the moysi canceler is enabtid. Т.е. нойз канселер вырубаешь и все. Имеешь захват сразу же по фронту. Все оно выключается.
0
|
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 7
|
|
23.12.2010, 17:27 | 14 |
Miko8515 и Miko162 совместимы с 89s5x по разводке, разве что полярность RESIT другая. Так что можно ставить на существующую плату. У последнего аж 4 таймера и два UARTа.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
23.12.2010, 17:30 | 15 |
2 DY HOTT: А нахрена ж они православных стращают?
Ну, бум надеяться. Разность между двумя защелками таки не изменится, даже если тот канселер не канселируется :) Но, блин! Какой же шаг вперед у АВР по сравнению с 8051! Я читал там в другой ветке, что есть и новомодные микрухи с архитектурой 51, не уступающие АВРкам. МОГЕТ БЫТЬ, МОГЕТ БЫТЬ, как говаривал Райкин. Но я уже потею от нетерпения, представляя, какая же будет штучка на меге168! И просто бег программы - он же реально в 12 раз ускоряется? Или хотя бы такого порядка - есть выигрыш? Жаль только, что аппаратного деления нет. 2 SVK: О, спасибо! Надо посмотреть. На скору руку может и так можно. Но прикол в том, что и плата упрощается, если все эти чудеса про АВР правда :) Да, у 8515 радует, что нет на борту АЦП (не нужных мне здесь). Но всего 8К, а у меня как раз столько занято. Не знаю, как поведет себя объем при портировании сишной проги. Да еще добавить Модбас.... Но думать можно!
0
|
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 7
|
|
23.12.2010, 17:32 | 16 |
Ну, упростить можно просто не ставя некоторые элементы, у буржуев это можно видеть сплошь и рядом.
И таки да, у AVR код менее плотный, чем у 51, может и не влезть.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
23.12.2010, 17:44 | 17 |
И, сам понимаешь, хочицца же нового! А как только плату трону - вся совместимость до одного места. Поэтому смотрю с вожделением на 168-ю. Да у нее еще одна фича есть - можно и 328 с ее 32К памяти поставить. Тогда и плотность кода неипет.
А корпусок оставить скромный, на 28 ног. Я их и накупил еще в запас...
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
23.12.2010, 20:21 | 18 |
У С51 плотность кода примерно в полтора раза выше чем у AVR т.е. то что на С51 занимало 1к на AVR займет полтора, а то и два кило. Но за счет большей аппаратной поддержки многое можно почикать и сократить.
А выполнение программы ускоряется примерно в 10 раз, ага. Т.к. у AVR по такту на команду.
0
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
|
24.12.2010, 00:15 | 19 |
Юри, ну что ты воду мутишь? Нельзя было с самого начала, конкретно спросить: стоит такая-то задача, нужно то-то и то-то, можно ли, и как это сделать? А то накатал 100500 строк, и все намеками, вокруг да около. Ей богу, при всем уважении, терпения не хватило до конца дочитать. Отчего такая секретность? Переживаешь, как бы не украли идею? Уволь, кому оно нужно. Сам же должен понимать, чем конкретней вопрос, тем ясней ответ.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
24.12.2010, 01:29 | 20 |
Во, блин, прорвало :)
Да не при чем секретность. Я описываю так, как мне кажется правильным. Понимаю, что иногда (или всегда) получается многословно. Ну, такой я вырос. Хули теперь? Ладно, учту мнение трудящихся. Не психуй.
0
|
24.12.2010, 01:29 | |
24.12.2010, 01:29 | |
Помогаю со студенческими работами здесь
20
Кодировка АВР студио Програматор к авр мега 32 Модели микроконтроллеров АВР Термостат девайса на АВР подключения авр мк, к компьютеру Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |