Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Atmega128..... Быть или не быть - вот в чем вопрос... http://www.cyberforum.ru/avr/thread2087955.html
Есть девайс на базе Atmega128 (если кто то знает SPEKTRUM Dx6i). Возможно ли вытянуть из кристалла исходники или хотя б машинный код без вреда для кристалла?????
Atmega AVR микроконтроллер FT232RL-UART Не работает как надо
Всем доброй ночи собрал сегодня USB-USORT конвертер на FT232RL вроде работает как надо в терминале все что отравляется то и приходит но mega16 с boottooder-ром не видит в AVRprog то есть в пакете...
FT232RL+2313 - работает без питания? Atmega AVR микроконтроллер
Простите за очередной топик по теме :) Есть макетка на которой распаян разъем программирования, 7805 и шнурком подключена платка с FT232RL. Тактируется от внутреннего генератора. внутри 2 строчки...
Atmega AVR микроконтроллер Че тако вапще да? <Изображение удалено> http://www.cyberforum.ru/avr/thread2087952.html
Atmega AVR микроконтроллер ещё раз о "Wavetable Melody Generator" от чана http://www.cyberforum.ru/avr/thread2087951.html
оригинал: http://itm-chan.org/works/mxb/report.html потихоньку неторопясь делаю конвертер MIDI файлов в melody.asm часть приходится делать на компе, конечный разгрёб - на перле. вот в...
Atmega AVR микроконтроллер Прогер на AT90USB162 как называется правильно?
И ссылку дайте на схемку.И вопрос - он шьет из студии прямо?
Залочить 2313 навеки Atmega AVR микроконтроллер
Подскажите, возможно ли залочить 2313ю тиньку так, чтобы нельзя было слить прошивку даже параллельно? В ерратах написано насчет версии С "no known errata", значит ли это, что при запрограммированных...
Atmega AVR микроконтроллер Оболочка для AVRDUDE Прочитал тут http://iosyitistromyss.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-komtrottira.html#more-268 про программатор на FT232RL. Посмотрел, покрутил... Понравилось... ... http://www.cyberforum.ru/avr/thread2087948.html
Atmega AVR микроконтроллер Не поможете ли найти http://www.cyberforum.ru/avr/thread2087947.html
Кароч помню как то нарвался на старой версии форума на программатор на тини2313,название примерно как и у usbasp но только со словом тини,вот щас пытался найти не находит,ну в нете то находит а в...
Atmega AVR микроконтроллер Помогитес контроллером AT90CAN128 Вобщем суть проблемы такая: нужна подробная инфа по этому контроллеру (AT90CAN128) на русском языке. В инете нашел только datasheet на английском, а с английским у меня не очень. Что-то понятно, но в... http://www.cyberforum.ru/avr/thread2087946.html
hozi
0 / 0 / 0
Регистрация: 16.11.2015
0

spi_mmc на asm(е) по Ревичу

18.02.2011, 15:38. Просмотров 14236. Ответов 17
Метки (Все метки)

Всем привет!!
Вот решил поучиться assembler(у) по Ю.Ревичу - Практическое программирование микроконтроллеров Atmel AVR. По книге - в целом хорошая, да вот только водится за автором косячок - время от времени делать ошибки в коде и алгоритмах. Самый яркий пример, когда автор говорит, что процедура умножения 16 разрчдных чисел из апноутов НЕ ВЕРНА! И нахальным образом правит алгоритм :))) (см. стр. 143 гл.7). Впрочем здесь есть явная польза! Приходится думать и исправлять за автором ошибки и доводить задачи до ума.
Примерчики я решаю используя avr studyo + PROTEUS. Весьма неплохо выходит! Споткнулся на гл. 11 второй задаче - Запись и чтение flash карт. Пользую ATmega48. Откомпилил в studyo, в PROTEUSe подрубил на spi линию spi debugger. Сначала вообще флэха не инициализировалась. Доработал код инициализации - просто добавил перед CS=0 посылку 10 байт FF:
Код
MMC_ini:
;вот сюда добавил
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;
ser temp;0xFF
rcall WR_spi;

