Программатор для чего нужен: Что такое программатор — подробный обзор с описанием и рекомендациями

Что такое программатор — подробный обзор с описанием и рекомендациями

Отладчиками называют специализированные компьютерные программы, используемые для обнаружения ошибок в программном коде иных программ

Краткое содержимое статьи:

Что называют программаторами?

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

Благодаря стандартному программатору имеется возможность грузить программы формата hex в большинство микроконтроллеров AVR, уменьшая затраченное время на это. Также при применении программатора работающего внутрисхемно отпадает необходимость извлекать микроконтроллер из устройства.

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

Классификация программаторов

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

Давайте рассмотрим некоторые классификации

По присоединению микросхемы:

  • Параллельный.
  • Внутрисхемный.

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

Если вы будете покупать программатор, в котором применяется параллельное присоединения микросхемы, то необходимо внимательно посмотреть на разъем, в который ставиться микросхема, оценить его качество. Одноразовый разъём не станет вам долго служить; устройство должно быть оснащено цанговым разъёмом — а наиболее лучшим вариантом будет являться программатор с разъёмом снабженным подвижной планкой (ZIF разъёмы). Среды не дешевых программаторов имеются данные устройства с разъемами под различные корпуса.

По присоединению к компьютеру

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

  • COM порт.
  • LPT порт.
  • Специальная интерфейсная карта.
  • USB.
  • Сеть интернет.

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

Как присоединить USB-программатор?

Чтобы начать применять программатор, его следует присоединить к одному из USB-портов компьютера. После подключения устройства к компьютеру, с помощью USB-порта, на мониторе компьютера высветиться сообщение, в котором будет говориться о присоединении неизвестного USB-устройства USBasp, а на самом программаторе начнет гореть светодиод, означающий то, что он подключился к компьютеру.

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

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

Чтобы иметь возможность управлять программатором необходимо установит специализированные программы. Больше всего для этого подходят оконные приложения.

Программаторы и отладчики зачастую применяются в одном устройстве, это позволяет, облегчит весь процесс.

В основном сейчас на рынке представлены внутрисхемные программаторы и отладчики в основном сейчас на рынке представлены внутрисхемные программаторы и отладчики

Помогите сайту, поделитесь в соцсетях 😉

AVR. Учебный курс. Трактат о программаторах

Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и заливается в микроконтроллер посредством программатора.

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

Что же представляет из себя это устройство?
В простейшем случае программатор это девайс который связывает микроконтроллер и компьютер, позволяя с компа залить файл прошивки в память контроллера. Также нужна прошивающая программа, которая по специальному протоколу загонит данные в микроконтроллер.

Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR’ку можно прошить несколькими способами:

Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже наглухо туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3..5 в зависимости от контроллера).

К этим выводам подключается прошивающий шнур программатора и происходит заливка прошивки. После чего шнур отключается и контроллер начинает работу.
У AVR прошивка заливается по интерфейсу SPI и для работы программатора нужно четыре линии и питание (достаточно только земли, чтобы уравнять потенциалы земель программатора и устройства):

  • MISO — данные идущие от контроллера (Master-Input/Slave-Output)
  • MOSI — данные идущие в контроллер (Master-Output/Slave-Input)
  • SCK — тактовые импульсы интерфейса SPI
  • RESET — сигналом на RESET программатор вводит контроллер в режим программирования
  • GND — земля

Сам же разъем внутрисхемного программирования представляет собой всего лишь несколько штырьков. Лишь бы на него было удобно надеть разъем. Конфигурация его может быть любой, как тебе удобней.
Однако все же есть один популярный стандарт:

Для внутрисхемной прошивки контроллеров AVR существует не один десяток разнообразных программаторов. Отличаются они в первую очередь по скорости работы и типу подключения к компьютеру (COM/LPT/USB). А также бывают безмозглыми или со своим управляющим контроллером.

Безмозглые программаторы, как правило, дешевые, очень простые в изготовлении и наладке. Но при этом обычно работают исключительно через архаичные COM или LPT порты. Которые найти в современном компьютере целая проблема. А еще требуют прямого доступа к портам, что уже в Windows XP может быть проблемой. Плюс бывает зависимость от тактовой частоты процессора компьютера.

Так что твой 3ГГЦ-овый десятиядерный монстр может пролететь, как фанера над Парижем.

Идеальный компьютер для работы с такими программаторами это какой-нибудь PIII-800Mhz с Windows98…XP.
Вот очень краткая подборка проверенных лично безмозглых программаторов:

  • Программатор Громова.
    Простейшая схема, работает через оболочку UniProf(удобнейшая вещь!!!), но имеет ряд проблем. В частности тут COM порт используется нетрадиционно и на некоторых материнках может не заработать. А еще на быстрых компах часто не работает. Да, через адаптер USB-COM эта схема работать не будет. По причине извратности подхода 🙂
  • STK200
    Надежная и дубовая, как кувалда, схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта.
  • FTBB-PROG.
    Очень надежный и быстрый программатор работающий через USB, причем безо всяких извратов. C драйверами под разные операционные системы. И мощной оболочкой avrdude. Недостаток один — содержит редкую и дорогую микросхему FTDI, да в таком мелком корпусе, что запаять ее без меткого глаза, твердой руки и большого опыта пайки весьма сложно. Шаг выводов около 0.3мм. Данный программатор встроен в демоплаты Pinboard

Программаторы с управляющим контроллером лишены многих проблем безмозглых. Они без особых проблем работают через USB. А если собраны на COM порт, то без извращенских методик работы с данными — как честный COM порт. Так что адаптеры COM-USB работают на ура. И детали подобрать можно покрупней, чтобы легче было паять. Но у этих программаторов есть другая проблема — для того чтобы сделать такой программатор нужен другой программатор, чтобы прошить ему управляющий контроллер. Проблема курицы и яйца. Широко получили распространение такие программаторы как:

  • USBASP
  • AVRDOPER
  • AVR910 Protoss

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

Параллельное высоковольтное программирование
Обычно применяется на поточном производстве при массовой (сотни штук) прошивке чипов в программаторе перед запайкой их в устройство.

Параллельное программирование во много раз быстрей последовательного (ISP), но требует подачи на RESET напряжения в 12 вольт. А также для параллельной зашивки требуется уже не 3 линии данных, а восемь + линии управления. Для программирования в этом режиме микроконтроллер вставляется в панельку программатора, а после прошивки переставляется в целевое устройство.

Для радиолюбительской практики он особо не нужен, т.к. ISP программатор решает 99% насущных задач, но тем не менее параллельный программатор может пригодиться. Например, если в результате ошибочных действий были неправильно выставлены FUSE биты и был отрублен режим ISP. Параллельному программатору на настройку FUSE плевать с высокой колокольни. Плюс некоторые старые модели микроконтроллеров могут прошиваться только высоковольтным программатором.
Из параллельных программаторов для AVR на ум приходит только:

  • HVProg от ElmChan
  • Paraprog
  • DerHammer

А также есть универсальные вроде TurboProg 6, BeeProg, ChipProg++, Fiton которые могут прошивать огромное количество разных микроконтроллеров, но и стоят неслабо. Тысяч по 10-15. Нужны в основном только ремонтникам, т.к. когда не знаешь что тебе завтра притащат на ремонт надо быть готовым ко всему.

Прошивка через JTAG
Вообще JTAG это отладочный интерфейс. Он позволяет пошагово выполнять твою программу прям в кристалле. Но с его помощью можно и программу прошить, или FUSE биты вставить. К сожалению JTAG доступен далеко не во всех микроконтроллерах, только в старших моделях в 40ногих микроконтроллерах. Начиная с Atmega16.

Компания AVR продает фирменный комплект JTAG ICEII для работы с микроконтроллерами по JTAG, но стоит он (как и любой профессиональный инструмент) недешево. Около 10-15тыр. Также есть первая модель JTAG ICE. Ее можно легко изготовить самому, а еще она встроена в мою демоплату Pinboard.

Прошивка через Bootloader
Многие микроконтроллеры AVR имеют режим самопрошивки. Т.е. в микроконтроллер изначально, любым указанным выше способом, зашивается спец программка — bootloader. Дальше для перешивки программатор не нужен. Достаточно выполнить сброс микроконтроллера и подать ему специальный сигнал. После чего он входит в режим программирования и через обычный последовательный интерфейс в него заливается прошивка. Подробней описано в статье посвященной бутлоадеру.
Достоинство этого метода еще и в том, что работая через бутлоадер очень сложно закосячить микроконтроллер настолько, что он не будет отвечать вообще. Т.к. настройки FUSE для бутлоадера недоступны.

Бутлоадер также прошит по умолчанию в главный контроллер демоплаты Pinboard чтобы облегчить и обезопасить первые шаги на пути освоения микроконтроллеров.

Pinboard II
Прошивка AVR с помощью демоплаты Pinboard II (для Pinboard 1.1 все похоже)


Программатор Громова | Электроника для всех

Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь. Так как данный метод не очень стабилен, возможны сбои при прошивке, длина проводков ограничена двадцатью сантиметрами (если больше, то будет глючить), поэтому придется шариться в комповой заднице. Да и LPT порт спалить проще простого. В общем не рулез.

