Обсуждаем контроллеры компании Atmel.
Ответить

Криво прошивается attiny13a

Ср сен 26, 2018 13:01:32

Привет, написал простенькую программу плавного старта низковольтного освещения. Программа при соответствующих корректировках работает на attiny2313.
Но тини13 не могу нормально прошить, процесс заливки идет нормально, на верификации спотыкается. Читаю записанное, а там программа записана вся, но с пробелами в виде пустых ячеек flash. Вот как это выглядит

Требуемый флеш:
Изображение

После ошибки верификации, читаю флеш, а там:
Изображение


Фьюзы сейчас low 0x71 high 0xff , но пробовал в различных комбинациях на различных частотах, не помогает. Отдельно фьюзы пишутся без проблем. EEPROM кстати тоже
Программатор другие девайсы перепрошивает без проблем.
Программатор usbasp пробовал в режиме пониженной скорости, при Vtarget 3.3v - без изменений.
И самое интересное, если считать искалеченную прошивку в том виде, как она записалась, сохранить ее, стереть чип и залить сохраненную, то все происходит так как нужно!
Пробовал на двух разных чипах, один куплен на месте, другой с али.
Либо я не знаю чего-то о работе с данным чипом, либо мне не повезло и я получил в руки два бракованных чипа (правда еще есть 9 штук с али, но думаю их можно не првоерять.)

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:06:51

Прошиваете в схеме? Моси, мисо, сцк не гадятся схемой?

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:10:44

godrik123 писал(а):И самое интересное, если считать искалеченную прошивку в том виде, как она записалась, сохранить ее, стереть чип и залить сохраненную, то все происходит так как нужно!
Значит получается что что-то не так с исходным hex-ом. :roll:

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:15:38

после стирания чипа не то же самое считывается, что в "сохраненной"?

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:19:13

В схеме, но в ярости уже обрезал все линии, так что она автономна, только штырьковый разъем и 220мкф по питанию. Даже пробовал садить вручную на землю reset во время программирования.

godrik123 писал(а):И самое интересное, если считать искалеченную прошивку в том виде, как она записалась, сохранить ее, стереть чип и залить сохраненную, то все происходит так как нужно!
Значит получается что что-то не так с исходным hex-ом. :roll:

Этот hex с парой измененных команд работает в 2313. Я пробовал этот же hex заливать в другой контроллер, работает или нет, не знаю, но записывается же!
В бракованную тн13 даже пара nop`ов не заливаются. FLASH какой-то пятнистый получился.
Может ее нужно прошивать на сверхнизкой скорости? Но имеющийся у меня програматор не позволяет это сделать. Разве что собирать 5 проводков.

Добавлено after 1 minute 50 seconds:
после стирания чипа не то же самое считывается, что в "сохраненной"?

Нет, чип послушно стирается. Так же успешно пишется, верифится и стирается eeprom.

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:21:37

после того, как чип послушно стерся, в нем на самом деле одни FF-ки прописаны? вы это проверяли?
я это имел ввиду.

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:25:58

Да, после стирания кривой прошивки и последующего чтения - весь flash - 0xFF

Вот только что внаглую, без изменений залил hex в аттини2313, все удачно пишется, верифится, читается. Мне кажется hex не может рушить процесс записи, хоть абрукадабру загоняй, записаться должен.

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:38:09

у вас может быть просто битая flash. попробуйте прошить при питании 6В. хотя даже если получится, я бы не советовал такие МК применять вообще.

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:44:58

godrik123 писал(а):Мне кажется hex не может рушить процесс записи, хоть абрукадабру загоняй, записаться должен.
Ещё как может, если адресация в hex-е не совпадает с адресным пространством МК.:wink: Но обычно в таких случаях прошивальщики матерятся. :dont_know:

Re: Криво прошивается attiny13a

Ср сен 26, 2018 13:58:25

у вас может быть просто битая flash. попробуйте прошить при питании 6В. хотя даже если получится, я бы не советовал такие МК применять вообще.

Хорошо, попробую, но попозже.

Добавлено after 55 seconds:
godrik123 писал(а):Мне кажется hex не может рушить процесс записи, хоть абрукадабру загоняй, записаться должен.
Ещё как может, если адресация в hex-е не совпадает с адресным пространством МК.:wink: Но обычно в таких случаях прошивальщики матерятся. :dont_know:

Та меня бы ещё avrstudio послал бы, не дал бы скомпилировать.

Re: Криво прошивается attiny13a

Ср сен 26, 2018 14:14:41

АВР студия при компиляции укажет размер файла... а матюкнется только, если был подключен файл описания ресурсов (*.inc) соответствующего МК... И то - Х/З не пробовал такие "казуизвраты"...
Насчет остального... К примеру таймера могут быть разные, карта векторов прерываний и прочие "мелочи".
:roll:

Re: Криво прошивается attiny13a

Ср сен 26, 2018 14:56:39

Да, скорее всего, битая эта тинька. Тут недавно этот вопрос уже поднимался, у нашего коллеги svetl1928 мелкая серия, так он тоже жаловался, что среди 13А очень много брака. Вот здесь.

Re: Криво прошивается attiny13a

Ср сен 26, 2018 22:22:49

При повышении Vtrgt до 6.5в ничего так же не изменилось. Все 10 с Китая и 2 с местного магазина имеют одинаковую партию. Сэкономил, чё. Надо было брать в проверенном годами инетмагазине. Что бы убедиться, что я не сошел с ума, послезавтра выпаяю с рабочего девайса тн13 и испытаю ее.

А вообще, я так понимаю, это не подделки? Их же нельзя подделать, архитектура контроллеров не лежит в открытом доступе? Я так понимаю, это брак оригинальных контроллеров, который нелегально выкидывают на али?
Да и контроллеры уже 2 года должны маркироваться Микрочипом, а на них до сих пор atmel1802

Re: Криво прошивается attiny13a

Чт сен 27, 2018 03:27:32

она автономна, только ... 220мкф по питанию
Уберите 220 мкФ.

Re: Криво прошивается attiny13a

Чт сен 27, 2018 09:56:26

Насчет подделок...
Вряд-ли. А вот насчет программаторов...
На практике я использую или поньку или avrdudeshell c STK200 или в последнее время собственной версией СИ-прога
my_siprog.zip
(707.3 KiB) Скачиваний: 212

(заведен на COM порт материнки!).
Возможно в алгоритмах оболочки нюансы... - попробуйте те "бракованные" на другом софте и железе прошить для эксперимента - хуже им уже не будет в любом случае.
:dont_know:

Re: Криво прошивается attiny13a

Чт сен 27, 2018 10:33:13

Если не официальная поставка, а например с али или какого нибудь мелкого магазинчика(а там скорее всего с али), то велика вероятность что у вас просто брак.
Поставьте на её место заведомо рабочую, если прошьётся нормально, сразу будет понятно.

Re: Криво прошивается attiny13a

Чт сен 27, 2018 13:56:15

А я всё же ставлю на корявый hex, так как, судя по картинкам, имеет место сдвиг адресов :roll: :tea: :dont_know:
godrik123, выкладывайте свой hex, будем смотреть. :solder: Или попробуйте прошить этот hex (проверено лично). :roll:

Re: Криво прошивается attiny13a

Чт сен 27, 2018 20:30:00

Я только изучаю программирование и не очень хотел бы смущать здесь людей своим быдлокодом. Ну ладно. Кстати ваша прога залилась с такими же пятнами.
Спойлер
Код:
.include "tn13def.inc"
.def temp=R16
.def temp1=R17

init:            
clr r16
clr r17
clr r18
clr r19
clr r20
clr r21
clr r22
clr r23
clr r24
clr r25
clr r26
clr r27
clr r28
clr r29
clr r30
clr r31

ldi temp, RAMEND                              ; инииализация стека
out SPL, temp

ldi temp, 0b11111111                           ; потр В на выход
out ddrb, temp
       
ldi temp, (1<<COM0A1)|(0<<COM0A0)|(1<<wgm00)|(1<<wgm01)   ; режим быстрого ШИМ
out TCCR0A, temp
ldi temp, (1<<cs00)                              ; счетчик без предделителя
out tccr0b, temp


ldi temp1, 0                                 ; начальное значение ШИМ
out OCR0A, temp1      
      
main:
cpi temp1, 255                                 ; сравниваем значение ШИМ с максимальным
breq endprog                                 ; если да, то заканчиваем увеличение ШИМ   
inc temp1                                    ; иначе увеличиваем значение ШИМ на 1
out OCR0A, temp1               
rcall delay                                    ; задержка
rjmp main                                    ; замыкаем цикл

endprog:                                    ; конец программы
ldi temp, 0                                 ; выключаем ШИМ
out TCCR0A, temp
out tccr0b, temp
ldi temp, 0b0001                           ; устанавливаем на выходе ШИМ постоянную 1
out portb, temp
rjmp endprog



delay:                                    ; задержка 18ms
ldi r19, 197
ldi r20, 234
loop:
dec r19
brne loop
dec r20
brne loop
ret


Добавлено after 8 minutes 49 seconds:
Извините, перезалил hex, там порт не тот выставлен был.
Вложения
softstarttn13.hex
(288 байт) Скачиваний: 508

Re: Криво прошивается attiny13a

Чт сен 27, 2018 20:36:55

godrik123 писал(а): Кстати ваша прога залилась с такими же пятнами.
Чтож, тогда моя ставка не сыграла. :( В таком случае, если есть возможность, заполните буфер прошивальщика "00", прошейте МК, и считайте. Проверьте на нескольких МК, и если результат повторяется, то скорее всего имеются проблемы с алгоритмом программирования конкретного МК. :dont_know:

Re: Криво прошивается attiny13a

Пт сен 28, 2018 04:38:21

А убрать конденсатор 220 мкФ не помогло?
Ответить