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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

NC - Not Connected- не подключать, оставить болтающимся (общепринятое обозначение)
VTG - V target - питание целевого МК (терминология Atmel)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
uwrtey
Поставщик валерьянки для Кота
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

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

Сообщение uwrtey »

спасибо ARV
не зная броду не лезь к вольтмоду
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

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

Сообщение Alexeus »

Посоветуйте пожалуйста, как лучше принимать сигналы в мк в условиях борт сети автомобиля (иномарка). Ну там защита от помех, конденсаторы, резисторы, индуктивности- через что и по какой схематике лучше пропускать сигнал перед принятием его в мк? (обычный сигнал типа импульсов последовательного интерфейса, не ацп)
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

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

Сообщение Meteor »

Подробнее о сигнале и функции МК.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
enq
Открыл глаза
Сообщения: 59
Зарегистрирован: Чт фев 11, 2010 10:31:31
Откуда: Воронеж
Контактная информация:

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

Сообщение enq »

Здрасьте, подкиньте пожалста кусочек кода на ассемблере, для инициализации Таймера 2 в АтМеге16. Работа от внешнего кварца на tosc1/2 32.768 кГц. Без PWM, прерывание по переполнению 1 раз в сек. Нагугленные куски кода инициализации а) не работают (в протеусе), б) пояснение в лучшем случае на английском.
Добра вам
Изображение
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

enq писал(а): ...для инициализации Таймера 2 в АтМеге16. Работа от внешнего кварца на tosc1/2 32.768 кГц. прерывание по переполнению 1 раз в сек.
Примерно так:

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

sli
ldi R16, (1<<AS2)      ; асинхронный режим
out ASSR, R16
ldi R16, 0x00
out TCNT2, R16
ldi R16, (1<<TOIE2)      ; флаг разрешения прерывания по переполнению Т2
out TIMSK, R16
ldi R16, ((1<<CS22)|(1<<CS20))   ; 32768/128
out TCCR2, R16
sei
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

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

Сообщение Alexeus »

Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания. Организовано так- на базу цифрового транзистора поступает 12вольт напряжения борт сети, транзистор открывается и сажает ногу мк на землю (в обычном состоянии она подтянута к питанию мк 5в). мк отслеживает низкий лог уровень на этой ноге и запускает программу. Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

ValBag писал(а):Примерно так:

Наверное, cli? :)
Alexeus писал(а):интересует как бороться схематикой с дребезгом.

Ставить ФНЧ :))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

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

Сообщение Arlleex »

а можно парралельно замыкателю поставить конденсатор.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

Gudd-Head писал(а):Наверное, cli? :)
Разумеется - "очепятка" :)
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

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

Сообщение Meteor »

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

Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МК
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
enq
Открыл глаза
Сообщения: 59
Зарегистрирован: Чт фев 11, 2010 10:31:31
Откуда: Воронеж
Контактная информация:

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

Сообщение enq »

ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?
Добра вам
Изображение
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

enq писал(а):...Где косяк?
Странно. Приложите код (файлом).
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

enq писал(а):ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?

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

Мой уютный бложик... заходите!
enq
Открыл глаза
Сообщения: 59
Зарегистрирован: Чт фев 11, 2010 10:31:31
Откуда: Воронеж
Контактная информация:

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

Сообщение enq »

Да, угадал, набор RJMP'ов. Но в том порядке, в котором даны в даташите, стр. 45. В аттаче код, как просили выше. (в коде еще опрос клавы и работа с UART, проект большой)
Вложения
code.asm
ValBag просил код
(4.97 КБ) 233 скачивания
Добра вам
Изображение
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

enq
Причин может быть несколько:
1. Похоже есть мой промах. Определения .def я опрометчиво использовал из СИ. Уточните в m16def.inc действительные обозначения регистров и битов в ассемблере, для необходимой правки кода инициализации таймера 2.
2. Если используете не все прерывания, то лучше сделать так:

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

.cseg
.org 0
rjmp START
reti
reti
reti
rjmp TIMER2OVF
reti
reti
...
reti
...
START:
....
TIMER2OVF:
...
А можно так:

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

.cseg
.org 0
rjmp START
.org 0x0008
rjmp TIMER2OVF
; и т. д.
3. В конце инициализации таймеров, сбросить все флаги, которые могли случайно возникнуть в регистре TIFR. Это предотвратит однократное первое срабатывание прерывания от неинициализированного таймера, в случае ошибочного флага.

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

...
ldi R16, 0xFF
out TIFR, R16
...
enq
Открыл глаза
Сообщения: 59
Зарегистрирован: Чт фев 11, 2010 10:31:31
Откуда: Воронеж
Контактная информация:

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

Сообщение enq »

Флаги, имхо, не причем. Таймер же работает, тикает раз в секунду, мигает диодиком. просто возникает не то прерывание. Попробую Подправить таблицу векторов.
UPD: Спасибо, вопрос решен, вопрос снят. Привел таблицу векторов к такому виду:

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

.cseg

.org 0
            rjmp RESET    ; Reset Handler
.org $008   
       rjmp TIMER2_OVF ; Timer2 OVERFLOW
.org $016    
       rjmp UART_RXC

Теперь тикает правильное прерывание.
Добра вам
Изображение
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

enq писал(а):Теперь тикает правильное прерывание.
Ну и лады... Кстати обозначения .def аналогичны. Так что зря я сокрушался.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

ValBag писал(а):А можно так:

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

.cseg
.org 0
rjmp START
.org 0x0008
rjmp TIMER2OVF
; и т. д.
не можно так, а НУЖНО ТОЛЬКО ТАК!!! и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА.

и то, что проблема решилась именно благодаря этому, лишний раз подтверждает мою правоту. не делайте НЕПРАВИЛЬНО, делайте ПРАВИЛЬНО - и будет вам счастье :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

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

Сообщение SII »

ARV писал(а):не можно так, а НУЖНО ТОЛЬКО ТАК!!![/size][/color] и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА


Это Ваше личное мнение, а не бесспорная истина в последней инстанции. Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера. Впрочем, холиварить не собираюсь.
Ответить

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