Шарясь по инету, я нашел отличный программатор, работающий через RS232 он же COM порт. А также удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.

Саму программу UniProf можно скачать у меня, но лучше взять с сайта автора. Возможно там будет версия посвежее.

Так же, тебе потребуется чертеж печатной платы в формате Layout, для изготовления печатной платы данного программатора.

Это формат программы Sprint Layout которую можно скачать с моего сайта. Пустячок, а приятно. Впрочем, ее можно и на картонке спаять, слишком уж простая схема. Также есть альтернативная разводка платы которую прислал Shama, она на выводных резисторах

Для сборки программатора потребуется:

  • Три диода, любых из маломощных. Например 1N4148.
  • Семь резисторов на 1кОм. У меня резисторы типоразмера 1206
  • Если будешь делать по моей печатной плате, то можешь еще купить 3 резистора на 0 ом — перемычки, они же пофигисторы.

Печатная плата либо рисуется маркером, либо, как у меня, делается методом лазерного утюга.

Спаянную платку я запихал в корпусок, а провод подключил к компьютеру. Длина провода у меня составила метра полтора-два, а от программатора до контроллера стараюсь провод делать покороче.

Разьем DB9, что на фотке, я поставил для удобства. У меня туда подключаются разные прошивающие шнуры либо вот такой вот адаптер:

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

Запускай UniProf.exe и выбирай номер СОМ порта к которому у тебя подключен программатор. Сразу же должен определиться тип контроллера и высветиться над левым окном кода.

Не получилось? Тут три варианта:

  • Программатор спаян криво.
  • Дохлый контроллер.
  • Неправильно припаял проводки к микроконтроллеру.

Еще раз все досконально проверяешь и пробуешь снова. Должно получиться.

Дальше, если до этого ты никогда не работал с контроллерами, тебе возможно потребуется тестовая программа. Она не будет делать ничего полезного, зато позволит тебе точно быть уверенным, что все что ты сделал до этого ты сделал правильно.

Скачиваешь Atmel AVR Studio — это официальная среда для разработки программ под микроконтроллеры AVR. Студия поддерживает все микроконтроллеры семейства Atmel AVR. Найти ее последнюю версию можно на сайте Atmel.com

Далее создавай новый проект, в качестве языка программирования выбирай Assembler и укажи папку и имя где будет располагаться твой проект. В качестве отладчика бери AVR SIMULATOR и укажи с каким именно контроллером ты будешь работать. После чего забивай в текстстовое окно простейшую программу.

Вот ее примерный текст:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
.INCLUDE "m16def. inc"
; это подключается список макроопределений 
; без него компилятор не будет знать под какой 
; именно процессор мы собираем программу
; если у тебя другой контроллер, то подставь 
; соответствующий инклюдник. Они находятся в
; папке AVR Studio по адресу 
; "AVR Tools\AvrAssembler\Appnotes\"
 
 
.MACRO outi 
LDI R16,@1 
OUT @0,R16 
.ENDMACRO 
; задаем весьма удобный макрос, позволяющий 
; записать произвольное заданное число в любой
; регистров за одну строку кода. 
.CSEG
.ORG 0x0000
RJMP RESET
 
.ORG 0x0030
; Директива начала кода с адреса 0х0030
; адрес взят с большим запасом, потому как
; у разных AVR разных размеров таблица 
; прерываний. Так что уж чтобы наверняка!
 
 
RESET:
; стартовая метка
 
OUTI DDRA,0xFF
OUTI DDRB,0xFF
OUTI DDRC,0xFF
OUTI DDRD,0xFF
; Конфигурируем направления портов на выход
; Если данный контроллер не имет, например, порта
; С, то эту строчку надо закомментировать. 
 
OUTI PORTA,0xAA
OUTI PORTB,0xAA
OUTI PORTC,0xAA
OUTI PORTD,0xAA
; Выдаем на выходы 10101010, чтобы получить
; четкую картину того, что на портах произошли
; изменения. После выполнения программы
; на выходах микроконтроллера в шахматном порядке
; будут либо напряжение питания, либо земля. Что 
; легко проверяется либо вольтметром, либо простейшим
; пробником на светодиоде.
 
RJMP RESET
; Зацикливаем программу.

.INCLUDE «m16def.inc»
; это подключается список макроопределений
; без него компилятор не будет знать под какой
; именно процессор мы собираем программу
; если у тебя другой контроллер, то подставь
; соответствующий инклюдник. Они находятся в
; папке AVR Studio по адресу
; «AVR Tools\AvrAssembler\Appnotes\»


.MACRO outi
LDI R16,@1
OUT @0,R16
.ENDMACRO
; задаем весьма удобный макрос, позволяющий
; записать произвольное заданное число в любой
; регистров за одну строку кода.
.CSEG
.ORG 0x0000
RJMP RESET

.ORG 0x0030
; Директива начала кода с адреса 0х0030
; адрес взят с большим запасом, потому как
; у разных AVR разных размеров таблица
; прерываний. Так что уж чтобы наверняка!


RESET:
; стартовая метка

OUTI DDRA,0xFF
OUTI DDRB,0xFF
OUTI DDRC,0xFF
OUTI DDRD,0xFF
; Конфигурируем направления портов на выход
; Если данный контроллер не имет, например, порта
; С, то эту строчку надо закомментировать.

OUTI PORTA,0xAA
OUTI PORTB,0xAA
OUTI PORTC,0xAA
OUTI PORTD,0xAA
; Выдаем на выходы 10101010, чтобы получить
; четкую картину того, что на портах произошли
; изменения. После выполнения программы
; на выходах микроконтроллера в шахматном порядке
; будут либо напряжение питания, либо земля. Что
; легко проверяется либо вольтметром, либо простейшим
; пробником на светодиоде.

RJMP RESET
; Зацикливаем программу.

А лучше не копипасти, а сразу скачай файл проекта.

Далее жми на кнопку компиляции (или F7) и лезь в папку своего проекта. Там тебя уже должен поджидать ****.hex файл с прошивкой.
Запускай UniProf.exe, жми на кнопочку с открытой папкой и надписью HEX. Выбирай свой свежескомпиленный проект и жми ок.
Вторым окном UniProf попросит тебя ввести данные EEPROM, у нас EEPROM не используется, поэтому нажимай отмену.
Все, теперь можно прошивать. Жми на красную стрелку с надписью Prog и жди. По окончании можешь нажать чтение и поглядеть что записалось в твой контроллер — должно показать то же самое, что и было уже загружено в окно.

Теперь тебе остается подать питание на свой микроконтроллер и посмотреть что появилось на портах. Увидел «гребенку» из высоких и низких уровней напряжения? Отлично! Ты прошил свой первый в жизни контроллер! Теперь ты можешь с головой занырнуть в изучение микроконтроллеров AVR.

Если не заработало, то вот возможные грабли и пути решения.

  • Современные компьютеры, с гигагерцовыми процессорами, новомодными Вистами и Семерками очень плохо дружат с этим программатором. Мало того, что у вас может банально не обнаружиться COM порта, а если и будет так еще не факт что все заработает как надо. Рекомендую собрать себе для радиотехнических опытов из подручного хлама что то вроде PIII 800/Windows’98. Бесплатно нарыть такое чудо проблем не составит и сжечь не жалко, если что не так
  • Данная схема не работает через переходники USB-COM или работает, но ОЧЕНЬ медленно. Скажем прошивка одного микроконтроллера может длиться часа полтора.
  • Питание, на первый раз, лучше всего брать с блока компа. Меньше вероятность что либо сжечь или ошибиться
  • Проверяте схему по 3-4 раза! Т.к., судя по комментам, большая часть проблем из-за кривого монтажа.
  • Перед запуском программы в МК НУЖНО ОТКЛЮЧИТЬ ПРОГРАММАТОР и подать на вход RESET +5 вольт через резистор в 1. .10кОм. С подключенным программатором ничего работать не будет, т.к. он прижимает RESET и не дает кристаллу стартовать.
  • Если UniProf не определяет МК, возможно у вас слишком быстрый компьютер. Для компенсации этого «недостатка» нужно включить галочку «Тормоз» Она показывается если отключить снятием галки EEPROM панель отображения данных EEPROM.
  • Если галка Тормоз не помогла, то пробуйте на другом компе. Т.к. тут СОМ порт обрабатывается в нештатном режиме, а значит не факт, что ваш СОМ порт поймет все правильно.
  • На худой конец, если ничего не помогает, попробуйте программатор из 5 проводков или другую прошивающую программу, например avrdude. Провода делайте как можно короче! 10-15 сантиметров это МАКСИМУМ!
  • Читайте комменты к записи. Там многие косяки уже были разобраны. Возможно и ваш окажется среди них.

Дополнение от Outsider:
1. Если сзади у компа нет разъема COM-порта, то это не на 100% означает, что такого порта нет на материнской плате в принципе. Пока еще на матерях встречаются разъемчики с 9 штырьками в два ряда — подробнее нужно смотреть документацию к материнской плате. Я на своей ASUS P5K SE нашел и успешно заюзал.

