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

 
 
4 страниц V  « < 2 3 4  
Closed TopicStart new topic
> Выбор микроконтроллера
rezident
сообщение Jan 12 2009, 20:31
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Kannikkiy @ Jan 13 2009, 00:57) *
И с какой скоростью - измерения Щ300 или со скоростью передачи данных на МК?
Естественно со скоростью обновления результатов измерения прибором. Если только вы не задумаете использовать внешний запуск преобразования.
Цитата(Kannikkiy @ Jan 13 2009, 00:57) *
Какой интерфейс посоветуете - USB или RS-232?
Интерфейс чего именно?
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jan 12 2009, 21:49
Сообщение #47


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Kannikkiy @ Jan 12 2009, 22:57) *
А вы пробовали такую схему собирать? Будет ли она работать? И с какой скоростью - измерения Щ300 или со скоростью передачи данных на МК? Какой интерфейс посоветуете - USB или RS-232?
Такую точно -нет, но лет 10 назад подключал их к компьютеру через некую плату параллельного ввода - тоже через мультиплексоры. Все работало.
Для простоты вполне достаточно RS на скорости 9600

Цитата(vvvv @ Jan 12 2009, 18:38) *
Щ300 нашей компанией не поставляется, так как прибор снят с производства еще до 1993 года.
Предлагаю Вам аналог со склада - вольтметр универсальный В7-78/1 по цене 29'500р. Краткие ТТД здесь: http://www.prist.ru/produce.php/card/meas.htm?id=538606077
Я давно подозревал, что Прист "гнилая" фирма. Раз не поставляется, зачем держать в прайсе с ремаркой "выпуск до 93 года складского хранения"? Если это сделано для "завлечения" клиентов с последующим "разводом" на продукцию, дилером которой они являются (АКИП - это их торговая марка, под которой они продают как правило китайские приборы)- то это очень плохой прием
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Jan 13 2009, 11:21
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Если можно, скажите, к каким пинам в разъёме на Щ300 подключить? Где пины данных, синхронизатор и т.п.? В документации к прибору этого нет.
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jan 13 2009, 17:58
Сообщение #49


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Kannikkiy @ Jan 13 2009, 14:21) *
Если можно, скажите, к каким пинам в разъёме на Щ300 подключить? Где пины данных, синхронизатор и т.п.? В документации к прибору этого нет.
Эти данные есть во втором альбоме схем на первой странице. Человеческого описания нет. Но разобраться можно. В ручную надо составлять таблицу кодов пределов измерений. Строб чтения данных - контакт А3 разъема Х13.
Прикрепленные файлы
Прикрепленный файл  cha300_conn.pdf ( 48.79 килобайт ) Кол-во скачиваний: 74
 
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Jan 13 2009, 20:07
Сообщение #50


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Цитата
Эти данные есть во втором альбоме схем на первой странице
Спасибо! smile.gif У нас есть оба альбома...

Цитата
В ручную надо составлять таблицу кодов пределов измерений. Строб чтения данных - контакт А3 разъема Х13.


А вот это действительно полезная информация... потому что и в правду
Цитата
Человеческого описания нет
Пробовал искать описание коммутации Щ300 с ЭВМ в интернете, но все глухо. Как будто никто никогда его к компу не подключал... Хотя при таком массовом выпуске это маловероятно...

Если можете, раз вы пробовали это делать, скажите, пожалуйста, как же все-таки коммутировать этот цифровой интерфейс?
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jan 13 2009, 22:39
Сообщение #51


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Kannikkiy @ Jan 13 2009, 23:07) *
Если можете, раз вы пробовали это делать, скажите, пожалуйста, как же все-таки коммутировать этот цифровой интерфейс?
Что-то вроде этого. За 100% не ручаюсь, так как надергано из старого файла и уверенности, что он был окончательный нет
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
PaulB
сообщение Jan 16 2009, 15:51
Сообщение #52


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 20-08-06
Пользователь №: 19 681



а прошивки для МК нет?


--------------------
Мой канал: CybernetSystems
Go to the top of the page
 
+Quote Post
vvs157
сообщение Apr 14 2009, 08:02
Сообщение #53


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(PaulB @ Jan 16 2009, 18:51) *
а прошивки для МК нет?
Неотлаженная и непроверянная на железе
Добавлено: Нашел опечатки
Прикрепленные файлы
Прикрепленный файл  ch300.zip ( 1.25 килобайт ) Кол-во скачиваний: 30
 
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Feb 24 2010, 20:01
Сообщение #54


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Доброго времени суток!

Всем кто еще не потерял интерес к этому вопросу! smile.gif

Итак, прошло уже больше года. Мы за это время изучили микроконтроллеры, попутно собрав много полезных устройств smile.gif. И вот только вчера мы смогли одолеть наконец этот Щ300. наличие некоторых неточностей в схеме, предложенной vvs157 вызвали некоторые затруднения, которые мы, наконец преодолели. Была написана прошивка на си, разработана печатная плата и уже прошли первые успешные испытания. Сейчас мы проведем некоторые последние штрихи, после чего выложим все материалы в эту тему. Так что это реальность 5 знаков за 200 р smile.gif
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Feb 25 2010, 19:08
Сообщение #55


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Доброго времени суток!

