реклама на сайте
подробности

 
 
> Программные задержки, для 1-Ware
GIGAWAT
сообщение Feb 11 2007, 02:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 9-02-07
Из: Санкт-Петербург
Пользователь №: 25 221



Здраствуйте.
Есть вопрос по программным задержкам.
Для начала, опишу то с чем я работаю.
Микроконтроллер mega169V в составе демонстрационной платы AVR Butterfly.
Программно обеспечение взято с сайта SmileyMicros.com и представляет из себя ,оптимизированные под WinAVR(GCC) исходники для IAR, с офф сайта Atmel.
Все это хозяйство я сопрягаю с датчиками DS1920 1-Ware.
Сответственно были взяты исходники для апноута AVR318 под IAR и оптимизированы под WinAvr.
До этого я программировал микроконтроллеры HOLTEK, но т.к. средства отладки у них дорогие, то за пределы симулятора я так и не вышел (софт писал на асме).

Естественно первым делом я стал проверять мременные задержки.
Написал кусочек кода для формирования импульсов определенной длительности, и проверял на осцилографе, снимая сигнал с одной из ножек порта.
===============================================
#include "dallasbus.h"
#include <avr/io.h>
#include "main.h"
#include <util/delay.h>
#include "LCD_functions.h"
// 1-Ware function main
#define F_CPU 1000000UL

char dallasfunction (char input)
{
static char enter = 1;

if (enter)
{
enter = 0;
cbi(LCDCRA, 7);
DDRD=0xff; //Set port D to output port
//===========================
while (1)
{
PORTD=0xFF;
_delay_us(5);
PORTD=0x00;
_delay_us(10);
}
//============================
}
else if (input == KEY_MINUS)
{
enter = 1; // Set enter to 1 before leaving the TemperatureFunc
return ST_1ware;
}
else
return ST_1ware_FUNC;
}
===================================================
Это лиш один из программных модулей, здесь главное это бесконечный цикл while().
Как видно из изходника я использовал функцию _delay_us();
Изначально я использовал частоту 8 Мгц.
Импульсы получились не такими как я предполагал. Длительность и период были в разы больше чем я указывал.
Я начал УМЕНЬШАТЬ частоту и только на !! 1Мгц достиг примерно нужного значения .
Суть в том, что это ИМХО полный абсурд blink.gif. Ибо я считал что временные интервалы с уменьшением частоты должны УВЕЛИЧИВАТЬСЯ, а не УМЕНЬШАТЬСЯ.
Что скажете товарищи ?
Как же определить зависимость задержек от частоты? Жду ваших комментариев. Заранее спасибо smile.gif
P.S. Принимаю любую обоснованную критику в свой адрес т.к. еще новичек в этом деле.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GIGAWAT
сообщение Feb 11 2007, 16:30
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 9-02-07
Из: Санкт-Петербург
Пользователь №: 25 221



Благодарю за ответ wink.gif
И еще пару вопросов ,дабы не создавать новый топик.
1) Если в плате у меня стоит батарейка на 3.3В, а в даташите на МК указано что он держит питание до 5В, могу ли я подать внешнее питание 5В ?
Это собственно нужно для питания DS1920 у которой нормальное преобразование проходит тока при 4.3В и токе 1мА.
2) Что вы думаете по поводу вот такого девайса:JTAG USB
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 11 2007, 16:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(GIGAWAT @ Feb 11 2007, 20:30) *
1) Если в плате у меня стоит батарейка на 3.3В, а в даташите на МК указано что он держит питание до 5В, могу ли я подать внешнее питание 5В?
Это собственно нужно для питания DS1920 у которой нормальное преобразование проходит тока при 4.3В и токе 1мА.
В принципе можно. Но, во первых, если Вы собираетесь питать схему и от батарейки и от внешнего источника напряжения, думаю, полезно будет развязать оба источника диодами Шоттки (у этих диодов малое падение напряжения - (порядка 0,1 вольт) по сравнению с обычными выпрямительными - 0,6 - 0,7 вольт). Анодами к источникам, катодами вместе на шину питания девайса. Во вторых, надо проверить схему на предмет повышения напряжения. Возможно, если схема не рассчитанна на такое напряжение питания, каким то компонентам не понравится добавка smile.gif

