Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 23.10.2007, 19:29  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию

Сообщение от urry
Из пушки - по воробьям. Вот вариант на 675 пике.
Спасибо Юрий, пока остановлюсь на AVR.

Прикрепленный файл: 1427180.rar
Реклама:
EXIS вне форума  
Непрочитано 24.10.2007, 02:08  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию

Сделал наброски в протеус на атмега16. От контроллера по USART идет информация в терминал, но терминал почему-то ее принимать не хочет. В чем может быть проблема? Вроде терминал настроил правильно 9600 8бит 2стоп. Единственое возможно неправильно указана частота в самого МК TOSC Freqency но я не знаю как ее выбрать поставил ту же что в коде.

Все фаилы прикладываю.

Код:
#include ‹mega16.h›   // файл с описанием "железа"
#define FOSC 1843200 //clock speed
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1
                  
// Инициализация USART
void USART_Init( unsigned int ubrr )
{
/* Установка скорости связи */
UBRRH = (unsigned char)(ubrr››8);
UBRRL = (unsigned char)ubrr;
/* Разрешение работы передатчика и приемника */
UCSRB = (1‹‹4/*RXEN*/)|(1‹‹3/*TXEN*/);
/* Установка формата посылки: 
UCSZ0=3 - 8 бит данных
USBS=1  - 2 стоп-бита */
UCSRC = (1‹‹3/*USBS*/)|(3‹‹1/*UCSZ0*/);
}                 
   
// процедура передачи данных
void USART_Send( unsigned char data )
{
/* Ожидание освобождения буфера передатчика  */
while ( !( UCSRA & (1‹‹5/*UDRE*/)) );
/* Помещение данных в буфер, отправка данных */
UDR = data;
}
void main(void) { 

USART_Init(9600);
USART_Send('H');
USART_Send('e');
USART_Send('l');
USART_Send('l');
USART_Send('o');
USART_Send(' ');
USART_Send('f');
USART_Send('r');
USART_Send('o');
USART_Send('m');
USART_Send(' ');
USART_Send('R');
USART_Send('U');
USART_Send('S');
USART_Send('S');
USART_Send('I');
USART_Send('A');
USART_Send('!');

//PORTB=0xFF; /* Инициализировали PORTB - все выводы ВЫХОДЫ */
//DDRB=0xFF; /* На все выводы PORTB вывели "1" - значит светодиоды погашены */
//#asm("sei") // разрешили прерывания вообще 

while (1); 

}
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/24102007/4521646.jpg" frameborder="0" name="fr2712533" scrolling="yes" width="470" height="360" align="bottom"›[img]nuke/users_images/24102007/4521646.jpg[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›

Прикрепленный файл: 4781100.rar
EXIS вне форума  
Непрочитано 24.10.2007, 09:14  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Здесь все просто. У тебя неправильно сконфигурирован проект. Раз пользуешься кодевижином, запусти мастер, где расставь галочки - использовать уарт, выставь частоту.
Раз используется аппаратный уарт, то должна ведь где-то быть - обработка прерываний, где она ?
А в общем, для начинающих мастер скорее вреден, чем полезен. ИМНО, конечно.
urry вне форума  
Непрочитано 24.10.2007, 11:02  
tnosov
Временная регистрация
 
Регистрация: 19.06.2007
Сообщений: 85
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tnosov на пути к лучшему
По умолчанию

Друзья, может вам подойдет этот законченный проект

www.miliamper.narod.ru
раздел АЦП

УМ-АЦП1 – универсальный многоканальный аналогово-цифровой преобразователь (версия 1).
УМ-АЦП1 может использоваться для:
- мониторинга напряжения на входах;
– контроля крайних значений;
– регистрации показаний;
– управления выходами (нагрузкой).

К устройству можно подключать разнообразные датчики, например, температуры, давления, влажности и пр. Гибкие настройки комплекса могут найти широкое применение в различных сферах – от университетских измерений до автоматизации процессов и технологий "умного дома".

