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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

demiurg301 писал(а):Народ посоветуйте AVRку c 3мя UARTами :)) Мож есть какая?

А не проще было заглянуть на сайт atmel.com?
ATmega640/1280/2560
Аватара пользователя
TRIOD
Вымогатель припоя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

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

Сообщение TRIOD »

А какие мелкосхемы флэш пямяти с интерфейсрм I2C есть акромя 24CXXX.
Только абсолютная пустота бездны принесёт мне покой.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Сообщение МитяРа »

TRIOD писал(а):акромя 24CXXX.
24-я серия это и есть с шиной I2C..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
TRIOD
Вымогатель припоя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

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

Сообщение TRIOD »

Я имею ввиду маркировка других производителей.
Только абсолютная пустота бездны принесёт мне покой.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Сообщение МитяРа »

TRIOD писал(а):маркировка других производителей.
Маркировка та-же, только перед 24 буквы другие..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

BerZerK-ku писал(а):
demiurg301 писал(а):Народ посоветуйте AVRку c 3мя UARTами :)) Мож есть какая?

А не проще было заглянуть на сайт atmel.com? ATmega640/1280/2560

Плюс почти каждая Xmega:
http://www.efo.ru/components/atmel/tables/avr.htm
TRIOD писал(а):Да купилбы 5-ти вольтовую да нетути.

Бред какой-то. Не верю что в Нерезиновске нет 5-ти вольтовой памяти.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
RadTechNo
Родился
Сообщения: 7
Зарегистрирован: Ср ноя 30, 2011 20:26:02

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

Сообщение RadTechNo »

Ребят! Изучаю сейчас PIC МК и никак не пойму следующее:
1)Почему частота тактирования в 4 раза меньше частоты генератора? Препод объяснял, что мол за первый такт идет чтение первой команды, потом одновременно идет выполнение первой команды и чтение второй команды, а потом выполнение второй команды.
Вот так ведь чтение и выполнение одной команды выполняется за 2 такта =>и делить нужно на два!
2)Чем отличаются регистры TRIS, LAT и PORT?
Если я правильно понял мануал, то TRIS - позволяет програмно установить, будет ли работать порт на вход или на выход.
PORT позволяет установить вход/выход, но уже физически, т.е надо смотреть какой сигнал в данный момент на ножке МК.
С LAT'Ом не понял...сказано, что выполняет функцию "защелки"...что это значит?
Chettuser

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

Сообщение Chettuser »

2) TRIS - установка направления порта: ВХОД-ВЫХОД.
LAT - защёлка для выставления "1" или "0" на выход.
PORT - чтение порта "1" или "0"

2-е последние были специально предусмотрены с целью минимизации ошибок при работе с портами, чтобы не было модификации его состояния.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25168
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

1. Для выполнения отдельной команды в МК необходимо проделать НЕСКОЛЬКО ПОСЛЕДОВАТЕЛЬНЫХ действий:
- чтение и дешифрация команды из программной памяти
- чтение операндов из ОЗУ
- исполнение команды в АЛУ
- запись результата в ОЗУ
Для команд с переходами еще кроме всего необходимо записать в счетчик команд адрес перехода.
Чтобы сделать все это ПОСЛЕДОВАТЕЛЬНО, необходимо ТАКТИРОВАНИЕ. И это тактирование должно быть более быстрым, чем машинный цикл.
В разных архитектурах тактирование внутри команды делают по разному. В ПИКах для этого применяют сам осциллятор МК, а машинные циклы образуются путем деления этой частоты на 4 (или на 2 в 16-разрядных ПИКах). Цифра четыре происходит от количества необходимых для исполнения одной команды тактов (речь тут о командах в один машинный цикл).
Для повышения тактовой частоты МК применять высокочастные кварцы не слишком удобно, поэтому в МК может присутствовать умножение частоты кварца для повышения частоты тактирования (коэффициент умножения может быть разный, даже дробный). Либо применение внутреннего генератора для тактирования внутри команды. Все это не так уж важно...
Все равно все сводится к производительности МК выраженной в мипсах (MIPS - million instructions per second - миллионах инструкций в секунду). А какой для этого нужен кварц - не имеет никакого значения.
2. Защелка LAT.
В простейшем варианте этой защелки нет. На выходе имеется обычный триггер с выходом, подключенным прямо к пину контроллера. В этот триггер записываются выходные состояния этого пина (разряда порта). К этому же пину ПОСТОЯННО подключена ВХОДНАЯ логика этого разряда порта.
В архитектуре Мк и вообще вычислительных машин не предусмотрена адресация ОТДЕЛЬНОГО разряда регистра или порта. Дешифраторы адреса построены только по байтному формату. Соответственно и адрес в команде адресует минимум 1 байт. Для выполнения БИТНЫХ команд приходится сначала прочитать весь байт, а затем проделать операцию над ОТДЕЛЬНЫМ битом. Результат будет записан опять в виде ЦЕЛОГО БАЙТА. Т.е. на самом деле в битных командах происходит действие над ПОЛНЫМ БАЙТОМ.
В этих условиях при команде изменения отдельного бита порта будет прочтен выход триггеров порта, а как уже ранее писалось, это одновременно и вход. И если на НЕИЗМЕНЯЕМЫХ в данной команде разрядах по каким то аппаратным причинам на пине окажется отличный от состояния триггера уровень, то он будет перепесан в этот триггер после этой команды. Модифицируемый разряд окажется верным, а этот, у которого вход отличался от состояния выходного триггера окажется записанным несанкционировано (неверно).
Эта процедура называется RMW (read-modification-write) чтение-модификация-запись.
Чтобы избежать такого бага применяют как программные способы с потерей производительности, так и аппаратные. Аппаратным способом и является создание специальной защелки LAT, выход которой НЕ ПОДКЛЮЧЕН к выходному пину и при командах модификации состояние порта читается НЕ С ВЫХОДНЫХ ПИНОВ, А С ЭТОЙ ЗАЩЕЛКИ.
Таким образом есть ДВА регистра у каждого порта в контроллере: PORT - входной регистр(запись в него на самом деле производит запись в LAT), LAT - выходной регистр. TRIS - отключает выходной буфер выходного регистра порта, чтобы не влиять на входные линии этого же порта и сделать этот разряд ТОЛЬКО ВХОДОМ.
igorka
Грызет канифоль
Сообщения: 260
Зарегистрирован: Вс ноя 13, 2011 11:21:23
Откуда: Горловка.

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

