Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Родился
Сообщения: 17
Зарегистрирован: Пт окт 15, 2010 10:50:38

Сообщение Inquirer »

stas00n писал(а):
Inquirer писал(а):Нет-нет. Если вЫходной сигнал будет 0-3,3В , то его надо будет масштабировать на 0-5В . Я тут боюсь точность потерять.
Опять непонятно. Что значит "масштабировать"? Если нужно усилить выходной сигнал - ставим операционный усилитель и все. На 20 кГц любой ОУ потянет.
У меня пока нету понятия "усилитель". Я программист. Если мне надо 0-3,3 отобразить на 0-5 , я использую коэффициент и умножаю. Так вот, я опасаюсь, что некоторые из нужных мне значений попадут в промежутки между такими умноженными результатами.
stas00n писал(а):Так бутлоадер как минимум надо будет сперва прошить программатором, так что без последнего никак обойтись не удастся. Предусмотрите в схеме разъем внутрисхемного программирования и обновляйте прошивку программатором сколько влезет. Простейший программатор ("5 проводков") для AVR делается за час, для PIC - за полдня.
Ну, один-то раз я могу сходить к знакомому и записать бутлоадер, а вот конфисковывать у него программатор - это ой. Но если простейший программатор для AVR за час делается, то стоит его сделать :))
stas00n писал(а):Если в знаменателе переменная, без деления, увы, никак. А вот использовать плавающую запятую в Вашей задаче я бы не стал, хватит и целочисленной арифметики (или с фиксированной запятой, которая суть та же целочисленная, т.к. запятая "в уме"). У Вас входные данные будут максимум 10-битные, так что 16-битных операндов хватит за глаза и за уши; для произведения 16х16 понадобится 32 бита, перед следующим умножением надо будет просто урезать результат предыдущего до 16 бит.
Как-то так я себе это и прикидывал.
Реклама
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Чт апр 22, 2010 13:06:03

Сообщение warrior2031 »

avreal Благодарю за Ваш ответ.

Частоту я могу ставить только соответствующую поставленному в схеме кварцу или любую (учитывая что мой программатор сам clk не выдает)?

Ещё такой вопрос. На mega8535 тоже автоматически сброс происходит при подаче питания?

Просто первое подозрение, понятно, на ресет, поэтому и спрашиваю.

Если посмотреть в даташите на мегу, тот там в зависимости от корпуса есть прямой ресет и инверсный. А в документации на аналог про это ничего не сказано.

Обозначен ресет по их документации так: RESET#. Это прямой или инверсный, кто-нибудь знает?

Ещё раз благодарю за внимание.
I know what you're thinking. "Did he fire six shots or only five?"...
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

warrior2031 писал(а):Если посмотреть в даташите на мегу, тот там в зависимости от корпуса есть прямой ресет и инверсный.
Вроде во всех АВР-ках ресет происходит при низком уровне, не зависимо от типа корпуса, у аналога должно быть также. Кстати его надо к +питания подтянуть...
Опытный кот
Аватара пользователя
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна

Сообщение avreal »

warrior2031 писал(а):Частоту я могу ставить только соответствующую поставленному в схеме кварцу или любую (учитывая что мой программатор сам clk не выдает)?
Не выше частоты тактирования контроллера. Иногда приходится дополнительно занижать, например, если длинные провода - плохие фронты, земля не очень. Тогда нужен запас некоторый.
Для тех, у которых есть фьюз CKDIV8, при прошитом фьюзе частота тактирования равна кварц/8, это нужно учитывать.
Кстати, подробнее о synchronisation lost тут
warrior2031 писал(а):Ещё такой вопрос. На mega8535 тоже автоматически сброс происходит при подаче питания?
Просто первое подозрение, понятно, на ресет, поэтому и спрашиваю.
...
Обозначен ресет по их документации так: RESET#. Это прямой или инверсный, кто-нибудь знает?
# в конце принято ставить для инверсных сигналов. У всех AVR сброс нулём.
Если бы были проблемы с линией сброса, контроллер не распознавался бы вообще. А так он распознаётся и сигнатура считывается правильная.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Хотел бы поинтерефсоваться у знатоков Atmega8 - формат регистра ВВ SFIOR - сколько там незаразервированных/зарезервированных битов - как они читаются и какими устанавливаются их значения после включения питания.
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

Изображение
После включения питания - нули.
Вложения
SFIOR.PNG
(5.95 КБ) 608 скачиваний
Контактная информация:
Реклама
Открыл глаза
Сообщения: 68
Зарегистрирован: Пн окт 06, 2008 15:51:58
Откуда: Черкассы

Сообщение Rusja2008 »

To Stalker46
Старших 4 бита не используются и всегда 0. А остальные при сбросе тоже будут 0. Если хотите конкретнее, уточните для чего Вам надо этот регистр: для компаратора или сброса таймеров?
Не умееш - не берись, но не взявшись не научишся.
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Спасибо, что откликнулись:)
Мне нужен бит PUD, но т.к. я инициализирую SFIOR регистром R16, вот поэтому и спрашивал - каково начальное состояние битов.
Просто если изначально бит был 1, то я его сброшу записью в него 0, при этом установив бит PUD в 1.
Спасибо!!!
Не умеешь - не берись, но не взявшись не научишься...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Stalker46, в таких случаях сначала считывают байт(регистр), изменяют его в нужном месте не изменяя остальное, а потом записывают обратно.
например установить биты так:

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