Цитата(GIGAWAT @ Feb 11 2007, 20:30) *
2) Что вы думаете по поводу вот такого девайса:JTAG USB
Возможно, если Вы им умеете пользоваться, сэкономит Ваше время при отладке ПО МК smile.gif



Цитата(rx3apf @ Feb 11 2007, 20:48) *
Цитата(prottoss @ Feb 11 2007, 15:59) *

ИМХО тактовую частоту МК в Вашем случае на прямую не померить. НО, возможно запрограммировать какой нибудь счетчик МК на выход и померить частоту импульсов на выходе счетчика.

Ну почему же ? Есть фьюз CKOUT, как раз для этих целей. А вообще да, первое, с чего стоит начинать, это именно с аппаратного контроля тактовой частоты. Хоть через CKO, хоть сделать программный цикл дергания ногой, причем с точно известной растактовкой.
Какой такой CKOUT??? У парня нетути программатора smile.gif У него бутлоадер, а через него, на сколько я знаю, фьюзы не запрограммировать...


--------------------
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 11 2007, 17:20
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(prottoss @ Feb 11 2007, 16:58) *
Какой такой CKOUT??? У парня нетути программатора smile.gif У него бутлоадер, а через него, на сколько я знаю, фьюзы не запрограммировать...

Так надо сделать ! wink.gif Не, ну какая жизнь без программатора ? Понадобится внешний высочастотный кварц - и как ? ByteBlaster уж как минимум надо.

Да, кстати, о развязках - у диодов с переходом Шоттки вовсе не 0.1V, а в лучшем случае, при микротоках, этак 200 с лишним mV. При единицах mA - уже 300-400 mV. Так что если нужно минимальное падение на развязке - прямой путь к p-канальным полевикам (какой-нибудь IRFML5203). Дороже и сложнее, но иногда без этого никак...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GIGAWAT   Программные задержки   Feb 11 2007, 02:27
- - prottoss   Цитата(GIGAWAT @ Feb 11 2007, 06:27) #def...   Feb 11 2007, 03:48
|- - GIGAWAT   Цитата(prottoss @ Feb 11 2007, 03:48) Цит...   Feb 11 2007, 12:35
- - prottoss   А фьюзы в МК на внешний кварц поправили?   Feb 11 2007, 12:46
|- - GIGAWAT   Цитата(prottoss @ Feb 11 2007, 12:46) А ф...   Feb 11 2007, 13:41
|- - prottoss   Цитата(GIGAWAT @ Feb 11 2007, 17:41) Цита...   Feb 11 2007, 14:20
- - GIGAWAT   Видимо мне не удастся запрограмировать фьюзы через...   Feb 11 2007, 15:42
|- - prottoss   Цитата(GIGAWAT @ Feb 11 2007, 19:42) Види...   Feb 11 2007, 15:59
|- - rx3apf   Цитата(prottoss @ Feb 11 2007, 15:59) Да,...   Feb 11 2007, 16:48
- - GIGAWAT   Вот я и думаю прикупить себе JTAG чтоб и программа...   Feb 11 2007, 17:23
|- - rx3apf   Цитата(GIGAWAT @ Feb 11 2007, 17:23) Вот ...   Feb 11 2007, 19:10
- - GIGAWAT   Ну если Byteblaster от Altera подойдет, то он у ме...   Feb 11 2007, 22:06
|- - rx3apf   Цитата(GIGAWAT @ Feb 11 2007, 22:06) Ну е...   Feb 11 2007, 22:12
|- - GIGAWAT   ЦитатаТак это если устройство живет само по себе, ...   Feb 11 2007, 22:31
- - konny   Поскольку используешь #include <util/delay.h...   Feb 12 2007, 10:17


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016