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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> BODLEVEL в ATtiny2313, кто-нить программировал по SPI?
tobias_ivan
сообщение Nov 14 2006, 13:10
Сообщение #1


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

Группа: Участник
Сообщений: 150
Регистрация: 7-09-05
Из: Россия, г.Новороссийск
Пользователь №: 8 321



Не могу через последовательный программатор установить нужные значения.
Хотя прогрмматор самопальный, но ATmega128 программирует, поэтому собственно сабж?
Go to the top of the page
 
+Quote Post
AndryG
сообщение Nov 14 2006, 13:59
Сообщение #2


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

Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317



Цитата(tobias_ivan @ Nov 14 2006, 17:10) *
Не могу через последовательный программатор установить нужные значения.
Хотя прогрмматор самопальный, но ATmega128 программирует, поэтому собственно сабж?


Без проблем и заминок устанавливал с помощью AVReal в паре с STK200/300

Никаких заморочек ни разу не было.
Go to the top of the page
 
+Quote Post
VDG
сообщение Nov 14 2006, 20:00
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Цитата(tobias_ivan @ Nov 14 2006, 17:10) *
Не могу через последовательный программатор установить нужные значения.
Хотя прогрмматор самопальный, но ATmega128 программирует, поэтому собственно сабж?

А в чём конкретно проблема? Какой программатор, какая управляющая программа?...


--------------------
Go to the top of the page
 
+Quote Post
Potter
сообщение Nov 14 2006, 20:31
Сообщение #4


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

Группа: Участник
Сообщений: 151
Регистрация: 27-05-06
Из: Харьков
Пользователь №: 17 508



Цитата(tobias_ivan @ Nov 14 2006, 16:10) *
Не могу через последовательный программатор установить нужные значения.
Хотя прогрмматор самопальный, но ATmega128 программирует, поэтому собственно сабж?



Обратите внимание, что для некоторых процессоров (например, ATmega103, ATmega64, ATmega128) в режиме программирования вместо выводов MOSI, MISO её аппаратного контроллера SPI используются соответственно выводы PDI/RXD и PDO/TXD.

http://www.ln.com.ua/~real/avreal/adapters.html

Может в этом причина.....
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 14 2006, 23:05
Сообщение #5


Гуру
******

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



Цитата(tobias_ivan @ Nov 14 2006, 16:10) *
Не могу через последовательный программатор установить нужные значения.
Хотя прогрмматор самопальный, но ATmega128 программирует, поэтому собственно сабж?
Возможно, кривое ПО? Так какой программатор то, будете колоться?
Цитата(Potter @ Nov 15 2006, 03:31) *
Обратите внимание, что для некоторых процессоров....
Может в этом причина.....
Вообще то здесь речь идет об одной модели МК - ATtiny2313


--------------------
Go to the top of the page
 
+Quote Post
Diusha
сообщение Nov 15 2006, 04:16
Сообщение #6


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Обратите внимание, что у разных АВР ФУСы по-разному распиханы по фус-байтам
Go to the top of the page
 
+Quote Post
tobias_ivan
сообщение Nov 15 2006, 06:54
Сообщение #7


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

Группа: Участник
Сообщений: 150
Регистрация: 7-09-05
Из: Россия, г.Новороссийск
Пользователь №: 8 321



Цитата
Возможно, кривое ПО?

Почти 100%...
Цитата
Так какой программатор то, будете колоться?

Я написал - самопальный! wink.gif

Вот фрагмент проги, которая пишет fuse
Код
spiSend(0xAC);
spiSend(0xA0);
spiSend(0);
spiSend((BYTE)*(*buf+0));
Sleep(50);
spiSend(0xAC);
spiSend(0xA8);
spiSend(0);
spiSend((BYTE)*(*buf+1));
Sleep(50);
spiSend(0xAC);
spiSend(0xA4);
spiSend(0);
spiSend((BYTE)*(*buf+2));

Повторю - для ATmega128 и ATmega8515 запись проходит, проблема возникла с ATtiny2313. Программируется только Fuse Low Byte... а хочется чтобы и Fuse High Byte, а также Fuse Extended Byte.
Может между записями разных Fuse нужно выходить из режима прораммирования? huh.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 15 2006, 07:59
Сообщение #8


Гуру
******

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



Цитата(tobias_ivan @ Nov 15 2006, 13:54) *
Вот фрагмент проги, которая пишет fuse ...
...Повторю - для ATmega128 и ATmega8515 запись проходит, проблема возникла с ATtiny2313. Программируется только Fuse Low Byte... а хочется чтобы и Fuse High Byte, а также Fuse Extended Byte.
Может между записями разных Fuse нужно выходить из режима прораммирования? huh.gif
Да нет, все нормально...Вот только Sleep(50); - это в милисекундах? Точно? Биты можно шить не выходя из режима программирования...


--------------------
Go to the top of the page
 
+Quote Post
tobias_ivan
сообщение Nov 15 2006, 08:21
Сообщение #9


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

Группа: Участник
Сообщений: 150
Регистрация: 7-09-05
Из: Россия, г.Новороссийск
Пользователь №: 8 321



