Автор: Mytilus G. 24.2.2012, 23:03
Привет!
Прикупил МАСТЕР-32, чтобы учиться программировать контроллеры. И сразу столкнулся с проблемами. Использую ATtiny2313-20PU. После прошивки МК не выполняет программу, а при выборе "Чтение ПЗУ" в MasterLink вижу совсем не то, что прошивал.
Настойки МастерЛинка такие:
Микросхема: ATtiny-2313
Скорость: 9600
Прошиваю без адаптера (где-то тут читал, что он не нужен). Самый элементарный код программы, которую прошивал:
.cseg
.org 0
ser R16
out DDRB, R16
out PortB, R16
Loop: rjmp Loop
Фьюзы: CKSEL0, CKSEL2, CKSEL3, SUT0, SPIEN
Тактовый генератор встроенный. Порты B после прошивки молчат. Что я делаю не так?
Автор: masterra 25.2.2012, 17:36
Сделайте после чтения прошивки Swap (изменить порядок байт).
Hex как получили?
Цитата(Mytilus G. @ 24.2.2012, 23:03)
Привет!
Прикупил МАСТЕР-32, чтобы учиться программировать контроллеры. И сразу столкнулся с проблемами. Использую ATtiny2313-20PU. После прошивки МК не выполняет программу, а при выборе "Чтение ПЗУ" в MasterLink вижу совсем не то, что прошивал.
Настойки МастерЛинка такие:
Микросхема: ATtiny-2313
Скорость: 9600
Прошиваю без адаптера (где-то тут читал, что он не нужен). Самый элементарный код программы, которую прошивал:
.cseg
.org 0
ser R16
out DDRB, R16
out PortB, R16
Loop: rjmp Loop
Фьюзы: CKSEL0, CKSEL2, CKSEL3, SUT0, SPIEN
Тактовый генератор встроенный. Порты B после прошивки молчат. Что я делаю не так?
Автор: masterra 26.2.2012, 6:55
При чтении Hex автоматически меняется порядок байт для 16-битных м.с.
В данном случае этого делать не нужно, исправим в программе.
Пока нужно сделать Swap.
Цитата(Mytilus G. @ 25.2.2012, 23:46)
Hex взял у AVR Studio.
Автор: Mytilus G. 26.2.2012, 13:35
Ладно. С чтением понятно. Но почему у меня ничего не работает? Что я проглядел?
1. Создаю hex
исходник:
CODE
.cseg
.org 0
ldi R16, 0b11111111
out DDRB, R16
ldi R16, 0b10101010
out PORTB, R16
hex-файл:
CODE
:020000020000FC
:080000000FEF07BB0AEA08BB81
:00000001FF
2. Втыкаю программатор в комп
3. Подаю на него питание
4. Запускаю MasterLink (прошивка 5.01)
5. Выбираю м/с ATtiny2313
6. Устанавливаю м/с в программатор
7. Щелкаю "Чтение файла" и выбираю свой hex
8. Щелкаю "Программирование ПЗУ"
9. Проверяю фьюзы
10. Закрываю MasterLink
11. Вынимаю м/с и втыкаю в макетную плату
13. Подаю напряжение на м/с и проверяю напряжение на портах вывода - 0 вольт
Есть ли ошибка в моих действиях?
Автор: masterra 26.2.2012, 20:22
Ошибка в выборе формата, должен быть Hex.
После чтения в буфере должен быть код программы.
При необходимости нужно сделать Swap.
Цитата(Mytilus G. @ 26.2.2012, 13:35)
Ладно. С чтением понятно. Но почему у меня ничего не работает? Что я проглядел?
1. Создаю hex
исходник:
CODE
.cseg
.org 0
ldi R16, 0b11111111
out DDRB, R16
ldi R16, 0b10101010
out PORTB, R16
hex-файл:
CODE
:020000020000FC
:080000000FEF07BB0AEA08BB81
:00000001FF
2. Втыкаю программатор в комп
3. Подаю на него питание
4. Запускаю MasterLink (прошивка 5.01)
5. Выбираю м/с ATtiny2313
6. Устанавливаю м/с в программатор
7. Щелкаю "Чтение файла" и выбираю свой hex
8. Щелкаю "Программирование ПЗУ"
9. Проверяю фьюзы
10. Закрываю MasterLink
11. Вынимаю м/с и втыкаю в макетную плату
13. Подаю напряжение на м/с и проверяю напряжение на портах вывода - 0 вольт
Есть ли ошибка в моих действиях?
Автор: Mytilus G. 27.2.2012, 11:32
У меня ведь и так Hex.
Цитата(masterra @ 27.2.2012, 0:22)
Ошибка в выборе формата, должен быть Hex.
После чтения в буфере должен быть код программы.
При необходимости нужно сделать Swap.
Автор: masterra 27.2.2012, 20:42
После чтения файла, что видите в буфере?
Цитата(Mytilus G. @ 27.2.2012, 11:32)
У меня ведь и так Hex.
Автор: Mytilus G. 28.2.2012, 15:10
EF 0F BB 07 EA 0A BB 08 FF FF FF FF ...
Цитата(masterra @ 28.2.2012, 0:42)
После чтения файла, что видите в буфере?
Автор: masterra 28.2.2012, 19:18
Swap делали перед записью?
Цитата(Mytilus G. @ 28.2.2012, 15:10)
EF 0F BB 07 EA 0A BB 08 FF FF FF FF ...
Автор: Mytilus G. 28.2.2012, 23:44
Пробовал и со swap'ом, и без. Если брать hex от исходника, который я привел последним, то получается такая вот ситуация:
- без swap перед записью (EF 0F BB 07 EA 0A BB 08): чтение возвращает именно то, что записывал
- со swap перед записью (0F EF 07 BB 0A EA 08 BB): почему-то возвращает 0F 0F 03 03 0A 0A 08 08
Очень нужен совет, так как пока только обучаюсь, а без возможности программировать м/с мое обучение стоит на месте.
Цитата(masterra @ 28.2.2012, 23:18)
Swap делали перед записью?