2. Да, +5 и GND это не земля и контакт из COM-порта, а именно внешнее питание. Проще всего его добыть в компе — +5 есть в красном проводе на любом из разъемов, питающих жесткие диски. А GND — на корпусе самого компа. Или на черном проводе того же разъема.

3. Если с UniProf что-то не срастается, то можно попробовать avrdude. Чтобы это сделать, нужно прописать в avrdude.conf следующее:

programmer
id = «nikolaew»;
desc = «serial port banging, reset=dtr sck=rts mosi=txd miso=cts»;
type = serbb;
reset = 4;
sck = 7;
mosi = 3;
miso = 8;
;

А затем запустить avrdude со следующими параметрами:

avrdude -n -c nikolaew -P com1 -p m16

где «com1» нужно заменить на твой порт (если, конечно, используется другой), а «m16» на нужный тип микроконтроллера. Список поддерживаемых программой контроллеров можно найти здесь:http://www.nongnu.org/avrdude/user-manual/avrdude_4.html

Если все в порядке, то программа скажет:
avrdude: AVR device initialized and ready to accept instructions

Дополнение от Riko
Эксприменатально было выяснено, что для правильной работы этого программатора напряжение питания МК должно быть не ниже 5 вольт (но не выше 5.5!!!). То есть если МК подключен к трем пальчиковым батарейкам, то вы обламываетесь, так как там 4.5 вольта! Запитывайте от компа!!!

Дополнение от SLY_DEr
Не работало. Сменил резисторы с 3к (не было на 1к) на 460ом’ные — заработало, но с ошибками.
Решил чисто ради спортивного интереса снизить скорость ком-порта в диспечере устроиств и о, чудо, все заработало как надо. Скорость порта снизил с 9600к до 4800к и плюс убавил буфер приема и передачи (там же) до значений 4 и 6 соответственно.

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

З.Ы.
Если не получается ну никак, то может быть ваша материнска плата не поддерживает столь нестандартное обращение с COM портом и стоит попробовать другие программаторы? Например, STK200 или FTBB. Они хоть и сложней, но зато работают более корректно, без извратов.

Скоростной AVR USB программатор на FT232RL без вспомогательного контроллера

При работе с микроконтроллерами важнейшим девайсом являетя программатор, именно он может залить в МК нашу программу. Он же часто становится камнем преткновения на пути освоения AVR.

Дело в том, что для работы простейшего программатора, не требующего в своем составе микроконтроллера, нужен компьютер с COM или LPT портом, причем желательно с частотой процессора не выше гигагерца-двух. Да операционную систему подревней — WinXP или Win2K. А это ныне редкость.

С другой стороны, для USB программаторов нужно предварительно прошить контроллер. А чем его прошить? Вот тут и возникает проблема курицы и яйца — как прошить контроллер программатора не имея программатора.

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

Bitbang, что это такое и с чем его едят
Это не что иное как прямое управление выводами какого либо порта. В COM порт можно отправить байт через какой либо высокоупровневый API и он просто выйдет через линию TX потоком стандартого RS232 сигнала.
А можно достучаться напрямую до регистров отвечающих за состоянием каждого пина порта и дрыгая их как нам угодно сэмулировать через тот же COM порт не только RS232, но и SPI, I2C или Dallas 1-wire, HD44780 протокол, применив простейший тупой обвяз. Это и будет битбанг.

В старых программаторах вроде SiProg (PonyProg) или в схеме Громова так и было сделано с COM портом. И работало надежно и стабильно. Но, увы, СОМ порт ушел в небытье, а при попытке сделать то же самое с виртуальным COM портом на конвертере USB-RS232 ничего не получалось. Т.к. заточен он был все же на работу нормального COM порта, а для битбанга приходилось извращаться. В результате такие схемы либо не работали вовсе, либо работали ОЧЕНЬ медленно, прошивая контроллер за час-полтора, что ни в какие ворота не лезет.

Все изменилось с появлением микросхемы конвертера USB-UART FT232R у которой стал доступен битбанг режим не через виртуальный COM порт, а напрямую через драйвер FTDI. И вот тут наступила нирвана.

За битбанг там отвечает 8 выводов. Вот их раскладка.

 
В даташите ее нет, но она есть в аппликухе Application Note AN_232R-01 for the FT232R and FT245R Bit Bang Modes

В результате, из одной только FTDI получается первоклассный скоростной программатор, прошивающий 16кб прошивки за 10-12 секунд и это вместе с верификацией!!!

А из деталей надо ТОЛЬКО микросхему FT232RL, два конденсатора на 0.1uF и гнездо USB. ВСЕ! Ну и проводочки естественно.

Схема включения получается следующей:

Но у этого программатора есть один минус — он не отдает линию RESET по завершении программирования. Поэтому чтобы схема стартанула надо выдрать из платы разьем ISP, что очень неудобно. Я взял и добавил к этой схеме буфферную микросхему. 74HC244, ту самую которая использовалась в программаторе STK200.

Эта микросхема является буффером и по сигналу ОЕ переводить выходные линии в Z состояние. Подал на ОЕ высоки уровень — считай что отрезал программатор от программируемой схемы. Осталось только тумблерок RUN/PROG поставить и одним движением осуществлять запуск.

Но тумблер мне было ставить вломы, поэтому я решил сделать кнопочный переключатель на RS- триггере. Сам триггер собрал на двух 2И-НЕ элементах микросхемы стандартной логики 74HC00 (вроде нашей К155ЛА3 только жрет намного меньше). На это ушло два вентиля. Кнопочки перекидывают его из режима RUN в режим PROG, кондер на одной из кнопок задает начальное положение при включении.

Ну а из оставшихся двух вентилей я скреативил генератор прямоугольного сигнала, на случай если по ошибке залочу фузами МК на внешний тактовый сигнал. Резистор и конденсатор для генератора взял первые попавшиеся на столе. Оказался на 22pF и 10кОм. Что дало в результате частоту около 2 с копейками МГЦ. Их также завел через буффер и вывел на штырьки.

Развел платку:

Вытравил и спаял:

 
Управляющий софт:
Теперь о софте. Шьется все посредством программы avrdude, причем, как я понял, это не простая дудка, а немного переделанная и с дополнительной библиотечкой именно для битбанга. Потому как со старой, то что под USBASP ничего не заработало. А также немного подправленный avrdude.conf, где определен новый программатор.

Добавлена секция:

1
2
3
4
5
6
7
8
9
10
#FTDI_Bitbang
programmer
  id    = "ftbb";
  desc  = "FT232R Synchronous BitBang";
  type  = ft245r;
  miso  = 3;  # CTS(11 PIN FT232R) 
  sck   = 5;  # DSR(9 PIN FT232R)
  mosi  = 6;  # DCD(10 PIN FT232R)
  reset = 7;  # RI (6 PIN FT232R)
;

#FTDI_Bitbang
programmer
id = «ftbb»;
desc = «FT232R Synchronous BitBang»;
type = ft245r;
miso = 3; # CTS(11 PIN FT232R)
sck = 5; # DSR(9 PIN FT232R)
mosi = 6; # DCD(10 PIN FT232R)
reset = 7; # RI (6 PIN FT232R)
;

Где:

  • id — это как мы будем звать наш программатор в командной строке avrdude.
  • desc — описание что за программатор
  • type — дает понять, что мы используем либу для FT245R (впервые было сделано на этой микрухе)
  • miso, sck, mosi, reset — какой ноге какая битбанг Dn линия соответствует. См. таблицу что была выше

Работает в винде (в ХП точно, в остальных не проверял, нету у меня их), в линухе и говорят даже на маке.

Линухом я не пользуюсь, мак для меня бесполезен (а с шалфея еще и прет круче! =) ), поэтому показывать буду в винде:

Итак, первым делом дергай у меня архив с похаченной дудкой и конфигом. Также надо тебе поставить драйвера FTDI и воткнуть железку в USB, чтобы в системе появился виртуальный COM порт. Это будет означать что все встало и работает.

Дальше распакуй архив с avrdude где нибудь поближе, C:\FTBB\ например. Консольные утилиты, особенно забугорные, очень не любят русские названия, а также длинные имена с пробелами.

Теперь разберемся с дудкой. Вообще это очень могучая программа, она поддерживает по моему вообще все возможные программаторы. Но консольная, так что потребуется некоторая сноровка. Для примера накачу бутлоадер на ATmega16

Итак, для прошивки нам потребуется командная строка такого вида:
 
avrdude.exe -p m16 -c ftbb -P ft0 -U flash:w:m16boot.hex:a

  • -p тип контроллера. m16 означает что у нас мега16, остальные ключи надо смотреть в хелпе к дудке.
  • -с тип программатора. В avrdude.conf он у нас описан как ftbb вот его и указываем.
  • -P порт на котором сидит программатор. В данном случае в комп воткнута только одна микросхема FT232RL так что ft0 если воткнуто несколько таких конвертеров то этот параметр может быть ft1, ft2 и так далее. Как определить сразу под каким номером у нас сейчас программатор я так и не дотумкал. Впрочем не особо и пытался да и нужды такой не было — определяю перебором, не первый так второй.
  • -U говорим что что то заливаем. Формат такой memtype:r|w|v:filename[:format] вначале указвыаем куда (flash, eeprom или fuse), потом что делаем читаем, пишем, проверяем, затем путь к прошивке. Прошивка у меня валяется в том же каталоге что и avrdude.exe поэтому и путь только лишь имя файла. Если же прошивка лежит где то далеко, то полный путь можно указать в кавычках, например, так: «c:\FTBB\m16boot.hex». А последняя «а» означает, что тип файла с прошивкой определить автоматом.