cbi PORTB,CS;CS=0
ser temp;0xFF
rcall WR_spi
ldi temp,0x40;CMD0
rcall WR_spi;GO_IDLE_STATE
clr temp
rcall WR_spi;
clr temp
rcall WR_spi
clr temp
rcall WR_spi
clr temp
rcall WR_spi
ldi temp,0x95;CRC
rcall WR_spi
ser temp;0xFF
rcall WR_spi
ser temp;0xff
rcall WR_spi;
ldi count,8
delay_80:
ser temp;0xff
rcall WR_spi
dec count
brne delay_80
clr AdrHH
clr AdrHL
clr AdrLH
clr AdrLL

sd_ini:
ldi CMD,0x41;CMD1
;ldi CMD,0x58;CMD=write_btock

rcall Send_sommomd
cpi temp,0
brne sd_ini
;rcall out_som;
ser temp;0xff
rcall WR_spi;
sbi PORTB,CS;CS=1
ret
В PROTEUS в ответ шлет 01 и потом 00 как положено!
Далее запись-чтение, сначала пробую отработать запись:
Код
Read_write_MMC:

cbi PORTB,CS

clr AdrHH;
clr AdrHL
clr AdrLH
clr AdrLL
cmd1:
ldi CMD,0x58;CMD=write_btock
rcall Send_sommomd

cpi temp,0
brne cmd1

ser temp;0xff
rcall WR_spi

;rcall out_som
ldi temp,0xFE;
rcall WR_spi

;sbi PORTB,CS;CS=1

clr count;count=0
repeat_write1:
mov temp,count
rcall WR_spi
yms count;
brne repeat_write1:

clr count;count=0
repeat_write2:
mov temp,count
dec temp;
rcall WR_spi;
dec count
brne repeat_write2

ser temp;0xff
rcall WR_spi
ser temp;0xff
rcall WR_spi
ser temp;0xff
rcall WR_spi

ldi CMD,0x4D;CMD=write_btock
rcall Send_sommomd

woyt_write:
ser temp;0xff
rcall WR_spi
sbis PINB,MISO;
rjmp woyt_write

ser temp;0xff
rcall WR_spi
ser temp;0xff
rcall WR_spi

sbi PORTB,CS
На саму команду записи шлет ответ R1=00 - то бишь вск ОК. Далее псоле данных присылает 0D - то бишь data rejected due to a write error (согласно спецификации на mmc - data response). Тут я добавил команду CMD13=GET_STATUS=4D, чтобы понять в чем ошибка и получаю ответ типа r2 формата 2 байта: 00 24 = 00000000 00100100 - error и wp violation.
Как вылечить не могу найти, может кто знает как надо корректно писать и в чем ошибка??


<Изображение удалено>

Там на рисунке у меня по прерыванию кнопки происходит запись и должно чтение (т.е. вызывается эта процедура).

Вернуться к обсуждению:
spi_mmc на asm(е) по Ревичу
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2011, 15:38
Готовые ответы и решения:

Delphi и ASM - не работает вызов функции Invoke через asm
В Delphi не работает вызов функции Invoke через asm. часть кода: asm invoke...

Создание проекта с участием c++ и asm модулей. Ошибка asm модуля
Доброго времени суток! Подскажите, пожалуйста, как исправить данную ошибку (А2008)?

ASM atmega написать программу на ASM
Нужна помощь в написании программы с объяснениями.. Проверить свою программу Вашу работу. ...

pascal+asm, не подключается модуль asm
Не получается подключить модуль ассмблера ( находится в каталоге с .pas)). Для примера взял...

При сборке выдает ошибку "MASM: fatal error A1000: : 1.asm.asm"
&quot;MASM : fatal error A1000: : 1.asm.asm :\1&gt;link16 /TINY 1.asm.obj, 1.asm.com&quot; Вопользовался...

17
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.