Я новичок в авр. не могу запрограммировать это
Я написал код ниже для мигалки! в CodeVision в качестве моей первой программы! с ATmega16.
но я не могу запрограммировать его с помощью экстремального устройства записи.CodeVision компилирует его с 0 ошибками и 0 предупреждениями. Extreme Burner успешно загружает файл.hex. Но когда я нажимаю на Read all
Кнопка, я не могу продолжить. Я вижу этот отчет: powering on => power on failed => can not communicate with target chip
, и в конце концов я получил это сообщение: No data read!
Я не знаю, какое значение имеют правильные биты предохранителей и как их правильно установить.
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0x00;
DDRA=0x01;
while (1)
{
PORTA.0 = 1;
delay_ms(200);
PORTA.0 = 0;
delay_ms(500);
}
}
4 ответа
Похоже, ваша проблема в том, что ATmega16 просто не включен. Имейте в виду, что ваш программист специально подает питание на цель, тогда вам нужно включить его самостоятельно. Это может быть проблемой для многих дешевых плат разработки.
Хотя странно, что вы нажимаете Read all
скорее, чем Program
или же Write
или что бы ваша программа не имела, эта ошибка выскочила бы в любом случае, учитывая проблему.
Чтобы выяснить, питается ли он, у платы разработки обычно есть светодиодный индикатор питания, но в случае, если у вас нет такой индикации, проверьте с помощью мультиметра на выводах VCC и GND atmega16. Из рисунка ниже видно, что вы можете проверить эти контакты на контактах 10 и 11, но я бы рекомендовал проверять их скорее на контактах 10 и 31, чтобы избежать случайного их короткого замыкания.
Если выяснится, что ваше устройство включено, вам необходимо проверить соединения SPI, поскольку AVR запрограммирован через порт SPI. Если они подключены просто отлично, вы можете проверить, действительно ли они отправляют данные, используя логический анализатор. Если они не отправляют данные, то у вас проблема с вашим настоящим программистом
Если окажется, что они хороши и функциональны, я бы поспорил, что ваш Atmega16 неисправен или поддельный.
Проблема не в процессе кодирования / компиляции. ошибка, которую вы получили, указывает на то, что программист распознается и работает, и это оставляет вас со следующими возможными проблемами:
связь между программатором и чипом,
- 6 проводов: VCC-> VCC, GND-> GND, CLK-> CLK, RESET-> RESET, MOSI-> MOSI, MISO-> MOISO. если все еще не работает, попробуйте поменять местами последние два провода.
чип был запрограммирован ранее, и он не будет работать без внешнего кристалла.
- подключите кристалл к контактам XTAL с двумя керамическими конденсаторами 22 пФ, попробуйте разные значения кристаллов: 8,4,1 или меньше.
если вы можете изменить скорость программатора, установите ее на самую медленную. Msgstr "У Usbasp есть перемычка для медленного программирования устройств, проверьте руководство по программированию".
попробуйте другой чип, если есть.
Новые чипы нуждаются в медленном программировании. Для этого в usbasp есть режим. Затем используйте новую настройку fusebit и пишите их медленно. Затем вы сможете использовать обычный
Почему вы хотите "прочитать все"? я думал, что вы собираетесь программировать свое устройство, а не считывать его воспоминания.
Но ваша настоящая проблема в том, что соединение с устройством не работает. Посмотрите руководство или учебник вашего программного адаптера о том, как его использовать.
Следующий (неполный) список может содержать наиболее распространенные ошибки:
- Драйвер ОС вашего программиста установлен неправильно / Ваша ОС не распознала его правильно
- Интерфейс ISP устройства неправильно подключен к вашему программатору
- MISO - MISO, MOSI - MOSI, CLK - CLK, GND - GND, RESET - RESET, VCC - VCC
- перепроверьте это. возможно, ваша схема подключения была неправильной / другой стороной на разъеме (передняя часть штепсельной вилки против задней штепсельной вилки против верхней части штыревого разъема).
- Подключение VCC к программатору не означает, что оно будет питать устройство. это зависит от программиста. некоторые (это могут быть лучше разработанные) используют только соединение VCC, чтобы определить целевые уровни напряжения для правильной настройки линий сигнала данных. Таким образом, вы можете отдельно для питания устройства
- Скорость программистов установлена на высоком уровне. новые AVR установлены на 1 МГц, что должно замедлять работу с более высокими скоростями передачи данных ISP.
- Вы случайно неправильно сконфигурировали биты предохранителей AVR, поэтому они больше недоступны. Вы можете испортить настройки часов.