Easyelectronics.ru

Электроника для всех
Текущее время: 19 ноя 2017, 04:24

Часовой пояс: UTC + 5 часов



    • 10 шт. 2-слоя 100*100mm 2$. Быстрый заказ: JLCPCB.com
    • JLCPCB - это крупнейшая фабрика PCB прототипов в Китае.
    • Имеющий более 290,000 клиентов и выполняющий более 8,000 заказов в день.
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Чтение прошивки из C8051f022
СообщениеДобавлено: 15 ноя 2016, 14:38 
Только пришел

Зарегистрирован: 15 ноя 2016, 14:25
Сообщения: 6
Добрый день всем!

Подскажите, пожалуйста, в следующем. Очень нужно попытаться считать прошивку из полумёртвого Silabs C8051f022 с целью залития её потом на такой же контроллер. Как понимаю, если в нём не окажется зашитых защитных битов, это возможно?

Нагуглил, что точно умеет читать флэш этих МК программатор USB DEBUG ADAPTER через Silicon Laboratories flash utility. Но в магазине нашёл другой программатор — USB C8051F Debugger. Про него точно сказано, что он работает с Кейлом и Silabs IDE. А вот про Silabs Flash utility ни слова. Может кто пользовался таким? Увидит его Flash utility?

Заранее спасибо за ответы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение прошивки из C8051f022
СообщениеДобавлено: 16 ноя 2016, 12:23 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2522
Откуда: Киев
Такой? Скорее всего это клон оригинального адаптера EC3 и работать будет точно так же.
У Silabs есть 2 различные модели программаторов-отладчиков - USB DEBUG ADAPTER EC3 и UDA-8; последний по каким-то причинам сейчас не выпускается и клонов тоже не встречалось.
Flash Programming utility выдаёт на выходе файл странного формата, текстом в столбик по байту; во что-то удобоваримое типа hex его придётся преобразовывать отдельной программой или же переделать вывод в файл, благо исходники открыты.
Защищён кристалл или нет, можно узнать на вкладке "Set Memory". Если значение в поле "Lock code memory" равно 0xFF, защиты нет и можно читать. Если же не 0xFF - там отображается количество защищённых страниц минус 1.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение прошивки из C8051f022
СообщениеДобавлено: 31 мар 2017, 12:22 
Только пришел

Зарегистрирован: 15 ноя 2016, 14:25
Сообщения: 6
Добрый день!

Пишу в ту же тему, так как это продолжение той же истории. Недавно пришёл заказанный c8051f022. Я считал прошивку со старого контроллера с помощью FlashBluster 2, запаял в плату на его место новый, залил в него прошивку. Однако устройство по прежнему не стартует. Так как прошивка считалась без проблем, прошилась тоже, предполагаю, что мешает какая-то переферия на плате. Пытаюсь найти какая...

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

Как понял из даташита, если положить ресет в ноль и отпустить обратно к питанию (через резистор, конечно) — контроллер уходит в перезагрузку. При этом на всех I/O портах должна быть 1. Проблема в том, что эта 1 там всё время. Хоть держи ресет в нуле, хоть нет...

Смотрел в даташите, там не рассказано подробнее о том, что с ним происходит когда я подаю на него питание или же отправляю его в ресет... Хотя, может не внимательно смотрел... Буду признателен, если ткнёте носом в нужное место =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение прошивки из C8051f022
СообщениеДобавлено: 19 апр 2017, 18:36 
Только пришел

Зарегистрирован: 15 ноя 2016, 14:25
Сообщения: 6
Видимо, все обсуждения 8051 давно уже закончены.

Тем не менее, решившись попробовать написать самостоятельно прошивку для этого древнего устройства, столкнулся с проблемой — МК уходит в ресет....

Сам по себе и постоянно. Даже когда просто хочу помигать диодиком =/

Вот код, где, по-моему должен быть 0 на выходе P0.2... А там 1 ~150мс, потом 0 ~20мс, потом опять 1 и т.д.

Код:
#include<C8051F020.H>
sbit LED = P0^2;   

void cct_init(void);
void delay(int a);
void Init_Clock(void);

int main(void)
{
   Init_Clock();
  cct_init();             // Make all ports zero
   while(1);
}

void cct_init(void)
{
   XBR2=0x40;
   P0MDOUT=0x04;
   P0 = 0x00;
}

void Init_Clock(void)
{   
    OSCXCN =0x67;  // 0110 0111b EXTERNAL OSC start
    delay(40);
     while ((OSCXCN & 0x80) == 0);   //whait OSCXCN = 1110 0111b
    OSCICN=0x88;   // 1000 1000b INTERNAL OSC disable
}

void delay(int a)
{
   int i, j;
   for(i=0;i<a;i++)
         for(j=0;j<1000;j++);

}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение прошивки из C8051f022
СообщениеДобавлено: 19 апр 2017, 18:54 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2522
Откуда: Киев
Скорее всего watchdog срабатывает. После сброса он включен. См. регистр WDTCN.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение прошивки из C8051f022
СообщениеДобавлено: 24 апр 2017, 14:45 
Только пришел

Зарегистрирован: 15 ноя 2016, 14:25
Сообщения: 6
Спасибо за ответ! Да, так и оказалось!

А можете подсказать как правильно указать порт на котором висят внешние часы? У меня они на P7.
Как понял, регистр EMI0CF позволяет выбрать 0-3 порт или 4-7... Но как конкретно указать, что это 7ой?
Я в него пробовал записать EMI0CF = 00 1 0 11 11 (00 — 2 бита не используются, 1 — порты 4-7, 0 — мультиплексный режим, 11 — только внешняя память, 11 — 4 цикла)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение прошивки из C8051f022
СообщениеДобавлено: 27 апр 2017, 21:44 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2522
Откуда: Киев
Вот с EMI как раз дела не имел, стараюсь применять то, у чего встроенной памяти хватает...
Маленький совет: если есть желание продолжать какие-то действия с силабсами, склонируйте себе программатор-отладчик EC3. Цена вопроса баксов 10, но здорово поможет. Материалы я выкладывал на электрониксе.
Упрощённая версия, без буферов. Легко умещается в корпус типа "флешки".

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB