На aliexpress продают поддельные ATMEGA8A-AU по $0.5 за шт?

Immortal
Offline
Зарегистрирован: 28.12.2013

Заказал у этого продавца 8-е меги, 50шт за $26.00:

http://www.aliexpress.com/item/Free-Shipping-50PCS-New-ATMEGA8-ATMEGA8A-AU-TQFP32/1915426804.html

И что то с ними сразу начались проблемы, SinaProg через USBasp V 2.0 от LC Technology их не видит ни в какую.

В этом USBasp прошивка уже была обновлена на самую последнюю, 128 мегу не раз им шил и все работает. Правда... Мои старые ATMEGA8L он тоже почему то не видит.

Ладно, пробую перешить фьюзы с помощью Arduino as ISP и дудки чтобы они запустились на 8МГц от рц цепочки и с EESAVE.

Как показал http://www.engbedded.com/fusecalc/ это параметры -U lfuse:w:0xe4:m -U hfuse:w:0xd1:m

C:\_soft>call avrdude-6.1\avrdude -c avrisp -p m8 -b 19200 -P COM1
6 -U lfuse:w:0xE4:m -U hfuse:w:0xD1:m -v

avrdude: Version 6.1, compiled on Mar 13 2014 at 00:09:49
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\_soft\SinaProg2.1.1\avrdude-6.1\a
vrdude.conf"

         Using Port                    : COM16
         Using Programmer              : avrisp
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega8
         Chip Erase delay              : 10000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---
-- ---------
           eeprom         4    20   128    0 no        512    4      0  9000  90
00 0xff 0xff
           flash         33    10    64    0 yes      8192   64    128  4500  45
00 0xff 0x00
           lfuse          0     0     0    0 no          1    0      0  2000  20
00 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  2000  20
00 0x00 0x00
           lock           0     0     0    0 no          1    0      0  2000  20
00 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0
 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0
 0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel AVR ISP
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9307
avrdude: safemode: lfuse reads as E1
avrdude: safemode: hfuse reads as D1
avrdude: reading input file "0xE4"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE4:
avrdude: load data lfuse data from input file 0xE4:
avrdude: input file 0xE4 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xD1"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xD1:
avrdude: load data hfuse data from input file 0xD1:
avrdude: input file 0xD1 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified

avrdude: safemode: lfuse reads as E4
avrdude: safemode: hfuse reads as D1
avrdude: safemode: Fuses OK (E:FF, H:D1, L:E4)

avrdude done.  Thank you.

И все, сигнатура чипа больше не читается:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.

Также в 3-4 меги пытался залить ардуино загрузчик как описано в этой статье: http://mk90.blogspot.com/2011/01/arduino-3-atmega8a-bootloader.html

Все меги после этого умерли. После любой записи в кристал получаю Invalid device signature

Эти атмеги подделки или это я где то накосячил?

axill
Offline
Зарегистрирован: 05.09.2011

много раз покупал МК на али, подделок не было ни разу. да и рейтинг хороший у вашего прода

у меги с завода запрограмирован CLKDIV8, это значит, что он затактирован от 1МГЦ

я чтобы шить новые в интерфейсе AVRISP MKII ставлю частоту интерфейса меньше 100кгц ибо атмел требует частоту ISP ставить в 8 раз меньше тактовой, иначе действительно програматор не видит МК или дает ошибку чтения сигнатуры

как это сделать с вашими програматорами не знаю, но думаю дело не в подделке, а в способе програмирования

axill
Offline
Зарегистрирован: 05.09.2011

кстати эти чуть дешевле особенно учитывая что это меньший опт http://ru.aliexpress.com/item/-/1997569083.html?recommendVersion=1

покупал - работают

Immortal
Offline
Зарегистрирован: 28.12.2013

Все, разобрался. Оказалось у меня земля отвалилась и на чтение оно работало на паразитном питании, а прошивался какой то мусор. Подпаял землю и аврки ожили (как минимум читаются, целостность SPI портов еще придется проверить). Всем спасибо!

Камни я подключал через 2 самодельных переходника: TQFP32 - DIP32 переходник для макетирования и DIP32 - ISP10.

Я их прозванивал, но только по отдельности.

 

axill
Offline
Зарегистрирован: 05.09.2011

ну и отлично) наверно ваши програматоры изначально шьют на малой скорости, поэтому в этой части проблем быть не должно

Immortal
Offline
Зарегистрирован: 28.12.2013

