Страница 314 из 628

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

Добавлено: Пт май 04, 2012 14:45:34
ut1wpr
demiurg301 писал(а):Да, действительно слишком быстро опрашивал каналы.
Запустил смену и измерение канала раз в 10 мс ( по таймеру) и всё заработало :)
Что-то в этой жизни не так! :)
А если по условию надо быренько аналог оцифровать, тот же самый голос, к примеру?... Я оцифровывал на периоде 52 мксек (19 КГц), без проблем...
Правда, без переключения каналов.

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

Добавлено: Пт май 04, 2012 14:48:07
Gudd-Head
ut1wpr писал(а):Правда, без переключения каналов.
Значит, иногда лучше жевать...

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

Добавлено: Вс май 06, 2012 23:48:59
vitalik_1984
Engineer_Keen писал(а):То что вы написали больше похоже на последовательность для шагового двигателя у которого 4 обмотки. У вас 3. Вот и подавать надо на 3 ноги - 100-010-001 или 011-101-110.
Ну да, а можно вот так :100-110-010-011-001-101 :)

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

Добавлено: Ср май 09, 2012 14:27:39
alexey6522
Подскажите, плизззз! Соеденил значит 4 сдвиговых регистра 74HC595 и подключил по 3 проводкам к МК, в протеусе видно как выставлены все биты на выводах каждого регистра и все работает нормально, собрал схему но микропрограмма отказывается работать как в протеусе, померял тестером лог. уровни на каждом выводе, каждого регистра и они не соответствуют как показано в протеусе. Почему и как это исправить? Такое ощущение что биты перемешиваются при передаче из МК в регистр.

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

Добавлено: Ср май 09, 2012 14:53:39
vitalik_1984
Притягивайте все входы соответственно логике обычно нужно к плюсу притягивать.В протеусе многие ошибки прощаются в том числе неподключенные ножки питания или кварца !!!

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

Добавлено: Ср май 09, 2012 15:14:59
alexey6522
естественно я подключил согласно даташиту на регистр, пробую с двумя регистрами все работает нормально, но увеличиваю кол-во до 4-х и все тут

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

Добавлено: Ср май 09, 2012 16:11:36
vitalik_1984
Ну тут уже медиумов вызывать нужно.
код то меняете, после добавления?

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

Добавлено: Ср май 09, 2012 16:26:06
alexey6522
да, длинна проводников может влиять?
Пользуюсь программатором USBAsp, с помощью него можно как-то заглянуть что происходит в МК?

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

Добавлено: Ср май 09, 2012 16:34:37
vitalik_1984
Может влиять, но эффект будет нестабильным(всегда разный результат).
С помощью usbasp насколько я знаю можно только запрограммировать через ISP разъём.
Ну если вы конечно не гений и не вставите в контроллер программу, позволяющую общаться через него.
Какой контроллер то хоть?

И правильно писать длина!!!

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

Добавлено: Ср май 09, 2012 17:00:19
alexey6522
Atmega128, про результат, при каждом включении он действительно меняется

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

Добавлено: Ср май 09, 2012 17:01:20
alexey6522
я слышал что с помощью внутрисхемного программатора можно отлаживать МК

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

Добавлено: Ср май 09, 2012 17:11:57
vitalik_1984
Ну это если j- tag или d-wire поддерживает, а этим вряд ли.
Можно установить метки в виде отправки данных через uart.Или приобрести j- tag адаптер
Ваш контроллер поддерживает этот протокол.
Дальнейший разговор без схемы, программы не имеет смысла

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

Добавлено: Ср май 09, 2012 19:58:24
alexey6522
регистры не хотят работать стабильно более 1 шт., две 74hc595 еще можно заставить работать, а вот 3 и более уже не получается. Почему не знаю, уже всяко пробовал

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

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <util/delay.h>
#include <stdio.h>
#define F_CPU 8000000UL 

void fnOutByte(unsigned int cByte) //вывод байта на регистр
{
unsigned char mask =0x80; //не менять!!!!
   do {
     if(mask & cByte)
     {
	   PORTC&=~_BV(PC2);  
     }
      else
      {	  
	 PORTC|=_BV(PC2);
      }    
	  PORTC|=_BV(PC0); //Импульс на SH_CP (запись)
      PORTC&=~_BV(PC0);
      mask>>=1;
    }
while(mask);
}

