IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> ATtiny2313
Mytilus G.
сообщение 24.2.2012, 23:03
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.2.2012
Пользователь №: 804



Привет!

Прикупил МАСТЕР-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
Сообщение #2


Администратор
***

Группа: Главные администраторы
Сообщений: 518
Регистрация: 4.6.2008
Пользователь №: 1



Сделайте после чтения прошивки 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 после прошивки молчат. Что я делаю не так?

Перейти в начало страницы
 
+Цитировать сообщение
Mytilus G.
сообщение 25.2.2012, 23:46
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.2.2012
Пользователь №: 804



Hex взял у AVR Studio.
Перейти в начало страницы
 
+Цитировать сообщение
masterra
сообщение 26.2.2012, 6:55
Сообщение #4


Администратор
***

Группа: Главные администраторы
Сообщений: 518
Регистрация: 4.6.2008
Пользователь №: 1



При чтении Hex автоматически меняется порядок байт для 16-битных м.с.
В данном случае этого делать не нужно, исправим в программе.
Пока нужно сделать Swap.
Цитата(Mytilus G. @ 25.2.2012, 23:46) *
Hex взял у AVR Studio.

Перейти в начало страницы
 
+Цитировать сообщение
Mytilus G.
сообщение 26.2.2012, 13:35
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.2.2012
Пользователь №: 804



Ладно. С чтением понятно. Но почему у меня ничего не работает? Что я проглядел?

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
Сообщение #6


Администратор
***

Группа: Главные администраторы
Сообщений: 518
Регистрация: 4.6.2008
Пользователь №: 1



Ошибка в выборе формата, должен быть 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
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.2.2012
Пользователь №: 804



У меня ведь и так Hex. huh.gif
Цитата(masterra @ 27.2.2012, 0:22) *
Ошибка в выборе формата, должен быть Hex.
После чтения в буфере должен быть код программы.
При необходимости нужно сделать Swap.

Перейти в начало страницы
 
+Цитировать сообщение
masterra
сообщение 27.2.2012, 20:42
Сообщение #8


Администратор
***

Группа: Главные администраторы
Сообщений: 518
Регистрация: 4.6.2008
Пользователь №: 1



После чтения файла, что видите в буфере?
Цитата(Mytilus G. @ 27.2.2012, 11:32) *
У меня ведь и так Hex. huh.gif

Перейти в начало страницы
 
+Цитировать сообщение
Mytilus G.
сообщение 28.2.2012, 15:10
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.2.2012
Пользователь №: 804



EF 0F BB 07 EA 0A BB 08 FF FF FF FF ...
Цитата(masterra @ 28.2.2012, 0:42) *
После чтения файла, что видите в буфере?
Перейти в начало страницы
 
+Цитировать сообщение
masterra
сообщение 28.2.2012, 19:18
Сообщение #10


Администратор
***

Группа: Главные администраторы
Сообщений: 518
Регистрация: 4.6.2008
Пользователь №: 1



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
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 24.2.2012
Пользователь №: 804



Пробовал и со 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 делали перед записью?
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 17:19