Включаем на программаторе режим программирования. Запускаем эту бодягу и… получаем облом. А почему? А потому, что изначально мега16 настроена на частоту в 1Мгц, а мы ей битбангом пытаемся загнать данные на максимальной скорости. Для обхода этой проблемы есть ключ снижения скорости

avrdude.exe -p m16 -c ftbb -P ft0 -U flash:w:m16boot.hex:a -В 4800

Шить, конечно, будет медленно, раз так в 10 медленней. Но ведь никто не запрещает вначале переткнуть fuse биты на более скоростную частоту, а потом вернуть обратно? 😉
 
Запустив это, ты должен увидеть на экране разные прогрессбары, вроде таких:

c:\FTBB>avrdude. exe -p m16 -c ftbb -P ft0 -U flash:w:m16boot.hex:a -B 4800
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
avrdude.exe: drain OK

ft245r: bitclk 4800 -> ft baud 2400
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e9403
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be perfo
rmed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
ft245r: bitclk 4800 -> ft baud 2400
avrdude.exe: reading input file «m16boot.hex»
avrdude.exe: input file m16boot.hex auto detected as Intel Hex
avrdude.exe: writing flash (16310 bytes):

Writing | ################################################## | 100% 115.44s

avrdude.exe: 16310 bytes of flash written
avrdude.exe: verifying flash memory against m16boot.hex:
avrdude. exe: load data flash data from input file m16boot.hex:
avrdude.exe: input file m16boot.hex auto detected as Intel Hex
avrdude.exe: input file m16boot.hex contains 16310 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 109.06s

avrdude.exe: verifying …
avrdude.exe: 16310 bytes of flash verified
avrdude.exe: safemode: Fuses OK
avrdude.exe done. Thank you.

О fuse битах
Я их шью вот такой строкой (Warning!!! Справедливо ТОЛЬКО ДЛЯ ATmega16, для других AVR значение FUSE байтов другие — надо уточнять по даташиту иначе можно заблокировать кристалл!!!):

avrdude.exe -p m16 -c ftbb -P ft0 -B 4800 -U hfuse:w:154:m -U lfuse:w:228:m -U lock:w:63:m

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

А вообще, чтобы не заморачиваться со всемии этими строками и ключами создал себе командный файл burnboot.cmd в который вписал две строчки:

avrdude.exe -p m16 -c ftbb -P ft0 -B 4800 -U hfuse:w:154:m -U lfuse:w:228:m -U lock:w:63:m
avrdude.exe -p m16 -c ftbb -P ft0 -U flash:w:m16boot.hex:a

И теперь шью в один тычок. Вначале накатываются фузы, чтобы скорость тактовую поднять и шить на предельной скорости, потом вкатываю прошивку.

Также есть GUI оболочка на avrdude, правда у ней fuse биты тоже выставляются числом. Но зато можно пути выбирать через стандартные диалоги. Также, надеюсь YOURDEVICE допилит свою оболочку под USBASP до работы с этим программатором. Процесс уже пошел, но пока там сыровато и многие моменты не пашут.

Как юзать
1. Воткнуть ISP кабель в прошиваемую плату.
2. Нажать кнопку PROG — должна загореться зеленая лампочка. Программатор готов к работе.
3. Прошить прошивку, фузы, биты защиты.
4. Нажать кнопку RUN — программатор отпустит линию RESET и контроллер начнет выполнять программу.

Файлы и ссылки к статье
Модифицированный avrdude + все либы и конфиги для него. Там же GUI и мой батник
Схема программатора в формате Spring Layout
Страница автора bitbang метода для FTDI

В общем, программатор получился рулезный. Быстрый и удобный. На аппартном USB конвертере, не требует прошивки собственного контроллера как в USBASP и крайне прост, а в качестве бонуса дает еще и USB-UART интерфейс для отладки.

Остается лишь небольшая такая проблема, вытравить плату и припаять вот это:

Но я уверен, у тебя все получится, может не с первого, так с n-ного раза, но наверняка! =)

описание, назначение 🚩 для чего нужен программатор 🚩 Комплектующие и аксессуары

Программатор – это аппаратно-программное устройство, которое служит для считывания или записи информации в запоминающее устройство (внутреннюю память микроконтроллеров). В случае если радиолюбителю нужно один раз запрограммировать микроконтроллерное устройство, можно воспользоваться обычным программатором, который подключается к COM- или LPT- порту. Например, самым простым программатором для микросхем AVR является кабель из 6 проводов и 4 резисторов (программатор PonyProg).

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

Подключаются такие программаторы к компьютеру с помощью специальной программы (которая тоже называется программатором). Она передает прошивку с компьютера, а устройство только записывает ее в память микросхемы. Программаторы могут подключаться через последовательный или параллельный порт, через USB-разъем и т.д. Современные программаторы подключаются, как правило, через USB.

USB-программатор предназначен для программирования микропроцессорных устройств определенной компании (зависит от марки программатора) в собранном виде. С помощью него заметно упрощается процесс настройки ПО.

Для использования устройства необходимо подключить его к одному из USB-портов компьютера. После этого на компьютере появится сообщение о подключении нового USB-устройства USBasp, а на самом программаторе загорится светодиод, который означает, что устройство успешно подключено.

Затем нужно установить драйвера, чтобы ОС могла корректно работать с данным устройством. После этого можно будет подключать микропроцессорное устройство к ISP интерфейсу. При программировании будет светиться второй светодиод.

Как правило, программатор имеет два интерфейса – один для подключения микроконтроллера, второй для подключения к компьютеру. Для того чтобы подключить микроконтроллер, можно воспользоваться режимом последовательного программирования ISP. А к компьютеру данное устройство подключается через стандартный USB-разъем.

Для управления программатором нужно устанавливать специальные программы. Лучше всего пользоваться оконными приложениями. Например, для работы с устройством можно использовать программы ExtremeBurner, Khazama, avrguge и другие.

Программатор Громова | Практическая электроника

Что такое программатор

Первый вопрос, который вы хотите задать в лоб – что же вообще такое “программатор”? Слово “программатор” образуется как ни странно, от слова “программа”. А что такое программа? Если вспомнить, что такое телепрограмма и зачем она  была нужна (кстати, сейчас до сих пор продается в киосках), то стает понятно, что программа телепередач – это расписание по времени этих самых телепередач. Значит программой можно назвать какие-то действия или события, которые будут выполняться одно за другим во времени, когда мы этого захотим или не захотим.  Следовательно, программатор – это всего-навсего какое-то устройство, которые позволяет нам записывать либо читать программу. Изменить программу уже может только сам программист 😉

СМ Начинающим радиолюбителям переход от сборки простейших аналоговых устройств, типа мультивибраторов, к сборке устройств с применением МК бывает затруднен тем, что здесь мало просто развести и спаять устройство на печатной плате,  нужно еще и залить прошивку в память микроконтроллера с помощью программатора. Как уже было написано в предыдущих статьях, микроконтроллер, до тех пор, пока мы не “залили” в него прошивку, является просто бесполезным куском кремния. И тогда начинающий радиолюбитель ищет информацию в интернете о сборке простого, но эффективного программатора, который помог бы ему взять быстрый старт в этом нелегком деле.

Программатор Громова

Я не ошибусь, если скажу, что 80% новичков, если у них на компьютере есть в наличии СОМ порт, собирают в качестве первого программатора Программатор Громова. Эта схема, при своей простоте и умелом обращении, настоящий шедевр). Действительно, ведь для того, чтобы собрать своими руками программатор, подключаемый к USB порту и имеющий в своем составе микроконтроллер AVR, который требуется предварительно запрограммировать, нужен опять таки программатор. А где взять новичку программатор, пусть и для подобной разовой прошивки ? Получается парадокс курицы и яйца), чтобы собрать USB программатор, нам необходимо сначала запрограммировать микроконтроллер программатора))).

Итак, давайте разберем, что же такое вообще прошивание микроконтроллера (МК) с помощью программатора, и как оно осуществляется? Для того, чтобы прошить МК, нам потребуется связка из самого программатора, устройства, спаянного на печатной плате, и программа, называемая оболочкой, работающая с этим устройством.

Под каждый тип программатора чаще всего требуется своя программная оболочка. Для сборки программатора Громова не требуется программировать микроконтроллер. В данном программаторе он отсутствует. Этот программатор работает с двумя широко распространенными оболочками для прошивания: PonyProg и Uniprof.  У нас будут посвящены отдельные обзоры на эти программки. Данный программатор подключается к СОМ порту.  Единственным препятствием для его сборки может стать физическое отсутствие данного разъема на материнской плате вашего системного блока. Почему именно системного блока? Потому что ноутбуки, а также современные модели материнских плат 2010 – 2011 года выпуска и выше часто имеют на контактах СОМ порта пониженное напряжение питания. Что это означает? Это означает, что вы можете собрать данный программатор, а он у вас не заработает. Но с компьютерами  2007 – 2008 года выпуска и старше, за исключением ноутбуков, данный программатор должен гарантированно работать.  Подключение через переходники USB – COM не спасают в этом случае, так как при этом наблюдается в лучшем случае, сильное снижение скорости, в худшем, программатор вообще отказывается работать.