void ShowDigit(void)
{
fnOutByte(0x00); //U15	
fnOutByte(0x00); //U14
fnOutByte(0xFE); //U13
	PORTC|=_BV(PC1); //Импульс на ST_CP (защелка - вывод на индикатор записанных данных)
    PORTC&=~_BV(PC1);   
}

//Основное тело программы
int main(void)
{
//настраиваем порты ввода-вывода
  PORTC=0x00;//Первоначально устанавливаем на всех выходах 0        
  DDRC=0xff; //установить PC0-PC7 как выходы
while(1)//Бесконечный цикл
{
//Вывод на индикаторы
 ShowDigit();
}
}

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

Добавлено: Чт май 10, 2012 04:18:19
alexey6522
Может моя ошибка в том, что я решил с экономить на кол-во выводах МК? Я решил реализовать динамическую индикацию, подключив аноды и катоды к регистрам, например: один регистр будет отвечать за сегменты ABCDEFG, а все остальные регистры за разряды, так как мой индикатор имеет общий катод, это будет выглядеть примерно так:
попытаемся сформировать цифру 7
1рег. = 00000111 зажжём сегменты ABC, на остальные подадим лог. 0
2рег. = 11111110 зажжём 1 разряд, тут мы наоборот подаем лог. 0, типа минус
3рег. = 11111111 и так далее
может я ошибся в том что пытаюсь использовать лог. 0 как минус, может надо было использовать ключевые транзисторы?

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

Добавлено: Чт май 10, 2012 04:31:33
vitalik_1984
1.пробуйте тут поставить паузу между командами.регистры могут быть не такими быстрыми как ваш Мк.

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

PORTC|=_BV(PC1); //Импульс на ST_CP (защелка - вывод на индикатор записанных данных)
    PORTC&=~_BV(PC1); 
на одном работает,а когда добавляете остальные емкость каналов увеличивается.и не успевает просто напряжение подняться настолько чтобы регистр защелкнулся.

2.не вижу в вашей схеме резисторов на входе.в этом регистре вроде на минус должны быть.на пару килоом.

3.все правильно вы подумали,что лог ноль это минус для кмоп логики это работает.ваша Мк как раз такая и к тому же совместима с низковольтной шоттки ТТЛ логикой.

4.зачем вам больше двух регистров?целых восемь семисегментных индикаторов можно подключить к двум регистрам.

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

Добавлено: Чт май 10, 2012 05:16:40
alexey6522
Мне нужно подключить 21 индикатор, вот и получается 4 регистра, а для чего на DS (это DATA вход) ставить резистор?

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

Добавлено: Чт май 10, 2012 06:09:17
vitalik_1984
чтобы не было неопределенного уровня.допустим при включении питания.и чтобы какие нибудь легкие наводки не портили вам жизнь.

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

Добавлено: Чт май 10, 2012 14:03:42
player259
МК ATtiny2313 (во всяком случае так написано).
Сигнатура 1Е 91 01 (что соответствует AT90S2313), должна быть 1E 91 0A.
Несмотря на это чип прошивается.
Фьюзы не читаются, но зато пишутся (во всяком случае кварц запущен, таймер отмеряет точное время, собираю часы).
Вторая проблема PCINT. Подтянул резистором 10k PORTB.4 и замыкаю на землю, когда хочу прерывание.
Пример кода ниже, прерывание не срабатывает ни разу. Сгенерил в CVAVR. ***
походу брак.. скорее всего это и есть AT90S2313, поэтому PCINT и не работает. К тому же должна была быть низковольтная версия, от 3В не запускается. Уныло :(

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

Добавлено: Чт май 10, 2012 14:50:52
Engineer_Keen
Маркировка лазерная? Может действительно подделка, раз сигнатура от AT90... А протоколы у всех авр-ок одинаковые, поэтому и прошивается.

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

Добавлено: Чт май 10, 2012 16:03:45
player259
Engineer_Keen писал(а):Маркировка лазерная? Может действительно подделка, раз сигнатура от AT90... А протоколы у всех авр-ок одинаковые, поэтому и прошивается.
Маркировка лазерная.
Забавно... В AT90S2313 для тактирования от кварца, как я понял, нужно лишь припаять его к выводам. В ATtiny2313 - прошить фьюзы.
Собираю проект в CVAVR под AT90S2313 - кварц не работает. Проект под ATtiny2313 - все в порядке кроме нечитающихся фьюзов и PCINT. Хз, мистика.