.equ BIT1=1
.equ BIT5=5
...
in SREG,tmp
ori tmp,(1<<BIT1)|(1<<BIT5)
out tmp,SREG
сбросить биты так:

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

in SREG,tmp
andi tmp,~((1<<BIT1)|(1<<BIT5))
out tmp SREG
а еще проще вот так:

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

;установить
sbr tmp,(1<<BIT1)|(1<<BIT5)

;сбросить
cbr tmp,(1<<BIT1)|(1<<BIT5)
Ставим плюсы: )
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Сообщение Гефестион »

Можете пояснить, плиз, что означает такая запись: (1<<BIT1)|(1<<BIT5) ? :oops:
Например, вот в такой строчке: sbr tmp,(1<<BIT1)|(1<<BIT5)
Я правильно понимаю, что константы BIT1 и BIT5 сдвигаются на 1 разряд влево (в сторону старшего бита), с полученными числами выполняется функция ИЛИ, и затем это число записывается в регистр tmp?
Неоднократно в даташитах такое встречал, но сам в программах не использовал.
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Гефестион писал(а):Я правильно понимаю, что константы BIT1 и BIT5 сдвигаются на 1 разряд влево (в сторону старшего бита), с полученными числами выполняется функция ИЛИ, и затем это число записывается в регистр tmp?
да
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Гефестион, НЕТ! сдвигается единица (1) " sbr tmp,(1<<BIT1)|(1<<BIT5) " такое кол-во раз, чему равна константа (в примере BIT1 и BIT5)
если напишите (5<<2), получите число 0b00000101 сдвинутое на 2 разряда влево, а именно 0b00010100
а в остальном нет отличий от Вашего варианта.
Ставим плюсы: )
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Сообщение stas00n »

Inquirer программатор "5 проводков" делается за час максимум с учетом отсутствия у Вас опыта; кто держал в руках паяльник, управится минут за 15.
Изображение
Разрываете вдоль шлейф для старого HDD, чтобы было 10 проводов, накалываете на розетку IDC-10, другую сторону припаять к DB-25 розетке по схеме, - все, программатор готов
Родился
Сообщения: 17
Зарегистрирован: Пт окт 15, 2010 10:50:38

Сообщение Inquirer »

stas00n писал(а):Разрываете вдоль шлейф для старого HDD, чтобы было 10 проводов, накалываете на розетку IDC-10, другую сторону припаять к DB-25 розетке по схеме, - все, программатор готов
А почему на XS2 VCC и XTAL1 в воздухе висят? На эти пины ничего не подсоединять или на них подавать с других источников сигнал? Ну VCC-то понятно - питание. Либо от батарейки, либо если внутрисхемно, то от источника питания устройства. А что за XTAL1, зачем он вообще указан на схеме, если не подключен?
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Сообщение stas00n »

Ножка VCC используется для питания буфера 74HC244 в программаторе STK200, в "5 проводках" буфер выкинут, все соединено напрямую, поэтому питание ему не нужно. Ножки LED и XTAL тоже не используются, просто подписаны так же как на стандартном ISP разъеме.
Родился
Сообщения: 17
Зарегистрирован: Пт окт 15, 2010 10:50:38

Сообщение Inquirer »

stas00n писал(а):Ножка VCC используется для питания буфера 74HC244 в программаторе STK200, в "5 проводках" буфер выкинут, все соединено напрямую, поэтому питание ему не нужно. Ножки LED и XTAL тоже не используются, просто подписаны так же как на стандартном ISP разъеме.
Замечательно :)) А какая программа может через такой "программатор" прошивать авр-ы?
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Сообщение stas00n »

PonyProg. Можно прямо из CodeVisionAVR, я, правда, не пробовал, но по идее должно работать. Теоретически, все программы, которые работают с STK200, могут работать и с этим, т.к. логически они идентичны, просто в настоящем STK200 сингальные линии буферизованы для улучшения фронтов и для защиты.
enq
Открыл глаза
Сообщения: 59
Зарегистрирован: Чт фев 11, 2010 10:31:31
Откуда: Воронеж

Сообщение enq »

Здравствуйте. Собрал я программатор Гололобова Вот по этой схеме. Использую с атмегой 16А через настоящий Com-port. питание на мегу подаю с USB. Проверял все подключения 100 раз. Но Uniprof упорно не хочет видеть МК, avrdude с подправленным конфигом (по ссылке выше) тоже. исползовал провод 40см, и втыкал напрямую в Com порт - все одно. Так по сабжу, в чем может быть проблема?
Добра вам
Изображение
Контактная информация:
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Народ - а чего это слухи ходили, что в Attiny2313 частота внутреннего RC генератора 1МГц???
Ведь смотрю евстифеева -
таблица -
Внутренний калиброванный RC-генератор:
(режим по умолчанию)
Частота внутреннего RC генератора по умолчанию:
8МГц.
Не понял??
Не умеешь - не берись, но не взявшись не научишься...
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Сообщение phenomen »

2 enq: величина сигналов на порте обычно составляет ±12В, а логического уровня для стационарника маловато, тем более лог "0" в МК это +0 до, примерно, +0,5В, а в СОМ - от -3 до -25. Если хочете просто соберите вот это
Ответить

Вернуться в «Разные вопросы по МК»