С китайскими USBasp проблемы есть, из коробки они не позволяют устанавливать низкую скорость. Нужен еще один программатор, чтобы перепрошить USBasp последней версией прошивки и тогда все будет ок.

Maverik
Offline
Зарегистрирован: 12.09.2012

Immortal пишет:

 на чтение оно работало на паразитном питании, а прошивался какой то мусор.

очень распространенный глюк. на запись нужна бОльшая мощность, чем на чтение.

был у меня похожий глюк с длинным usb-шнурком - всё определялось, фьюзы спокойно читались но прошиваться  отказывались.

Immortal
Offline
Зарегистрирован: 28.12.2013

Давайте обсудим статью А часто ли бывают поддельные микроконтроллеры Atmel?

Сразу бросается в глаза некорректное сравнение AT90S2100 и tiny2313 на фото.

Это совсем разные микросхемы, тини намного свежее и она сделана по более мелкому техпроцессу.

Проверить AVRку можно просто считав ёё программатором и проверив состояние фьюзов (Должно быть заводское состояние), энергопотребление, по date code.

Там в коментах к статье привели нитересную мысль, что на али по бросовым ценам могут продавать "не подделку, а отбраковку оригинальных контроллеров."

Может так и есть, а может и нет. Сейчас все производится в китае и контроллеры Atmel в том числе. Я не верю что кому то может быть выгодно налаживать догоростоящие производственне линии для выпуска подделок, когда можно просто стащить контроллеры с производства. Они производятся там миллионными партиями (особенно в наше время высокой популярности ардуин) и за утащенными несколькими тисячами контроллеров не уследишь.

В СССР многие так тащили домой всякую рассыпуху с заводов, а чем китайцы шуже ? :)

Мой вывод такой: AVR контроллеры на алиэкспрессе 100% оригинальные и полностью рабочие, скорее всего даже не ворованные, а такие дешевые они только за счет того что попадают к нам напрямую без посредников, минуя официальных дистрибьюторов, которые тоже кушать хотят.

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

В USBAsp добавляется перемычка и он переходит в низкоскоростной режим. Примеров в инете полно.

Olm
Offline
Зарегистрирован: 09.10.2014

У меня тоже из десятка атмег 8 купленных по 50 центов,  одна не программируется по uart при зашитом загрузчике ни в какую, по SPI нормально, и  остальные норма. Я подозреваю что может быть отбраковка, неизвестно где косяки, может они все в той или иной степени косячные. Может бит eeprom или флеша к примеру мертвый где-нибудь в конце памяти, этот косяк и не страшен если не используется. Вот бы софтину какую найти для тестов или програмно-аппаратное решение. Можно ведь оттестировать память всю, периферию на разных режимах и скоростях. 

 

Immortal
Offline
Зарегистрирован: 28.12.2013

Olm, а давай свой тест напишем? У меня в загашнике лежит порядка 90шт ATMEGA8A, все в TQFP корпусе, купленные по $0.4-$0.5 на али (у разных продавцов и в разное время). Хранятся в антистатических пакетиках.

Получится хорошая статистика.

Есть даже официальный документ с описанием методики тестирования AVR998: Guide to IEC60730 Class B compliance в пдф

План работ такой:

1 CPU Registers Test (General purpose register R0 to R25, X,Y,Z register test)

2 Stack Pointer Register Test

3 Status Register Test

4 RAM Memory Test
The RAM test will test all the RAM memory locations
This test is done by successively writing, reading and checking 0x55 and 0xAA value into the RAM memory. The firmware sets a bit in a “RAM Test Status Register”. The program verifies that the bit is set at the end of the test.

5 Interrupt functionality test

6 I/O registers

7 Clock frequency - Purpose of the test : Test of internal clock frequency.
Этот тест пропускаем. Встроенный генератор я почти не использую

8 Analog to Digital Converter
Free analog inputs can be wired to external known voltages to control the correct behavior of the
ADC. This test can also be done by using the internal bandgap reference as the ADC input. For example, the ATmega16 internal bandgap reference delivers a 1.22V voltage which can be regularly converted to test the ADC

9 Interrupt Periodic Event
Purpose of the test : Check that interrupt occurs regularly in a defined lapse of time. In the same
way, by the use of a counter, the test can detect if an interrupt occurs too frequently.
At each interrupt vector address, the firmware sets a bit in a user defined “IT Test Status Register”. The program verifies periodically that bits are set, then clears the “IT Test Status Register”.
On errors a watchdog event is called. Interruptions which are not used by the application can be used by the test to regularly check the interrupt controller.