Сообщение igorka »

Ребят,привет.Выложите пожалуста печатку STK200 которая помещается в LPT вилки(можно под SMD,без разницы).Спасибо.
vbif87
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

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

Сообщение vbif87 »

Добрый вечер! Подключил датчик DS18B20, индикатор пишет "датчик ds18b20 отсутствует".
Датчик подключен к порту PC0. Vdd и DQ через резистор 5,6к.
Где искать косяк? Датчик новый. МК Mega8535, внутр. частота 1 Мгц, внешних кварцев не вешал, фьюзы не трогал.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Сообщение МитяРа »

vbif87 писал(а):Vdd и DQ через резистор 5,6к.
Ты и питание через резистор подключил?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
vbif87
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

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

Сообщение vbif87 »

Питание подаю то же, что и на микроконтроллер, резистр только между + и DQ
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Сообщение МитяРа »

Вывод GND, тоже подключил?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
vbif87
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

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

Сообщение vbif87 »

подключил так: + к + питания, GND к общему, DQ к порту PC0.
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Сообщение МитяРа »

А обмен на РС0 идёт, хоть какой нить?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
vbif87
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

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

Сообщение vbif87 »

если можно выложить код, выложу.
vbif87
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

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

Сообщение vbif87 »

а как проверить обмен?
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

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

Сообщение МитяРа »

vbif87 писал(а):а как проверить обмен?
Осциллографом или тестером, да хоть светодиодом с резистором..
Если яркость будет меняться - обмен какой-то идёт..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
vbif87
Открыл глаза
Сообщения: 67
Зарегистрирован: Пн мар 03, 2008 22:12:47

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

Сообщение vbif87 »

спасибо, попозже проверю.
а в коде ошибки нет, может намутил с портами:
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x12; PORTD
#endasm
#include <ds18b20.h>
#asm
.equ __w1_port=0x15; PORTC
.equ __w1_bit=0
#endasm

int temper; //Переменая для хранения значения температуры
unsigned char lcdBuff[16]; //Массив для хранения фоматированной строки

#pragma rl+
char *str1="найден датчик ds18b20";
char *str2="датчик ds18b20 отсутствует";
#pragma rl-

void main( void )
{
lcd_init( 16 );
lcd_clear( );

if( ds18b20_init( 0, 30, 60, DS18B20_12BIT_RES ) ) //инициализация датчика. Анализ присутствия датчика
{
lcd_clear( ); lcd_puts( str1 ); delay_ms( 1000 );

while( 1 ){

temper=ds18b20_temperature( 0 ); //Чтение температуры, адрес нуль
delay_ms( 30 );


//Анализ на отрицательную температуру

if( temper>1000 ) { temper=4096-temper; temper=-temper; } //если переменая temper больше 1000
//То вычитаем от 4096 значение
//переменой temper и далее
//присваиваем ей знак минус

if( temper>60 ) { /* какая-либо функция, например alarm ( ); */ } //Аварийное состояние считанной температуры
sprintf( lcdBuff,"t %u\xdfC", temper ); //помещаем форматированую строку в массив

//выводим на индикатор значение температуры
lcd_clear( ); lcd_gotoxy( 0,0 ); lcd_puts( lcdBuff ); }

}else{ lcd_clear( ); lcd_puts( str2 ); }
}
Ответить

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