УМ-АЦП1 представляет собой программно-аппаратный комплекс, состоящий из:
– устройства приема и оцифровки аналоговых сигналов (см. схему ниже);
– программы сбора и обработки полученных сигналов (см. интерфейс ниже, скачать программу).

Обмен осуществляется через интерфейс RS-232 (COM-порт). Устройство имеет гальваническую развязку и допускает "горячее" включение и выключение.
Подбор делителей на входе устройства позволяет измерять сигналы в широком диапазоне. Программно можно корректировать смещение сигнала +/- в случае погрешности номиналов сопротивлений делителя.

Например, если делителями задан диапазон 10 В, то точность составляет
10 / 1023 = 0,0097 В или 9,7 мВ.

В программе каждый управляемый выход можно сопоставить с любым входом (каналом) и настроить напряжение срабатывания и отключения по показаниям выбранного канала.
В программе имеется возможность эмулирования входного сигнала, что позволяет оценить сделанные настройки.
Программно можно задать вывод данных в других единицах измерения и других числовых диапазонах, т.е. адаптировать в случае использования конкретных датчиков.
В программе реализована визуальная и звуковая сигнализация, в случае пересечения допустимых границ сигнала.
Графики данных можно сохранять в виде графических файлов. Возможен просмотр и печать данных.
Гибкие настройки программы позволяют установить желаемую скорость регистрации, ширину измеряемого диапазона.
Люди с ограниченными возможностями зрения могут настроить цветовую палитру программы под себя.
Программа автоматически сохраняет сделанные настройки.

Устройство собрано на PIC16F876A. Скорость обмена по RS-232 – 9600.

-- Прилагается рисунок: --

tnosov вне форума  
Непрочитано 24.10.2007, 13:03  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Автору ветки не интересны готовые решения - кстати, если Вы заметили я и sanitar249 их предложили - аттракцион невиданной щедрости. Обычно я так не делаю, назначение форума не в том, чтобы делать за людей их работу - а только в том, чтобы подтолкнуть их в нужном направлении.
Но просто была плохая погода, начальство с глупостями пристает.. Взял и сделал - что же там делать -то ?
urry вне форума  
Непрочитано 24.10.2007, 21:11  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию

Уважаемый tnosov у вас замечательный и подробный проект. Но я все-таки постараюсь доделать свой на AVR, ну а если не получится повторю ваш. Ну а кроме того мне интерестно, на чем вы писали компьютерную программу для считывания данных с ком порта и с применением каких библиотек?


Сообщение от urry
Автору ветки не интересны готовые решения - кстати, если Вы заметили я и sanitar249 их предложили - аттракцион невиданной щедрости. Обычно я так не делаю, назначение форума не в том, чтобы делать за людей их работу - а только в том, чтобы подтолкнуть их в нужном направлении.
Но просто была плохая погода, начальство с глупостями пристает.. Взял и сделал - что же там делать -то ?
В действительности в самом начале мне были интересны уже готовые проекты, но стоило чуть поглубже вникнуть в архитектуру МК, как я решил делать проект с нуля. А вам и sanitar249 большоее человеческое спасибо за предложенные схемы.
EXIS вне форума  
Непрочитано 24.10.2007, 22:10  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию

Сообщение от urry
Здесь все просто. У тебя неправильно сконфигурирован проект. А в общем, для начинающих мастер скорее вреден, чем полезен. ИМНО, конечно.
Вообще мастер интерестная штука но, особенно мне понравилось, что он автоматический вычисляет коэфициент ошибок для USART. Но вообще ответ решения свой задачи я нашел на www.avr123.nm.ru

Проблема была в инициализации, вот исправный код.

Код:
               
// Инициализация USART
void USART_Init()
{
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;

// USART Baud rate: 9600 для 4 MHz 
UBRRH=0x00;
UBRRL=0x19;
}
EXIS вне форума  
Непрочитано 25.10.2007, 10:19  
tnosov
Временная регистрация
 
Регистрация: 19.06.2007
Сообщений: 85
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tnosov на пути к лучшему
По умолчанию

На начальном этапе тестирования обмена между устройством на МК и ПК достаточно воспользоваться любой терминальной программой.