Схема программатора Громова

Давайте рассмотрим принципиальную схему программатора:

Что же мы видим на этой схеме ? Разъем СОМ порта, по другому называемый DB9, 7 резисторов одинакового номинала сопротивлением в 1 кОм и мощностью 0.25 Ватт и 3 импульсных диода. Из диодов подойдут, либо отечественные, КД522, КД510, либо импортные 1N4148.

Давайте разберем, как выглядят данные радиодетали.

На фото ниже представлен разъем DB9:

Как мы видим, пины (выводы) этого разъема обозначены цифрами на нем. Если будут какие-то затруднения с определением какой штырек соответствует какому отверстию разъема, рекомендую вставить проволочку в отверстие пина разъема, перевести мультиметр в режим звуковой прозвонки и прикоснувшись одновременно щупами мультиметра к проволочке по очереди к каждому из штырьков на разъеме, вызвонить соответствие штырьков отверстиям. Это может потребоваться в случае, если вы подключаете разъем проводками к плате. Если разъем будет впаян непосредственно в плату, то эти действия не требуются.

У кого на панели разъемов материнской платы, находящейся в задней части компьютера, нет COM разъема, можно купить планки с таким разъемом. Но нужно убедиться что производители распаяли контроллер СОМ порта на материнской плате, и предусмотрели подключение шлейфа данной планки, непосредственно к плате. Иначе такой вариант вам не поможет. В качестве альтернативного варианта, могу предложить приобрести контроллер СОМ порта, размещенный на специальной плате расширения, которую устанавливают в PCI слот ПК

Также при желании, если вы захотите, чтобы кабель, подключаемый к СОМ порту, у вас отключался от программатора, можно открутив винты крепления, снять разъем с планки, и закрепить его в корпусе программатора. Но будьте внимательны, и после покупки прозвоните все жилы, на соответствие номерам, с обоих концов кабеля, потому что часто в продаже встречаются похожие внешне кабеля, имеющие перекрещенные жилы. Кабель для подключения к данному разъему, должен быть обязательно полной распайки, DB9F – DB9F, прямой, не перекрещенный, с другими кабелями разъем работать не будет.

Если же возникают проблемы с приобретением данного кабеля, можно взять и перекрещенный кабель или удлинитель 9M-9F, но в таком случае может потребоваться обрезать разъем с другого конца, и вызвонив жилки по пинам разъема подпаяться непосредственно к плате программатора. У меня, кстати, был как раз такой кабель – удлинитель, и мне пришлось обрезать разъем со второго конца. Не покупайте кабеля для прошивки телефонов через СОМ порт, они не годятся для наших целей, так как там неполная распайка жил.

Сборка программатора

Идем дальше.

Диоды берем КД522, КД510 или 1N4148. Вот так выглядит диод КД522

Будьте внимательны, диод имеет полярность включения. Другими словами, его не безразлично как впаивать, можно впаять и задом наперед, тогда программатор работать не будет. Как известно, диод имеет катод и анод. Катод промаркирован, в данном случае, черным колечком.

Ну с резисторами, я думаю, проблем не возникнет. Идете в радиомагазин и говорите продавцу: “Мне нужны резисторы 1 кОм 0.25 Ватт”.  Желательно взять импортные резисторы,  так как у отечественных МЛТ идет большее отклонение от номинала.

Если вы владеете методом ЛУТ, то для вас не составит труда собрать программатор, по этой печатной плате. Ниже приведен скрин платы из программы Sprint Layout:

Если же вы до сих пор не освоили метод ЛУТ, тогда вам больше подойдет следующая плата, рисунок которой можно легко нарисовать маркером для печатных плат прямо на текстолите. Оба варианта печатных плат, вы сможете скачать в общем архиве, в конце статьи. Не забудьте зачистить и обезжирить плату перед нанесением рисунка. Выводы деталей на ней расположены не близко, и проблем при пайке не возникнет даже у новичков

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

У меня был собран пять лет назад данный программатор на плате, сделанной от маркера.  Так выглядела его печатная плата после лужения на этапе сборки в корпусе:

Извините за синюю изоленту)), тогда еще, 5 лет назад,  термоусадочные трубки были в диковинку.

Разъем кабеля программатора с другого конца был обрезан, и проводки кабеля были впаяны непосредственно в плату. Сам кабель был закреплен металлическим хомутом. На фото видно, что кабель толстый, и если бы был не закреплен, при изгибании мог нарушиться контакт проводков, на плате программатора

Для подключения к микроконтроллеру устанавливаемому для прошивания на беспаечную макетную плату, я использовал цветные гибкие проводки. Соединенные с проводками такого же цвета, взятыми из жилок витой пары. Это сделано для того, чтобы с одной стороны жилки не переломились при эксплуатации, а с другой было обеспечено легкое подключение к макетной плате. Длина данных проводков должна быть максимум 20 – 25 См, во избежание ошибок от наводок, при программировании. Не используйте обычные неэкранированные провода, вместо СОМ кабеля! Замучаетесь с ошибками при прошивке.

Программируемый микроконтроллер нуждается во внешнем питании +5 Вольт, подаваемом на программатор. Для этой цели можно собрать стабилизатор на микросхеме 7805, с питанием от внешнего блока питания, либо поступить проще и воспользоваться кабелем и зарядным устройством с выходом USB, подпаяв жилки кабеля USB прямо к печатной плате.

Для справки: питание и земля, в разъеме USB идут по краям. Вот распиновка разъема USB:

Теоретически можно, если вы достаточно аккуратный человек, запитаться и от USB порта компьютера, подключив к нему данный кабель, но помните, вы делаете это на свой страх и риск ! Лучше найти один раз деньги и приобрести USВ зарядное устройство. Не используйте отличающиеся от USB,  нестабилизированные зарядные устройства от сотовых телефонов и другой техники, вы рискуете испортить микроконтроллер.

При запитывании от USB порта компьютера, в случае замыкания жилок программатора +5 вольт (VCC) и земли (GND), вы рискуете сжечь южный мост материнской платы компьютера, ремонт такой материнской платы будет нецелесообразен. Я пользовался обоими вариантами для подачи питания, и через стабилизатор, и через кабель от зарядного USB. Еще один нюанс, после программирования микроконтроллера, чтобы микроконтроллер запустился, необходимо разорвать цепь RESET.

Это можно сделать просто выткнув проводок соединенный с пином RESET программатора. И тогда программа, зашитая в микроконтроллер начнет выполняться. Я решил сделать более удобное решение и поставил малогабаритный клавишный выключатель на разрыв цепи RESET.

Другими словами при его отключении, ток в этой цепи больше не течет и микроконтроллер начинает работу. Заместо клавишного выключателя можно воспользоваться любой малогабаритной кнопкой с фиксацией, либо поставить тумблер. Кому что подскажет фантазия 😉

Наверняка вы уже обратили внимание, что на схеме программатора Громова, есть какие-то незнакомые слова, а в частности VCC, GND, MISO, MOSI, SCK и  RESET. Разберем,  что же значат эти обозначения на примере микроконтроллера Attiny 2313.

В данном случае изображена очень распространенная и недорогая микросхема:  микроконтроллер AVR Tiny (он же Аttiny) 2313. Ножки микросхемы, как мы видим, имеют свой номер. Нумерация идет против часовой стрелки, от ключа в виде точки, расположенной в левом верхнем углу корпуса микроконтроллера. Ниже на рисунке пример того, как идет нумерация на микросхемах в корпусе DIP:

В первую очередь нас интересуют перечисленные выше шесть ножек. Назначения всех остальных мы вкратце коснемся в конце статьи.

Итак, расшифровываем:

VCC. На эту ногу мы подаем напряжение питания микросхемы. Стандартом является 5 Вольт. Допустимо отклонение в большую сторону, до 5.5 Вольт. Напряжение свыше 6 Вольт, может привести к порче микросхемы. Отклонение в меньшую сторону более допустимо. Есть версии микроконтроллеров Tiny 2313V, которые могут работать даже от двух пальчиковых батареек или аккумуляторов, или от напряжения в 2.4 Вольта.

GND. Ну это всем знакомая и известная “земля”, она же  ”масса”, и она же минус питания. Данный контакт является общим для всех устройств, которые имеют подключение друг к другу. Если вы соединяете, какие-либо блоки устройства между собой, их земли следует объединить. В данном случае, земля микроконтроллера, объединяется с землей программатора.

MISO. Сокращение от Master – In – Slave – Out. По этой линии передаются данные от микроконтроллера к программатору.

MOSI. Сокращение от Master – Out – Slave – In.  По этой линии тоже передаются данные от программатора к микроконтроллеру.

SCK. На этой линии формируется тактовый сигнал.

