roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллер AVR начинающим - общие вопросы

Radist » 02 ноя 2011, 14:09

Поставить кварц 7,3728 МГц.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Flexz » 02 ноя 2011, 14:43

Для стабилизации числа выдаваемых значений очевидно нужно отсчитывать не время, а именно число выдаваемых значений :) Если же вам нужно оцифровать определенный интервал времени, лучше сделайте опрос АЦП по таймеру, сохранив значения в массив, потом выдать в UART. Еще в вашем коде можно сделать запуск АЦП перед вызовом printf, когда последний отрабоает в АЦП уже будет новое готовое значение.
Переменную io, по хорошему, нужно сделать volatile т.к. она изменяется в прерывании.
UARTу высокая точность частоты обычно не нужна, отклонение процентов в 5 переваривается вполне успешно большинством девайсов.

Re: МикроКонтроллер AVR начинающим - общие вопросы

ongleb » 02 ноя 2011, 15:36

...наверно мой вопрос будет тут в тему

имею BIGAVR2 с процессором ATmega2560 и Serial ETHERNET BOARD на ENC28J60 (Производства MikroElektronika)
долго не мог понять почему стандартным шлейфиком не соединяется
потом въехал раскладка стандартного щлейфа один к одному а порт на "сетевой плате" сделан как для ATmega16
сотворил свой шлейф
предварительно почитал статью http://www.kit-e.ru/articles/interface/2009_03_53.php
и даташит на ATmega2560
похоже все равно нет связи
контакты "Сетевой платы" заведены так
SCK -> PB1
MISO-> PB2
MOSI-> PB3
RST -> PB4
СS -> PB5

прога взята из примера
в этом примере назначаются только Rst и CS
// mE ehternet NIC pinout
sfr sbit SPI_Ethernet_Rst at PORTB4_bit;
sfr sbit SPI_Ethernet_CS at PORTB5_bit;
sfr sbit SPI_Ethernet_Rst_Direction at DDB4_bit;
sfr sbit SPI_Ethernet_CS_Direction at DDB5_bit;
// end ethernet NIC definitions

пробовал в ногу CS сетевухи сажать на SS Атмеги (PB0)
не помогло

отсутствие связи контроллера с сетевухой конечно не очевидно
но в сети присвоенный IP шник не отвечает

посоветуйте что не правильно

использую MicroC PRO for AVR v4.60

Re: МикроКонтроллер AVR начинающим - общие вопросы

Webspider » 02 ноя 2011, 21:36

Мне нужно успеть оцифровать 2000 значений за секунду. Кодвижен не позволяет создать такой массив, ругаясь что много прошу у RAM. к EEprom бесполезно обращаться ибо, там всего у меги16ой 512байт. Можно ли взять 2кб у Flash? = компилятор ругается когда пытаюсь создать массив : char flash array[2000];
пишет ошибку: the expression must be a modifiable lvalue. Можно ли это обойти?

Настроил контроллер на 250к, работает нормально, хотя в терминале и выставлено 256к.

Разброс значений был из-за того что менял полярность моей тестовой нагрузки (меряю постоянную времени RC-цепочки): последовательно повесил 100кОм и 1мкФ(керамика) и плюсовым выводом цеплялся со стороны емкости, а землей со стороны резистора. Вывод АЦП соответственно между ними. Если наоборот повесить - то присылает практически стабильное количество значений за секунды плюс минус одно. Почему так?
Однако, при смене нагрузки - меняя постоянную времени от 0,1 сек до 0,7сек, количество значений, которые успевают обрабатываться увеличиваются вместе с постоянной времени RC-цепочки. Это из-за АЦП? Он при более пологом фронте успевает оцифровывать быстрее?

Re: МикроКонтроллер AVR начинающим - общие вопросы

ongleb » 02 ноя 2011, 22:19

я возможно не вполне понимаю задачу
но вот проблему с 2000 значений в некоторых случаях можно решить алгоритмически
простейший пример
если требуется собрать массив для последующего расчета среднего арифметического то можно обойтись несколькими байтами (по моему 5-ю) если рассчитывать это среднее на лету, не сохраняя первичных значений

Re: МикроКонтроллер AVR начинающим - общие вопросы

Webspider » 02 ноя 2011, 22:23

Мне нужно оцифровать сигнал. Частота дискретизации = 2Кгц. Куда деть 2000 значений, если только не сразу в Usart?
Навешивать внешнюю память не горю желанием...

Re: МикроКонтроллер AVR начинающим - общие вопросы

ongleb » 02 ноя 2011, 23:09

слей на SD
мне кажется скорости записи должно хватить

Добавлено спустя 29 минут 13 секунд:
и потом
сигнал цифруется наверно не ради просто оцифровки
значения же для чего то предназначены
сразу в Usart тоже выход
если эти значения в конце концов для этого и были предназначены

Re: МикроКонтроллер AVR начинающим - общие вопросы

Flexz » 02 ноя 2011, 23:12

Ну 2000 значений за секунду можно и по UART слить, и даже printf-ом, при такой-то скорости это не много (256кбит это 4мкс на бит, 40мкс байт, 240мкс на 4 цифры + CRLF). Только семлировать всеже лучше по таймеру, либо настроить АЦП на непрерывный режим, забирать значение в прерывании и отсылать в основном цикле.

PS Во флеше можно объявить только констанный массив. Это же флеш..

Re: МикроКонтроллер AVR начинающим - общие вопросы

ongleb » 03 ноя 2011, 15:58

ура!!!
я победил
BIGAVR2 на ATmega2560 зацепилась к Serial ETHERNET BOARD
все супер

Re: МикроКонтроллер AVR начинающим - общие вопросы

Gre4in » 09 ноя 2011, 20:24

Господа, есть вот такой приемник (2х канальный) http://www.tiger.com.tw/product/AQ0453.html ну и соответственно передатчик к нему. это все стоит на машинке радиоуправления. Можно ли это дело прикрутить к МК? И как? Даже не знаю как в поисковике вбить запрос чтоб получить вменяемый ответ :(

Re: МикроКонтроллер AVR начинающим - общие вопросы

Radist » 09 ноя 2011, 20:41

Прикрутить можно проволокой :) . Задача то какая? что хотите получить?

Re: МикроКонтроллер AVR начинающим - общие вопросы

Gre4in » 09 ноя 2011, 20:44

Хочу оцифровать сигналы с ресивера. (Мож там какой хитрый протокол используется) :)

Прикрутить к роботу радиоуправление которое будет проходить через МК а не напрямую к моторам.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Radist » 09 ноя 2011, 21:06

Оцифровать чтобы узнать протокол. Ну могу сразу сказать, что там скорее всего простенькая модуляция, у каждой кнопки своя. Изменить ее нельзя - приемник и передатчик перестанут понимать друг друга. Вытащить сигналы из приемника скорее всего можно - это те сигналы что идут на управление транзисторными мостами. Будет у вас девайс: МК, который знает какую кнопень на пультике вы нажали.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Gre4in » 09 ноя 2011, 21:16

Radist писал(а):Оцифровать чтобы узнать протокол. Ну могу сразу сказать, что там скорее всего простенькая модуляция, у каждой кнопки своя. Изменить ее нельзя - приемник и передатчик перестанут понимать друг друга. Вытащить сигналы из приемника скорее всего можно - это те сигналы что идут на управление транзисторными мостами. Будет у вас девайс: МК, который знает какую кнопень на пультике вы нажали.

Та неее ... :) Этот ресивер управляет двумя сервами, и я хочу вместо серв подключить МК...

Добавлено спустя 4 минуты 18 секунд:
Для подключения серв используется 3 контакта + - и управляющий, замерил мультиметром напряжение на управляющем выходе оно изменяется пропорционально нажатию курка на пульте в пределах от 0,2 в до 0,5 в.

Добавлено спустя 2 минуты 52 секунды:
Вот такой комплект у меня есть просто хочу его к МК подключить.
http://www.tiger.com.tw/product/8217.html

Re: МикроКонтроллер AVR начинающим - общие вопросы

HarryStar » 10 ноя 2011, 08:12

А в чем проблема-то? Серво-сигнал известен - анализируете его и получаете значение отклонения ручки на передатчике. Я так делал для 2 и 8 канальных передатчиков.


Rambler\'s Top100 Mail.ru counter