Для собственных приложений (у меня на Delphi) использовал компонент bcomport. Отзывы о компоненте самые лучшие. Более простой и понятной вещи не встречал.
http://www.yandex.ru/yandsearch?text=bcomport&rpt=rad

Вместе с компонентом встречаются примеры, в т.ч. и исходники простейшей терминальной программы.
tnosov вне форума  
Непрочитано 26.10.2007, 02:34  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию

Спецы по AVR требуется помощь написал простую програмку которя посылает в ком порт напряжение с ADC0. Тестирую в Proteus, но почему-то АЦП не работает на ком порт идут только нули, а должно быть значение напряжения, прерывания не использую, может я както неправильно замеряю напряжение?

Код:
#include ‹MEGA8535.H›   // файл с описанием "железа"
#include ‹delay.h› 
   
// процедура передачи данных
void USART_Send( unsigned char data )
{
while ( !(UCSRA & (1‹‹5)) ); /* ждем очистки регистра 
данных USART - т.е. окончания передачи предыдущего 
байта (символа) */
UDR = data; /* поместить число соответствующее символу 5 в регистр данных USART - он называется UDR - это стартует передачу символа на ножке TxD. и в принимающем терминале появится символ  5  */
}

char data=0;
int i;

void main(void) { 

// Инициализация USART    
UCSRA=0x00;
UCSRB=0x18;  // 11000 разрешение работы передатчика и приемника
UCSRC=0x86;  // 10000110 формат данных 8 бит. бит 7 при записи должен быть всегда 1

// USART частота в бодах: 9600 для 4 MHz 
UBRRH=0x00;
UBRRL=0x19;  // Из таблицы DataSheet Fosc=4.0000Mhz U2X=0
             // Для 9600 baud rate UBRR=25 или 0x19 в Hex. Error 0.2%
      
USART_Send('R');
USART_Send('e');
USART_Send('a');
USART_Send('d');
USART_Send('y');

// Ждем когда придет команда
//while(!(UCSRA&(1‹‹7)));   
// Записываем команду в переменную command
//data=UDR;   
     
// ADC initialization
ADMUX=0x00;  // 00- на вывод AREF подкл внешний источник опорного напряжения
             // хххх11- Внутренний источник опорного напряжения 2.56В с внешним конденсатором на выводе AREF
             //  0-результат правостороний 000-снятие с контакта ADC0
ADCSRA=0x8D; // 10001101 1ХХХ-включение АЦП 1-с прерываниями  
             // 101-коэф деления 4Мгц/32=125 КГц норма 50..200Кгц укладываемся.
//SFIOR&=0x00; // 000X- режим свободного запуска  
        
while(1){
ADCSRA|=0x40;// запустили измерение    
          
// Вывод результата на ком порт
for(i=0;i‹8;i++){
        if((ADCH & (1‹‹i)) ›› i == 0){
                USART_Send('0');
        } else {
                USART_Send('1');
        } 
}    
for(i=0;i‹8;i++){
        if((ADCL & (1‹‹i)) ›› i == 0){
                USART_Send('0');
        } else {
                USART_Send('1');
        } 
}  
USART_Send(0x0a);  
USART_Send(0x0d);  
ADCSRA|=0x40; 
}

}
Полный исходник proteus+codevision.

Прикрепленный файл: 5820248.rar
EXIS вне форума  
Непрочитано 26.10.2007, 10:30  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Чуток скорректировал

Прикрепленный файл: 5583316.rar
urry вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR Butterfly evaluation kit - передача данных по СОМ порту ramilkazus Микроконтроллеры, АЦП, память и т.д 5 27.06.2009 23:15
Подключение 2х устройств к одному Ethernet порту Beduin Делимся опытом 16 19.03.2008 09:55
Связь с датчиком по COM порту proxorov Микроконтроллеры, АЦП, память и т.д 5 06.04.2007 22:46
Как создать подключаемый файл из блока данных? zelanez Микроконтроллеры, АЦП, память и т.д 26 05.07.2006 05:15


Часовой пояс GMT +4, время: 19:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot