MCS51, вопросы перехода с "классики" на SiLabs...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а):пришлось фигачить на СИ
Каюсь - читал, но не запомнил.. :oops:

Gudd-Head писал(а):СиЛабами тут практически никто не работает.
Да и все МК51 тут на форуме не особо распространены.. Может из-за того, что в основном котята на форуме..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Да и все МК51 тут на форуме не особо распространены.. Может из-за того, что в основном котята на форуме..

Но зато спасибо вам — я узрел что у СиЛаба есть МК в паябельных корпусах со скоростью до 100 MIPS!!! В отличае от АВРа, где всего 16-20 МГц у Тини-Мега и до 32 МГц у ХМега.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Сравнивать впрямую МГц и MIPS-ы не очень корректно - даже Интел это поняла и сняла свой лозунг "Даёшь МГц-ы"..

Всё познаётся на конкретных применениях и под конкретную задачу.. Да и архитектура и система команд МК имеют существенный вес..

Вот например, на МК51 мя выдам на линию порта меандр затратив 4 байта памяти программ и написав две строчки на АСМе..
Сколько для такой-же задачи понадобится ресурсов в AVR с его"кастрированным" битовым процессором - мя не знаю..

Это не тема для "холивара", просто мя высказался..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Вот например, на МК51 мя выдам на линию порта меандр затратив 4 байта памяти программ и написав две строчки на АСМе..

Если на то пошло, то мне не на много большего и надо: только сохранить значение с порта в оперативке. Сколько тактов это займёт и какими командами???
У АВРа 3 такта :
in r??, PIN?; 1 такт чтение в порта в РОН
ST X/Y/Z+, r??; 2 такта сохранения РОН в ОЗУ с пост-инкрементом адреса или пре-декрементом
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а):в ОЗУ
Какое ОЗУ имеется ввиду?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Мастер Ломастер »

МитяРа писал(а):Вот например, на МК51 мя выдам на линию порта меандр затратив 4 байта памяти программ и написав две строчки на АСМе..
Сколько для такой-же задачи понадобится ресурсов в AVR с его"кастрированным" битовым процессором - мя не знаю..
если имелось ввиду генерирование меандра в программном цикле, то для AVR это тоже потребует 2 команды и 4 байта :)

Код: Выделить всё

M1: SBI  PINB, 1
    RJMP M1
правда, работать будет только на "новых" мегах и тиньках.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Какое ОЗУ имеется ввиду?

Встроенное в МК.
UPD: Пожалуй, отвечу сам себе: использовать команду MOVX с определёнными настройками регистра External Memory Configuration.
Итого получается полная задница в 5 тактов:
mov A, PORT?; 1 такт, считываем из порта в аккум
movx @DPTR, A; 2 такта, сохраняем содержимое аккума в оперативке с адресом согласно DPTR
inc DPTR; 2 такта, увеличиваем значение адреса
:(
Естессно, если сохранять только 256 байт, то можно сократить на 1 такт за счёт простого инкремента одного байта.
Последний раз редактировалось Gudd-Head Чт авг 11, 2011 11:24:45, всего редактировалось 1 раз.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а): использовать команду MOVX с определёнными настройками регистра External Memory Configuration.
Верно.. Только надо будет уточнить по поводу "шустрости" внутреннего ОЗУ..

Мастер Ломастер, а что в AVR делает команда:

Код: Выделить всё

SBI  PINB, 1
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Мастер Ломастер »

МитяРа писал(а):что в AVR делает команда:

Код: Выделить всё

SBI  PINB, 1
команда SBI PORT, BIT устанавливает в порту ввода-вывода PORT заданный бит BIT в единицу.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Мастер Ломастер, а что в AVR делает команда:

Код: Выделить всё

SBI  PINB, n

Можно я отвечу? :)))
Команда записывает в разряд n лог. "1" защёлки считывателя порта В, тем самым опрокидывая выходной буфер.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а):если сохранять только 256 байт, то можно сократить на 1 такт за счёт простого инкремента одного байта.
Если 256 байт, то можно использовать страничные пересылки, но по тактам будет тоже самое..
Поправлю: movx A, @dptr - 3 такта..