RESET. Данный вывод используется для сброса микроконтроллера после стирания одиночным импульсом.  Если RESET будет отключен, путем ошибочного выставления определенного фьюза, (о выставлении этого, и других фьюзов мы поговорим в следующих статьях) мы не сможем стереть и перепрошить микроконтроллер, через интерфейс SPI.

Достаточно подсоединить эти перечисленные 6 пинов программатора, к 6 ножкам микроконтроллера, и мы сможем прошить МК.

Рассмотрим остальные ножки МК:

У микроконтроллера Tiny2313 3 порта: А (А0-А2, 3 ножки), B (В0-В7, 8 ножек) D (D0-D6, 7 ножек), всего насчитывается 18 используемых в качестве ножек портов ввода – вывода. Каждую из этих ножек можно сконфигурировать отдельно на ввод и на вывод. Не являются ножками портов, только земля (GND) и питание (VCC).

Ниже рассмотрено дополнительное назначение некоторых ножек  МК:

OC1A И OC1B.  Ножки для формирования ШИМ (Широтно – импульсная модуляция) сигнала, таймер 1.

OC0A и OC0B.  Ножки для формирования ШИМ сигнала, таймер 0.

AIN0  и AIN1. Ножки для подачи аналогового сигнала на микроконтроллер.

XTAL1 и XTAL2. Ножки для подключения кварцевого резонатора, для тактирования от него.

RXD и TXD. Линии подключения МК по интерфейсу UART.

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

Читаем далее: Как шить с помощью программатора Громова

Чем занимается программист? — CareerExplorer