Цитата(prottoss @ Nov 15 2006, 10:59) *
Да нет, все нормально...Вот только Sleep(50); - это в милисекундах? Точно? Биты можно шить не выходя из режима программирования...

Ага. Пишу в C++ Builder 5.
В хелпе так сказано:

Цитата
The Sleep function suspends the execution of the current thread for a specified interval.

VOID Sleep(

DWORD dwMilliseconds // sleep time in milliseconds
);


Parameters

dwMilliseconds

Specifies the time, in milliseconds, for which to suspend execution. A value of zero causes the thread to relinquish the remainder of its time slice to any other thread of equal priority that is ready to run. If there are no other threads of equal priority ready to run, the function returns immediately, and the thread continues execution. A value of INFINITE causes an infinite delay.

Return Values

This function does not return a value.
Go to the top of the page
 
+Quote Post
Tcom
сообщение Nov 15 2006, 10:01
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792



Pony Prog програмит точно, я вот только что это сделал. Программатор обычный ЛПТ порт и 4 резистора.
Go to the top of the page
 
+Quote Post
add
сообщение Nov 17 2006, 06:36
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
Не могу через последовательный программатор установить нужные значения.
Хотя прогрмматор самопальный, но ATmega128 программирует, поэтому собственно сабж?

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


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
tobias_ivan
сообщение Nov 17 2006, 14:50
Сообщение #12


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

Группа: Участник
Сообщений: 150
Регистрация: 7-09-05
Из: Россия, г.Новороссийск
Пользователь №: 8 321



Спасибо всем за участие!
Пока проблему не решил... huh.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 18 2006, 08:56
Сообщение #13


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(tobias_ivan @ Nov 17 2006, 17:50) *
Пока проблему не решил... huh.gif

Может быть проблема с чтением фузов?
Еще, может быть стоит попробовать поменять порядок прошивки - вначале high, потом low?
extended fuse для t2313 вообще-то особой смысловой нагрузки не несет.
Go to the top of the page
 
+Quote Post
tobias_ivan
сообщение Nov 20 2006, 09:55
Сообщение #14


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

Группа: Участник
Сообщений: 150
Регистрация: 7-09-05
Из: Россия, г.Новороссийск
Пользователь №: 8 321



Все решил!
Все-таки фузы стали програмироваться после того, как между записью соседних фузов добавил процедуру вхождения в режим программирования. cool.gif
Всем спасибо! cheers.gif

ЗЫ. Кстати, где-то об этом читал, только не помню где...

Сообщение отредактировал tobias_ivan - Nov 20 2006, 09:56
Go to the top of the page
 
+Quote Post
ReAl
сообщение Nov 20 2006, 18:09
Сообщение #15


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(tobias_ivan @ Nov 20 2006, 08:55) *
Все решил!
Все-таки фузы стали програмироваться после того, как между записью соседних фузов добавил процедуру вхождения в режим программирования. cool.gif
Всем спасибо! cheers.gif

ЗЫ. Кстати, где-то об этом читал, только не помню где...

Впервые слышу о таком. Всё программирование и всю верификацию делаю на одном входе в программирование (за исключением необходимости перевойти в программирование после стирания - но об этом написано явно в описании процедуры стирания).
Вот фрагмент кода avreal
Код
static void
DoWriteFuses(uchar i1, uchar i3)
{
    uchar iobuf[4] = { 0xAC, i1, 0x00, i3 };
    Dump4bytes(3, "WriteFuses command", iobuf);
    SPIio(4, iobuf);
    Delayus(fuses_delay);
    Dump4bytes(3, "WriteFuses reply  ", iobuf);
}

void
WriteFuses()
{
    assert(dev_id >= 0);
    assert(WorkChip()->fuselist != NULL);

    os_printf("Programming fuses\n");
    // fusein[].mask collected in CollectFuses to OR of all implemented fields
    for(int i = 0; i < FUSE_SIZE; ++i)
    {
        // mask unused bits in fusein[].val to '1' (can be readed as 'x' => must be ignored)
        fuseout[i].val = uchar((fuseout[i].val & fuseout[i].mask)       // requested
                               | ((fusein[i].val | ~fusein[i].mask) & ~fuseout[i].mask));       // read | not_implemented
    }

    fusetype ft = WorkChip()->ftype;

    switch (ft)
    {
    case F_NONE:               // error
        return;

    case F_OLD1:
    case F_OLD2:
        DoWriteFuses(uchar((fuseout[0].val & 0xBF) | 0xA0), 0);
        break;

    case F_NEW:
        fusemask fmask = WorkChip()->fmask;
        if(fmask & FM_LOW && fuseout[FA_LOW].mask != 0)
            DoWriteFuses(0xA0, fuseout[FA_LOW].val);
        if(fmask & FM_HIGH && fuseout[FA_HIGH].mask != 0)
            DoWriteFuses(0xA8, fuseout[FA_HIGH].val);
        if(fmask & FM_EXT && fuseout[FA_EXT].mask != 0)
            DoWriteFuses(0xA4, fuseout[FA_EXT].val);
        if(fmask & FM_LOCK && fuseout[FA_LOCK].mask != 0)
            DoWriteFuses(0xE0, fuseout[FA_LOCK].val);
        break;

    }
}


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:41
Рейтинг@Mail.ru


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