Мастер Ломастер писал(а):команда SBI PORT, BIT устанавливает в порту ввода-вывода PORT заданный бит BIT в единицу.
Gudd-Head писал(а):Команда записывает в разряд n лог. "1" защёлки считывателя порта В, тем самым опрокидывая выходной буфер.
Единицу выставили - хорошо, а ноль кто выставлять будет?
У 51-го есть команда инвертирования бита, CPL bit
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Единицу выставили - хорошо, а ноль кто выставлять будет?
У 51-го есть команда инвертирования бита, CPL bit

Эта команда (именно SBI PINX, n) как раз инвертирует (опрокидывает) выходной уровень, т.к. мы пишем не в регистр выходного буфера PORTХ, а во входной — PINX. По сути, это полный аналог CPL bit, но только к портам ввода-вывода.
МитяРа писал(а):Поправлю: movx A, @dptr - 3 такта..

http://www.gaw.ru/html.cgi/txt/doc/micr ... /movx_.htm
http://digital.sibsutis.ru/MCS51/instr1.htm
Пишут, что два :dont_know:
И уж что-что, а ОЗУ должно быть шустрее флэша.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а):Пишут, что два
Это ты для "классики" смотришь, где 1 цикл=12тактов кварца..
У SiLabs-а циклов нету, а считается сразу в тактах.. В книжке у Николайчука написано - 3 такта..

Слушай, вот ты когда с АЦП прогу писал, ты как его запускал/считывал, по таймеру или программно?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):В книжке у Николайчука написано - 3 такта..

Кстати да, совсем забыл про неё :idea:
МитяРа писал(а):Слушай, вот ты когда с АЦП прогу писал, ты как его запускал/считывал, по таймеру или программно?

Программно. Запускал соотв. битом, считывал — по флагу прерывания :))) Т.е. в тексте проги тупо зависал пока не появится флаг готовности.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а):.е. в тексте проги тупо зависал пока не появится флаг готовности.
Значит программно..
Т.е. сначала устанавливал бит запуска, а потом ждал готовности данных - да?

Вчера вечером разбирался с АЦП в F300-м читал-считал-читал-считал, но так и не понял насчёт реальных скоростей преобразования..
Надо будет в реале попробовать эти 5 бит задания скорости перебрать от 0 до 32 и посмотреть, что получится..
Перелопатив кучу примеров выяснил, что максимальная частота АЦП ставится 7.5МГц..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Т.е. сначала устанавливал бит запуска, а потом ждал готовности данных - да?

Да.
В ДШ на Ф300 про АЦП прямо написано до 500 тыс. выборок в сек. Разве не так?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а): написано до 500 тыс. выборок в сек. Разве не так?
Вот и хотелось это расчётами подтвердить, но пока не получается..

А щас начальник мышь мне подложила - в отпуск не отпускает с понедельника, говорит заменить тя не кем, мол в сентябре отгуляешь.. :kill:
А дочусик хочет на море.. :cry:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Посчитал - вроде сходится..

Если тактовая АЦП, 7.5МГц, то:
- один период будет 133нС,
- умножаем на 8бит=1.066мкС,
- прибавляем заряд УВХ 300нС=1.366мкС,
- если прибавить время на выставление бита запуска+чтение, когда будут данные готовы+данные записать, куда надо..

Тогда получается, что будет 500КилоИзмерений в секунду или КБайт, т.к. АЦП 8-ми разрядный..
Это хорошо..
Мя когда в начале читал, подумал, что выборка это 1 бит.. :roll:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Ещё вопросик:
- Входной сигнал АЦП написано, что от 0 до VREF..
Если использовать внутренний VREF=Ucc=3.3V, то кака защитить входа от высокого напряжения..
Сначала хотел, как обычно диодами на Ucc, но это будет уже больше опорного.. :dont_know:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Если использовать внутренний VREF=Ucc=3.3V, то кака защитить входа от высокого напряжения..
Сначала хотел, как обычно диодами на Ucc, но это будет уже больше опорного.. :dont_know:

Ооочень хороший вопрос :) (просто я озадачился этим при проектировании цифровой приставки для аналогового осцилла).
Для начала: что измерять будем?
Я планирую защищаться примерно такой схемкой:
Изображение
Вложения
1.GIF
(7.1 КБ) 665 скачиваний
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»