БК на інжектор своїми руками

Автор Володимир, 15 Червня 2010, 16:27:22

« попередня тема - наступна тема »

0 Користувачів і 1 Гість дивляться цю тему.

Pavel

:) Спасибо за грамотные ответы

Володимир

Цитата: _spiritt_:) Спасибо за грамотные ответы
\"Всегда пожалуйста\", звертайтесь якщо щось.
Мої бортжурнали: Славута; Ford Fusion

Володимир

Пропоную вашій увазі новий варіант схеми. http://bk-ukraine.narod.ru/tmp/shema_mikro2.pdf
Мої бортжурнали: Славута; Ford Fusion

Pavel

:| Надо расчитать портик на плате для программирования микрухи :)

Pavel

Хм..... или я туплю...... или потерян плюс в цепи ds1307 (8) MC33290 (7) Display vdd (2) .... т.е. они всеобъеженены но вот +5 туда не приходит и выход стабилизатора висит в воздухе

Igor_Slavuta

Я бы не стал вешать датчики температуры на одну шину...

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

Есть же неиспользованные выводы пика, заведи датчики на отдельные ноги. И код программы сильно не растянется.

Володимир

Цитата: _spiritt_:| Надо расчитать портик на плате для программирования микрухи :)
В смислі.
Цитата: _spiritt_Хм..... или я туплю...... или потерян плюс в цепи ds1307 (8) MC33290 (7) Display vdd (2) .... т.е. они всеобъеженены но вот +5 туда не приходит и выход стабилизатора висит в воздухе
Та ні це я затупив, дякую, просто схеми ще не перевіряв, потрібно роздрукувати і переглянути все уважно. Файлик вже замінив.
Мої бортжурнали: Славута; Ford Fusion

Pavel

Цитувати виділенеНадо расчитать портик на плате для программирования микрухи
Просто есть предложение перейти на поверхностный монтаж, будет компактнее и симпатичнее выглядеть, но тогда микруху как-то програмити надо, вот и говорю за портик.
Цитувати виділенеЯ бы не стал вешать датчики температуры на одну шину...

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

Есть же неиспользованные выводы пика, заведи датчики на отдельные ноги. И код программы сильно не растянется.
На счет этого не согласен, использовал DS 1820 неоднократно на одной шине ничего страшного в этом нет, ты все равно их по серийному номеру читаешь.

Igor_Slavuta

Цитата: _spiritt_На счет этого не согласен, использовал DS 1820 неоднократно на одной шине ничего страшного в этом нет, ты все равно их по серийному номеру читаешь.

Прошивка получается не универсальная

Богдан

Ребята молодцы что этим занимаетесь,  когда ужэ будет всё прощитано и запущено в производство, уж очень хочется себе поставить клубный бортовик))))))))) :)

Pavel

Цитувати виділенеПрошивка получается не универсальная

При включении питания в контроллер он посылает команду инициализации при этом все устройства отправляют ему свои серийные имена, они сохраняются в памяти и далее идет обращение к каждому устройству в отдельности. В этом и есть сама суть 1-wire интерфейса, что можно подключить много девайсов на один пин.

Igor_Slavuta

Спирит, в чём проблема? код в студию... Владимир думаю будет ему очень рад.

Pavel

Пишу на AVR (Atmel) под codevision код выглядит так:
// определяем порт и бит 1wire интерфейса
#asm
    .equ __w1_port=0x12
    .equ __w1_bit=0
#endasm

// функции для работы с интерфейсом и м\\с
#include
#include
#include

// определяем максимальное количество датчиков
#define MAX_DEVICES 8
//массив для хранения серийников
unsigned char rom_code[MAX_DEVICES][9];

main()
{
unsigned char i,j,devices;
int temp;
// поиск датчиков
devices=w1_search(0xf0,rom_code);
 
while (1)
      {
      for (i=0;i          {
          // получаем температуру
          temp=ds1820_temperature_10(&rom_code[i][0]);
          //определяем ее знак
          j=\'+\';
          if (temp<0)
             {
             j=\'-\';
             temp=-temp;
             };
          sprintf(lcd_buffer,\"t%u=%c%i.%u\\xdfC\",++i,j,temp/10,temp%10);
          // В lcd_buffer  лежит наше значение
          delay_ms(800);
          };
      };

Евгений

Володимир а у тебя нет печатки под новую схему?

Володимир

Цитата: Igor_SlavutaЯ бы не стал вешать датчики температуры на одну шину...

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

Есть же неиспользованные выводы пика, заведи датчики на отдельные ноги. И код программы сильно не растянется.
Напевне так і зроблю, я зразу був такої думки, так хоч можна буде знати де який датчик, або група датчиків.

Цитата: _spiritt_Просто есть предложение перейти на поверхностный монтаж, будет компактнее и симпатичнее выглядеть, но тогда микруху как-то програмити надо, вот и говорю за портик.
Так і планую якнайбільше деталей взяти зовнішного монтажу щоби менше дирок сверлити, а порт там бередбачено із самого початку, бо к-лайн підключено до виводів апаратного компорта, то при бажанні можна програмувати через к-лайн, але щоби програмувати через к-лайн то потрібно спочатку в мікросхему записати резидентну програму яка займає якийсь об\"єм пам\"яті та прошивка має бути скомпільована для внутршінього програмування. Але мені простіше витягувати мікросхему ніж тащити комп в гараж до БК.
Цитата: Evgen911Володимир а у тебя нет печатки под новую схему?
Ще нема, я її тількино вчора ввечері домалював і ще навіть не перевіряв на помилки.
Мої бортжурнали: Славута; Ford Fusion