CareerExplorerCareerExplorer

  • Home
  • Career Test
  • Explore
    • Career
    • Jobs
    • Degrees
  • Group Pricing
  • MembershipNEW
  • Community Test
  • Сообщество

    Ваш

    Совместимость

    Карьера
    Обзор

    Средняя зарплата

    85 000 долл. США

    Рынок труда

    7

    %

    Как

    к

    Стали

    Вакансии

    Образование

    Бакалавр

    В дальнейшем

    Ресурсы

    Удовлетворение

    5 необходимых аппаратных компонентов ПК, которые программисты должны обновить

    Итак, вы хотите создать код для следующего большого приложения или создать новый игровой феномен, но ваше оборудование не совсем современное?

    Это меньшая проблема, чем вы думаете, потому что обновление компонентов зачастую является простым и безболезненным процессом, если вы знаете, что нужно заменить.

    Это приводит к очевидному вопросу: какие аппаратные характеристики действительно нужны программистам?

    Более высокая скорость и большие жесткие диски для хранения кодов — довольно очевидные ответы, но в этой истории есть нечто большее, чем вы могли ожидать.

    Обратите внимание на требования программы кодирования

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

    Почему именно это?

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

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

    В целом, вы обнаружите, что большинство курсов программирования рекомендуют следующие основные характеристики:

    • Процессор Intel i5, рекомендуется i7.
    • 8 ГБ ОЗУ, рекомендуется 16 ГБ.
    • Дисплей с разрешением 1920 x 1080.

    Это отличная отправная точка для определения того, что следует обновить, и мы подробно рассмотрим каждую из этих характеристик ниже, но не забывайте о том, что может быть не сразу очевидным, — об аппаратном обеспечении!

    Некоторые компоненты могут быть абсолютно необходимыми для портативного компьютера, например USB-концентратор, кардридер или порты HDMI для подключения дополнительных устройств или передачи данных различными способами.

    Давайте углубимся и посмотрим, какие компоненты следует обновить в первую очередь.

    1. Обновите настройку монитора

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

    Не знаете, почему курсы программирования в колледже рекомендуют дисплей с разрешением 1920 x 1080?

    Это требование более высокого разрешения экрана не обязательно, потому что вам нужно транслировать видео 1080p. Вместо этого более высокое разрешение обеспечивает большую область просмотра для нескольких программ и приложений одновременно.

    Купить лучший монитор для настольного ПК совсем несложно, но, очевидно, обновление дисплея — не вариант для ноутбуков.

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

    Но для пользователей ноутбуков есть еще один вариант: использовать эти дополнительные порты HDMI и USB-C для подключения внешнего монитора (или даже двух).

    Установка с несколькими мониторами — это совсем не плохая идея, поэтому вы можете легко переключаться между кодом и запущенной программой без необходимости постоянно нажимать Alt + Tab.

    2. Обновите жесткий диск / твердотельный накопитель

    Прежде чем мы перейдем к таким компонентам, как процессор и физическая память, стоит отметить, что прирост скорости, достигаемый при переключении с жесткого диска на твердотельный накопитель (SSD), невозможно переоценить.

    Хотя это отлично подходит для обычного пользователя, которому нужна быстрая загрузка и быстрое извлечение данных, это абсолютно важно для программистов, особенно если программирование — это то, как вы планируете получать доход.

    Установка SSD означает меньшее время простоя при ожидании бесконечных обновлений и перезапусков Windows.

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

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

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

    Виртуализация других операционных систем — еще один вариант, но для нормальной работы требуется быстрый процессор и большой объем оперативной памяти.

    Наконец, не забывайте, что здесь есть более дешевый и простой вариант «обновления», который не требует замены компонентов.

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

    3. Обновите оперативную память

    Здесь мы подошли к наиболее очевидному (и самому полезному) обновлению.

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

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

    На данный момент 16 ГБ — это в основном нижняя строка для любых продвинутых пользовательских приложений, но если ваша материнская плата может обрабатывать 32 ГБ, я бы рекомендовал перейти на 32 ГБ.

    4. Обновите процессор

    По-прежнему работает медленно, даже с большим объемом оперативной памяти?

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

    К сожалению, модернизация ЦП — не вариант для большинства ноутбуков, если не считать покупки совершенно новой машины с более совершенным процессором.

    Однако, поскольку средний бюджетный ноутбук обычно служит всего около 3 лет, это может быть неплохой идеей.

    Независимо от того, модернизируете ли вы процессор своего настольного ПК или просто покупаете новый ноутбук, использование Intel i7 8-го поколения — верный способ получить большую скорость сейчас и защищать от обновлений в будущем.

    5. Обновите графический процессор (ГП)

    Это действительно необходимо только программистам, работающим с приложениями, интенсивно использующими графику, такими как игры Windows или инструменты для редактирования видео.

    К сожалению, это тоже не вариант для большинства портативных компьютеров, но теперь есть обходной путь.

    Внешние графические процессоры становятся все более распространенными, и их невероятно легко подключить.

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

    Хотя карты новой серии RTX доступны сейчас от NVIDIA, в большинстве случаев GTX 1070 или 1080 будет всем, что вам нужно для любого приложения для программирования.

    Не выбрасывайте старые компоненты!

    После всех этих обновлений вы, вероятно, не знаете, что делать со старым оборудованием.

    Я имею ввиду, кому на самом деле нужна унылая флешка на 4Гб ОЗУ?

    Как оказалось, да!

    Хранение старых технологий под рукой — отличный способ протестировать свои программы на разнообразном оборудовании.

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

    Обновите свое оборудование, обновите кодирование

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

    • Обновите свой дисплей или переключитесь на многомониторную настройку.
    • Переключитесь на твердотельный накопитель или добавьте дополнительный жесткий диск.
    • Добавьте дополнительную оперативную память до максимума материнской платы.
    • Установите более мощный процессор или купите новый ноутбук.
    • Установите новый графический процессор.

    Имея в виду эти удобные для обновления компоненты, вы должны быть на правильном пути к созданию следующего Tinder или Angry Birds. Удачи в карьере программиста или в личном программировании!

    Что вам нужно на вашем компьютере, если вы начинаете программировать?

    Программирование и разработка программного обеспечения — это карьера, в которой ваши навыки важнее дипломов или сертификатов, висящих на вашей стене.Если вы докажете, что знаете, что нужно для успеха, вы получите работу.

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

    Легко потратить десятки тысяч долларов на первые два варианта, поэтому многие программисты следующего поколения учатся разрабатывать программное обеспечение. Если вы заинтересованы в этом процессе, это факты, которые вы должны знать, чтобы добиться успеха.

    Тип компьютера, необходимый для кодирования

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

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

    Тем не менее, необходимо учитывать некоторые общие требования, которые сделают вашу жизнь проще в начале учебного процесса:

    • Процессор Intel Core i5 с частотой 3 ГГц
    • По крайней мере 4 ГБ ОЗУ, но есть возможность увеличить его до 16 ГБ, если вы можете себе это позволить
    • Твердотельный накопитель на 256 ГБ вместо традиционного жесткого диска
    • Срок службы батареи шесть часов, если вы выберете ноутбук
    • Компьютер с официальной поддержкой Linux

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

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

    Как настроить компьютер для подготовки к программированию

    Первое, что вам нужно сделать, это удалить все задержки клавиш на клавиатуре.Вы можете решить эту проблему, установив для параметров повтора значения «быстро» и «коротко» вместо «медленно» и «выключено». Это изменение позволяет вам перемещать курсор клавиатуры по экрану с большей скоростью, что в конечном итоге повысит вашу производительность.

    Затем вы захотите организовать экран рабочего стола так, чтобы его можно было разделить на несколько окон. Вместо того, чтобы выполнять многочисленные ручные настройки каждый раз, когда вы начинаете работу, используйте такие инструменты, как Магнит, для автоматического обеспечения правильного отображения.

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

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

    Это также помогает раскрасить ваш код, чтобы упростить мысленное управление данными. Даже в таком простом виде, как HTML5, вы можете использовать разные цвета, чтобы быстро увидеть свои верхние и нижние колонтитулы и разделы для быстрого просмотра.Используйте любую систему, которая лучше всего подходит для ваших нужд в этой области.

    Затем найдите время, чтобы убрать с экрана все, что отвлекает. В большинстве случаев у вас не должно быть открыто более семи вкладок. Если у вас их больше 10, вам нужно стать более организованным.

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

    Теперь вы готовы приступить к работе! Неважно, какой язык программирования вы решите начать изучать, потому что первый всегда самый сложный.Выберите вариант, который кажется интригующим, так как он будет поддерживать ваш разум в процессе обучения. Это помогает начать с чего-то, что не кажется слишком сложным, поскольку слишком сложный язык может снизить вашу мотивацию.

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

    Программные инструменты, которые вам понадобятся

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

    Язык структурированных запросов

    SQL поможет вам научиться работать с базой данных. Эти знания позволяют вам читать, обновлять или удалять информацию из таблиц. Он охватывает основные команды, необходимые для кодирования, а затем проводит вас по сложным запросам, которые позволяют творчески исследовать с помощью расширенных функций.

    Текстовый редактор

    Программистам необходимо знать, как использовать хотя бы один текстовый редактор на экспертном уровне. Блокнот — это стандартный инструмент, используемый в отрасли, но расширенный вариант, такой как Sublime Text, может вывести вашу работу на новый уровень, поскольку он поддерживает функции поиска и замены.

    Linux

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

    Microsoft Office

    Вы будете использовать удивительное количество Excel, Access, Word и PowerPoint в своей карьере программиста. Знакомство с этими программами и создаваемыми ими отчетами улучшит ваши коммуникативные навыки, помогая управлять системами данных. Подобные инструменты могут помочь вам быстро восстановить файлы, если они повреждены, некорректно сохранены или случайно удалены, так что минимальный объем информации будет перемещен.

    Git, GitHub и Subversion

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

    Питон

    Этот язык программирования высокого уровня для создания сценариев позволяет создавать большие приложения для повышения уровня автоматизации в коде.С его модулями, включая машинное обучение, возможно почти все, что угодно, чтобы повысить вашу эффективность в долгосрочной перспективе. Он также предоставляет несложный синтаксис, чтобы помочь новичкам изучить основы кодирования в начале работы.

    PowerShell

    PowerShell похож на командную строку в Windows, но дает вам больше возможностей для работы над кодированием. Он обеспечивает автоматизацию задач и помощь в настройке с помощью языка сценариев и оболочки командной строки на основе.NET Framework. Это устранит многие ограничения, с которыми вы в конечном итоге столкнетесь при работе в Windows, и обеспечит более полное знакомство с концепциями Linux.

    Готовы ли вы начать путешествие по программированию?

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

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

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

    7 важных советов для более быстрого обучения программированию

    Независимо от того, получаете ли вы в настоящее время степень в области компьютерных наук, ветеран, использующий GI Bill для выбора следующей миссии, начинающий разработчик-самоучка или студент учебного лагеря по программированию, овладение навыками программирования — это постоянная борьба.Чтобы помочь вам в обучении — любезно предоставлено инструкторами Coding Dojo — вот семь советов, как научиться программировать быстрее.

    1. Учитесь на практике. Всегда играйте с кодом при изучении

    С каждым новым предметом, чем раньше вы начнете играть с кодом, тем быстрее вы выучите данные концепции. Даже если вы пролистаете целую главу чтения и такая тема, как циклы for, кажется простой — чтобы обезьяна могла это сделать — вы все равно будете чесать голову, когда вам будет предложено реализовать код в первый раз.Вы подумаете: «Погодите, а что это был за синтаксис?» Как говорится, нужно «использовать или потерять», потому что, несмотря на развитие технологий, эта старая пословица верна при обучении программированию.

    Подсказка: создавайте проект по мере изучения материала. Личный проект часто является лучшей отправной точкой.

    2. Изучите основы долгосрочной выгоды

    Какими бы элементарными они ни казались на первый взгляд, основы программирования всегда должны стоять на первом месте: чем лучше вы их понимаете, тем легче выучить более сложные концепции .Судя по нашему опыту в Coding Dojo, студенты, которые спешат в начале наших курсов — где мы больше всего сосредоточены на основах веб-разработки — часто первыми застревают при переходе к более сложным материалам, таким как внутреннее программирование. Поэтому, прежде чем вы откажетесь от первого курса по информатике 101 или пропустите первую главу онлайн-руководства, помните, что вы упускаете из виду самый важный шаг в своем обучении.

    Подсказка: прочтите эту отличную статью о 5 основных концепциях любого языка программирования

    3.Код вручную. Он оттачивает мастерство, и он понадобится вам, чтобы получить работу

    Компьютерные мониторы становятся тоньше, жесткие диски легче, а языки программирования — более мощными, но ручное кодирование по-прежнему остается одним из наиболее эффективных методов обучения программированию. Будь то на доске или в блокноте, ручное кодирование требует большей осторожности, точности и целенаправленности в каждой строке кода. Потому что, в отличие от компьютера, вы не можете запустить рукописный код на середине листа, чтобы проверить правильность работы.Хотя это и отнимает больше времени, это ограничение превратит вас в более надежного разработчика как в классе, так и на рынке труда. Для экзаменов в колледж и технических собеседований — критически важного компонента процесса собеседования — вам придется писать код вручную, потому что это не только полезно для обучения, но и общеизвестно, что это окончательный тест на квалификацию программиста. Так что начните пораньше и привыкните к этой старой школе.

    4.Просить помощи. Вам понадобится

    Как бы здорово было стать следующим Стивом Джобсом самостоятельно, но реальность такова, что люди учатся быстрее с наставниками и отзывами коллег. То, что может показаться неподвижной ошибкой или темой, может быть быстро устранено новым взглядом или новой интерпретацией предмета. Будь то онлайн или лично, игнорируйте троллей и не бойтесь просить о помощи, потому что каждый программист раньше был на вашем месте. Кроме того, большинство разработчиков любят кодировать, и если есть что-то, что нравится увлеченным людям, так это делиться своими знаниями с другими.

    Предупреждение: в Coding Dojo мы рекомендуем использовать правило 20 минут. Прежде чем обращаться за помощью, уделите хотя бы 20 минут, чтобы разобраться в чем-то самостоятельно. Велика вероятность, что ответ уже перед вами, и, кроме того, борьба делает вас в целом лучшим программистом.

    Подсказка: Stackoverlfow и обучение программированию — это золотая жила для помощи в онлайн-программировании.

    5. Поищите дополнительные ресурсы в Интернете. Обилие контента

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

    Совет. Не стоит недооценивать возможности поиска.

    6. Не читайте просто образец кода.Повозитесь с этим!

    Чтения образца кода недостаточно, чтобы понять, как он работает. Чтобы добиться истинного понимания, вам нужно запустить код и повозиться с ним. С добавлением комментариев и инструкций пример кода упаковывается для читателя; но на самом деле , довольно сложно воспроизвести с нуля. Чтение — это не то же самое, что понимание, и на самом деле попытка написать код самостоятельно или, по крайней мере, запустить его, значительно облегчит процесс обучения.

    7. Делайте перерывы при отладке

    При отладке легко погрузиться в кроличью нору в течение нескольких часов, и нет гарантии, что вы решите проблему. Чтобы этого избежать, лучше всего на несколько часов отойти от привычного и вернуться с новой точкой зрения. Это не только гарантированный способ решить проблему, но и сэкономит часы головной боли. Так что, если помощь недоступна — как мы уже упоминали ранее, — подумайте о том, чтобы сделать перерыв, чтобы очистить свой разум и вернуться позже.А пока, , ошибка никуда не денется, и вы хотя бы немного восстановите рассудок, чтобы повысить производительность.

    Заключение: сохраняйте спокойствие и продолжайте кодировать

    Несмотря на эти 7 советов, самый важный ингредиент для более быстрого изучения программирования — это сохранять уверенность. Для этого вы должны ожидать неоднократных неудач и быть терпеливыми в отношении своего прогресса; потому что чтобы стать экспертом в чем-либо, нужно много работать и много времени. И если хоть одно сомнение когда-либо омрачает ваш разум, помните, что каждый программист проходил этот путь раньше — никому из них не суждено стать разработчиком больше, чем вам.Какой бы путь вы ни выбрали, будь то колледж или учебный лагерь по программированию, единственным препятствием на пути к успеху является ваша трудовая этика и уверенность в том, что нужно продолжать.

    Почувствуйте, что быть разработчиком — это то, что вам нужно делать, и задаетесь вопросом: «Стоит ли этого учебные курсы по программированию?» Не ищите ничего, кроме Coding Dojo. Мы — единственный учебный курс, который обучит вас 3 стекам, используемым лучшими компаниями мира за 14 недель. Просто подайте заявку сейчас (это займет всего 2 минуты) — консультант по приемной комиссии свяжется с вами, чтобы узнать, подходит ли вам Coding Dojo.

    Сколько C ++ вам нужно знать для работы?

    Насколько хорошо C ++ вам нужно знать, чтобы получить первую работу?

    Да, всегда есть чему поучиться, будь вы новичок или профессионал с 20-летним опытом работы в сфере программирования. Нет волшебного момента, когда можно перестать учиться и учиться.

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

    Ознакомьтесь с новейшими вакансиями C ++ начального уровня.

    Основные навыки

    Независимо от того, какой язык вы изучаете, каждый программист должен владеть некоторыми фундаментальными навыками. Базы данных, например: изучение некоторой комбинации SQL, MySQL и NoSQL не повредит, равно как и знание как можно большего количества выборок и объединений.Хороший программист достаточно знаком с Linux и Windows, чтобы при необходимости продемонстрировать некоторые навыки работы с командной строкой и администрирования.

    Еще одна важная вещь, которую нужно знать, — это контроль исходного кода. В наши дни кажется, что большинство людей предпочитают git, хотя вы все еще видите другие, такие как subversion. Изучите как можно больше git; Если вас наняли программистом на C ++, скорее всего, ваш новый работодатель попросит вас проверить код, и вы определенно захотите узнать, как это сделать, не спрашивая.

    Особенности языка с C ++

    Посмотрим правде в глаза: C ++ — нелегкий язык для изучения. Освоение основ C ++ означает, что вы приобрели хорошие навыки.

    Во-первых, изучите основы объектно-ориентированного программирования; также знать структуры данных и алгоритмы внутри и снаружи. Например, вы знаете, как создать связанный список, даже если вы, вероятно, будете использовать тот, который является частью существующей библиотеки.

    Освоили те? Вот еще несколько товаров:

    • Узнайте, что такое переменные стека и как объекты могут быть размещены в куче; перейдите на следующий уровень и поймите, что когда вы вызываете new , вы обычно сохраняете указатель на объект в переменной; объект находится в куче, а переменная живет в стеке.Узнайте, если и когда эти переменные выходят за рамки. Почему это важно? Если вы вернете адрес локальной переменной, вы (а) создадите ошибки и (б) рассердите других программистов.
    • Узнайте, как на самом деле работают ссылки и чем они отличаются от указателей. Разберитесь, как переменные передаются в функциях, и о передаче всей структуры по сравнению с передачей указателя на структуру в функцию.
    • Узнайте, как выделяются массивы с помощью команд new и delete, а также как создать массив, который можно безопасно вернуть из функции.

    Есть справка по всему вышеперечисленному? Ты хорошо справляешься. Вот несколько новых вещей, которые нужно изучить:

    • Виртуальные методы
    • Виртуальные деструкторы
    • Перегрузка оператора
    • Как работают шаблоны (функции, классы и создание экземпляров)
    • Правильный синтаксис
    • Стандартная библиотека, а также Boost (попрактикуйтесь в обоих)

    Проведите время с профессиональным кодом, например, с некоторыми из крупных проектов C ++ с открытым исходным кодом на GitHub.Это позволит вам, так сказать, «учиться у мастеров».

    Вот некоторые сведения о том, сколько старших разработчиков рассматривают разработчиков начального уровня: большинство из них не терпят их. Они ожидают, что разработчики начального уровня будут настолько хороши в программировании, что быстро перейдут на высокий уровень. Разработчики высшего уровня не хотят держать в руках разработчиков начального уровня.

    Другими словами, если вы начнете работать на C ++ и спросите старшего разработчика, что такое ссылка, старший разработчик разозлится.Дело не в том, что они вообще злые люди; просто у них есть работа … и эта работа не в том, чтобы обучать программированию. Хотя они не ожидают, что разработчики начального уровня будут принимать архитектурные решения, они ожидают, что от них будут сильные и компетентные программисты; они также впечатлены, когда разработчики начального уровня быстро узнают все, что им нужно знать, и самостоятельно продвигаются вперед.

    Заключение

    Говорят, лучшее время сажать дерево было 20 лет назад; второе лучшее время сегодня.То же самое и с программированием: изучайте все, что можете, сегодня, с прицелом на будущее. Хотя C ++ не является чем-то, что можно освоить за неделю, для начала освоения его основных компонентов требуется относительно немного усилий.

    Лучшие ноутбуки для программистов — программирование

    Лучшие ноутбуки для программистов от posiworld (m): 17:13 24 июля , 2015

    Вот лучшие ноутбуки для программирования и кодирования.
    1. Acer Aspire V3-572G-70TA
    2. ASUS N550JK-DS71T
    3. Lenovo Y50 (59426255)
    4. MSI GE70 Apache Pro-012
    5. Apple MacBook Pro MGXC2LL / A

    1 Как

    Re: Лучшие ноутбуки для программистов от Fulaman198 (m): 17:27 24 июля , 2015

    posiworld :
    Вот лучшие ноутбуки для программирования и программирования.
    1. Acer Aspire V3-572G-70TA
    2.ASUS N550JK-DS71T
    3. Lenovo Y50 (59426255)
    4. MSI GE70 Apache Pro-012
    5. Apple MacBook Pro MGXC2LL / A

    Y50 — игровой ноутбук. Вместо этого вы можете взглянуть на Lenovo Thinkpad W541.

    1 Нравится

    Re: Лучшие ноутбуки для программистов по spikesC (m): 17:44 24 июля , 2015
    «Лучшего» ноутбука для программирования не существует. Необходимые вам спецификации зависят от того, какой аспект программирования вы делаете.

    Да, игровые ноутбуки хорошо округлены, но такие сообщения скорее обманчивые, чем информативные

    3 лайка

    Re: Лучшие ноутбуки для программистов от Fulaman 198 (m): 17:57 On Jul 24 , 2015

    шипы C :
    Нет «лучшего» ноутбука для программирования. Необходимые вам спецификации зависят от того, какой аспект программирования вы делаете.

    Да, игровые ноутбуки хороши, но такие сообщения скорее обманчивые, чем информативные

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

    HP Zbook 15
    Lenovo Thinkpad W541
    Dell Inspiring M4800
    Toshiba Tecra W50
    Etc

    Re: Лучшие ноутбуки для программистов по шипам C (m): 7:58 pm 24 июля ,

    26 2015

    Fulaman198 :

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

    HP Zbook 15
    Lenovo Thinkpad W541
    Dell Inspiring M4800
    Toshiba Tecra W50
    Etc

    Да, мобильность определенно необходима, но я не в этом.

    Я говорю о памяти, процессоре, размере экрана, видеокарте и т. Д.
    Когда обращать внимание на каждую

    1 Как

    Re: Лучшие ноутбуки для программистов от chim14 (m): 8:49 На 25 июля , 2015

    Am на Lenovo.Я очень любил зверя, на котором без проблем запускались 2 разные ОС.

    1 Нравится

    Re: Лучшие ноутбуки для программистов от DonSegmond (м): 17:52 25 июля , 2015

    900 шипов 54 Нет 9050 «лучший» ноутбук для программирования. Необходимые вам спецификации зависят от того, какой аспект программирования вы делаете.

    Да, игровые ноутбуки хорошо продуманы, но подобные сообщения скорее вводят в заблуждение, чем информативно.

    Собственно говоря, ноутбук никогда не сделает из вас отличного программиста.Конечно, это может улучшить производительность, но знания улучшат производительность намного лучше, чем любая комбинация CPU / Memory. Просто купите все, что вы можете себе позволить, изучите свои инструменты и сделайте очень хорошо, и вы будете делать великие дела.

    4 отметки «Нравится»

    Re: Лучшие ноутбуки для программистов от directonpc (m): 22:26 pm На июл 26 , 2015

    DonSegmond никогда не сделает из вас отличного программиста.Конечно, это может улучшить производительность, но знания улучшат производительность намного лучше, чем любая комбинация CPU / Memory. Просто купите все, что вы можете себе позволить, изучите свои инструменты и сделайте очень хорошо, и вы будете делать великие дела.

    Брат, ты ошибаешься. Мощный ПК упростит программирование для профессионалов. Представьте себе все задержки, которые вы получите, когда попытаетесь запустить android studio + эмулятор + wamp + веб-браузер и note ++ в системе с 2 ГБ памяти

    4 лайка 1 Поделиться

    Re: Лучшие ноутбуки для программистов от Fulaman 198 (м): 5:05 утра 27 июля , 2015

    DonSegmond :

    Собственно говоря, ноутбук никогда не сделает вас великим программистом.Конечно, это может улучшить производительность, но знания улучшат производительность намного лучше, чем любая комбинация CPU / Memory. Просто купите все, что вы можете себе позволить, изучите свои инструменты и сделайте очень хорошо, и вы будете делать великие дела.

    Может быть, если вы программируете простые приложения, то да. Однако, если вы программируете полусложное приложение с насыщенной графикой, тогда нет.

    7 «Нравится»

    Re: Лучшие ноутбуки для программистов от jigs44

    .