10 Flash Memory Test
11 EEPROM Memory Test - эти два типа памяти проверить проще всего, надо лишь прошить во все ячейки 0x00, а потом 0xFF. Валидация найдет ошибки.

Пример [4] https://github.com/axlecrusher/AvrProjects/tree/master/avr_dramTest

[6] Проверка работоспособности портов

Olm
Offline
Зарегистрирован: 09.10.2014

Пока к сожалению не осилю, так-как это на ассемблере надо писать по большей части, а я на си еще даже не спец, и до изучения ассемблера avr еще руки не доходят, хотя знаю что ничего сложного нет. Просто высказал мысль что для более опытных людей этот проект возможно реализовать. Читая статьи Di Halta на easyelectronics.ru, понимаю что этот чел за неделю максимум все тесты напишет, я же полгода со своим теперешним уровнем знаний разбираться буду.

 

Immortal
Offline
Зарегистрирован: 28.12.2013

Тогда я неспеша буду писать свой тест, когда будет чем поделиться выложу его

Immortal
Offline
Зарегистрирован: 28.12.2013

Скетч для проверки работоспособности портов и EEPROM

Но времени проверить каждую свою ATMEGA8A пока нет. Да и для ускорения тестирования надо бы сперва тестовый шилд собрать (с кнопками и светодиодами на каждый пин)

slider
Offline
Зарегистрирован: 17.06.2014

мне десяток attiny13 попался с прошитым spien , естественно контроллеры ничем не видятся, никакой распространеный программотор невзял (ибо они все последовательного программирования).

Помогло высоковольтное параллельное программирование. (HVPROG реаниматор не смог).

Именно помогла восстанавливалка фьюзов на базе ARDUINO UNO (добавляется только транзюк для подачи 12в не резет контроллера )

  Видимо была продажа прошитых и непригодившихся под какойто проект (где резет использовался как пин порта ввода-вывода). да и тож народ в инете попадался.

Immortal
Offline
Зарегистрирован: 28.12.2013

Да, похоже распродают остатки после свертывания какого-то производства. Я уже где то читал про похожий случай с attiny13.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Immortal пишет:

Давайте обсудим статью А часто ли бывают поддельные микроконтроллеры Atmel?

Вот ещё DI HALT делится своим опытом - Микросхемы из Китая

Immortal
Offline
Зарегистрирован: 28.12.2013

Из описанного DI HALTом встречается:

  • невменяемые калибровки внутреннего RC генератора
  • плавающий бит в оперативной памяти
  • тупо не прошивался один из байтов флеша
  • не встает флаг по переполнению Timer0

И комментарии там очень интересные, советую почитать.

Immortal
Offline
Зарегистрирован: 28.12.2013

Случайно нашел где я читал про похожий случай с attiny13: ATTINY13A с завода - обычный ISP вам не поможет:

Закупил летом кучу чипов ATTINY 13A на ebay, часть в SU (200 mil) исполнении, часть в SSU (150 mil). С SU (в трее) проблем не возникло, а вот SSU (в ленте) отказались распознаваться обычным китайским USBASP программатором.
...
Перешил на пробу 3 чипа. Все оказались с заводскими fuses: FF FC вместо FF FF
Все ATTINY13A в SSU исполнение, купленные до этого внутри страны, были с обычными fuses (FFFF).

Продавец вам рабочие МК прислал, к нему нет претензий. А вот конфиг фузов при покупке не оговаривается.

Immortal
Offline
Зарегистрирован: 28.12.2013
Immortal
Offline
Зарегистрирован: 28.12.2013

Нашел у китайцев даже не подделку, а функциональный аналог 88 меги

Разработчик: LogicGreen Technologies

Микросхема: LGT8F88A

Сайт: http://www.lgt-semi.com/?page_id=5267&lang=en

Из описания:

Up to 32MIPS when working at 32MHz

Single cycle hardware multiplier(8×8)!

1KByte internal SRAM

Up to 30 programmable I/O (QFP32L package)

Там же есть и документация Migrating from ATMega88 to LGT8F88A

Оно даже продается под видом ардуино: LGT8F88A Development Board

slider
Offline
Зарегистрирован: 17.06.2014

Да прикольно, плюшек много, внутренний генератор 32МГц, порт PE0-6 (7бит) умудрились запихнуть в тот же корпус. Только вот в ардуино уно плате не вывели. Лучше б Atmega328 улучшили, и цену бы в 2 раза дешевле :)