Как и было обещано выкладываю поправленную схему, прошивку и фотографии готовой платы.

Но сначала немного о том, как это работает. Щ300 работает, как многие другие советские приборы на интерфейсе 1-2-4-8. Среди данных, которые он передает 5 значащих цифр (причем первая из них может быть только 0 или 1), знак, положение запятой (таких положений всего 3) и тип измеряемой величины (для Щ300 опытным путем определено наличие трех типов - А, Ом и мВ, В). Цифры считываются из числовых регистров: 1-ая из 11С, 21С, 41С и 81С; 2-ая из регистров 21С, 22С, 42С и 82С и т.д. Пределы, знак и тип измерения передаются по соответствующим регистрам П (см. схему). Для поочередного считывания этих данных используются селекторы-мультиплексоры КР1533КП15 или 74НС595N. Очередность обеспечивается изменением входных регистров селекторов (А0-А2). Для синхронизации прибор выдает сигнал на пин ТоП. По руководству по эксплуатации прибор может выполнять до 12.5 изм/с. Поэтому скорости передачи в порт достаточно 9600 (хотя мы используем большую).

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

Прикрепленное изображение


CODE


// ***********************************************************
// Project: Щ300
// Author: Крючков А.С. Дунаев А.М.
// Module description:
// ***********************************************************

#include <avr\io.h> // Most basic include files
// Add the necessary ones
#include <avr\signal.h>
#include <avr\pgmspace.h>
#include <stdio.h>
#include <avr\iotn2313.h>
#include <avr\interrupt.h>

// Function prototypes
//
int UART_putchar(char c);
int UART_getchar(void);
void UART_first_init(void);
void send_data(int dts);
void get_data(void);
// Define here the global static variables
// Buffer sizes must be 2^n
//
#define TBUFSIZE 32
#define RBUFSIZE 32

#define TMASK (TBUFSIZE-1)
#define RMASK (RBUFSIZE-1)

// Static variables
//
volatile unsigned char tbuf[TBUFSIZE]; // TX buffer
volatile unsigned char rbuf[RBUFSIZE]; // RX buffer

volatile unsigned char t_in; // TX buffer in index
volatile unsigned char t_out; // TX buffer out index

volatile unsigned char r_in; // RX buffer in index
volatile unsigned char r_out; // RX buffer out index
int i,j;

SIGNAL(SIG_INTERRUPT1) { /* signal handler for external interrupt int0 */
get_data();
}

void UART_first_init(void) {
//***********************
// The function fdevopen(..) must contain as parameters the
// corresponding ..putchar() and ..getchar() functions, defined before.
//
UBRRL = 12; // 115200 BPS
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN); // 8 Databits, receive and transmit enabled, receive and transmit complete interrupt enabled
}

void get_data(void) {
//чтение данных идет слева направо для удобства представления в посылке
PORTB = 32; //знаки и 5-я цифра
j = PINB;
i = j&4;
if (i==4) send_data(45);// = '-'; //45 -
else send_data(43); //UDR = '+'; //43 +
i = j&1;
send_data(i+'0');//UDR = i;

PORTB = 64; //4 цифра
j = PINB;
j = j & 0xf;
j = j + '0';
send_data(j);

PORTB = 96; //3 цифра
j = PINB;
j = j & 0xf;
j = j + '0';
send_data(j);

PORTB = 128; //2 цифра
j = PINB;
j = j & 0xf;
j = j + '0';
send_data(j);

PORTB = 160; //1 цифра
j = PINB;
j = j & 0xf;
j = j + '0';
send_data(j);

PORTB = 192;
j = PINB;
j = j & 0xf;
j = j + '0';
send_data(j);//UDR = j;//измеряемая вел-на В, Ом, А*/

PORTB = 224;
j = PINB;
j = j & 0x3;
j = j + '0';
send_data(j);//UDR = j;//положение запятой*/

send_data(13);//UDR = 13;
}
//
void send_data(int dts) {
UDR = dts;
while ( !( UCSRA & (1<<UDRE)) );
}

void io_init(void) {
//io ports init
DDRB = 240; // три последних пина - на выход, остальные - на вход
asm ("nop");
PORTB = 0;
GIMSK = (1<<INT0)|(1<<INT1); /* enable external int0, int1 */
MCUCR = (1<<ISC01)|(1<<ISC10)|(1<<ISC11);/* falling egde: int0, rising edge: int 1 */
sei(); /* enable interrupts */
}

// ***********************************************************
// Main program
//
int main(void) {
UART_first_init();
io_init();
while(1)
{
asm ("nop");
// в коментариях принудительный опрос прибора, если не использовать прерывания
//for (i=0;i<20000;i++){}
//get_data();
}
}



На фото неприпаянный провод - это прерывание идущее на вывод ТоП (устанавливается опционально)

Благодарим всех участвующих в дискуссии, особенно vvs157. Спасибо всем! Тема закрыта! smile.gif
Причина редактирования: Простыня неформатированного исходника

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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